[復刻版]は、トランザクションを照会するOracleデータベースのリンクがそれを開くのだろうか?

トランザクションを照会するOracleデータベースのリンクがそれを開くのだろうか?

HTTPS:// www.cnblogs.com/kerrycode/p/10148050.html

 

Oracleデータベースのリンクについて、それがトランザクションを開くかどうかをデータベース・リンクに関連するクエリを使用できますか?私たちは、データベースに簡単なSELECTクエリが総務を生成しないことを知っている(更新が業務を生産するために選択します)。テストは以下のように:

 

 

 

 

我々は最初のデータベース・リンクの作成、テスト環境を用意し:LINK_NODEFINE_TESTをした後、我々はテストを開始します

 

PUBLIC DATABASEのリンクを作成LINK_NODEFINE_TEST
CONNECT TO TESTは "T123の$%^" で識別します 
「(説明=を使用しました
    (ADDRESS_LIST =
      (ADDRESS =(PROTOCOL = TCP)(HOST = 10.20.57.24)= 1521(PORT))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = gsp.localdomain)
    )
  ');

 

 

ここでは、データベース・リンクは、トランザクションに関連するクエリを開きますかどうかを確認するためにデモを始めます。

 

SQL>をユーザに示します。
USERは "SYS" であります
SQL>を選択しUSERENV( 'SID')デュアルから。
 
USERENV( 'SID')
--------------
           939
 
SQL>を選択しXIDUSN、xidslot、XIDSQN  
  Vの$トランザクションから2、五$セッション  
  3ここで、SADDR = ses_addr。
 
選択された行はありません
 
SQL> link_nodefine_test @ケリーから選択*;
 
        ID NAME
---------- --------------------------------
       100ケリー
 
SQL>を選択しXIDUSN、xidslot、XIDSQN  
  Vの$トランザクションから2、五$セッション  
  3ここで、SADDR = ses_addr。
 
    XIDUSN XIDSLOT XIDSQN
---------- ---------- ----------
         3 14 4122050
 
SQL> ALTER SESSION近いデータベース・リンクlink_nodefine_test。
エラー:
ORA-02080:データベース・リンクが使用されています
 
 
SQL> COMMIT;  - 最初にコミットする必要があり、あなたがリンクを閉じることができます
 
完全にコミットします。
 
SQL> ALTER SESSION近いデータベース・リンクlink_nodefine_test。
 
セッションが変更されました。

 

簡単なテストにデータベースのテストにおけるライフサイクルのリモートセッションと認証データベース・リンクポイント、のは、アカウントのテストを作成してみましょう、あなたも単純なクエリ(データベース・リンクを含む)ことを見つけるだろう、リモート・データベース上のセッションを生成します。そして、ALTER SESSION近いデータベース・リンクを実行しない場合、それはセッションを破壊しない、対応するデータベース・リンクを閉じるが、それはINACTVIE状態となりxxx部分。それはそれはTCPキープアライブメカニズムの後にトリガされるまでデータベースをクリーンアップすることになります。

 

 

 

 

あなたがこのテストサーバ、リモートデータベース(10.20.57.24)でデータベース・リンクに関連するクエリ、データベースインスタンスを実行すると、それが対応するセッションを生成し、かつ、プライマリ・データベース上で実行され、「ALTER SESSION近いデータベース・リンクlink_nodefine_test」対応するセッションが(もちろん、データベースクリーンアップがTCPキープアライブメカニズムの後にトリガされます)が破壊されます。興味缶セルフテスト。

 

SQL>ユーザ名が 'TEST' を= Vの$セッションからSELECT COUNT(*);
 
  カウント(*)
----------
         1
 
SQL>ユーザ名が 'TEST' を= Vの$セッションからSELECT COUNT(*);
 
  カウント(*)
----------
         0
 
SQL> 

 

私は10.20.57.24が行う複数のセッションを生成し、データベース・リンクが含まケリー@ link_nodefine_testこのようなステートメントSELECT * FROMの間での会話の中で数回使用した場合そこで質問は、ありますか?またはセッションに関連付けられている、このデータベース・リンクは、それを再利用するのだろうか?ここでは、テストにテストします。

 

複数のクエリのうち、同じセッション・データベース・リンクを使用して、以下に示すように、複数のセッションが10.20.57.24を生成しないであろう。 異なるセッション・データベース・リンクlink_nodefine_testの複数が使用される場合は、その後、複数のセッションは(10.20.57.24)で生成されます

 

 

 

 

 

だから、別のデータベース・リンクを使用して、同じセッションであれば、これはまた、会話を共有するかどうか、同じサーバを指して、同じアカウントのデータベース・リンクを使用して、両方の?答えはノーですが、新しいセッションを作成します。下に示すように、テスト

 

PUBLIC DATABASEのリンクを作成LINK_DEDIATED_TEST
CONNECT TO TESTは "T123の$%^" で識別します 
「(説明=を使用しました
    (ADDRESS_LIST =
      (ADDRESS =(PROTOCOL = TCP)(HOST = 10.20.57.24)= 1521(PORT))
    )
    (CONNECT_DATA =
       (SERVER = DEDICATED)
      (SERVICE_NAME = gsp.localdomain)
    )
  ');

 

 

 

 

分析の原則の業務は、分散システムでの公式ドキュメントのトランザクション処理を参照してくださいなぜデータベース・リンクについてお問い合わせ

 

 

2フェーズ・コミット・メカニズム

 

データベースは、トランザクション内のすべての文は、分散型または非分散することを保証し、いずれかのユニットとしてバックをコミットやロールしなければなりません。現在進行中のトランザクションの効果は、すべてのノードで、他のすべてのトランザクションには見えなければなりません。この透明性は操作のいずれかのタイプ、などが取引のために真でなければなりません  を含む  クエリ更新、またはリモート・プロシージャ・コールを

 

非分散データベースにおけるトランザクション制御の一般的なメカニズムがで議論されている  Oracle Database概要分散データベースでは、データベースは、ネットワークまたはシステムの障害が発生しても、ネットワークを介して同一の特性を有するトランザクション制御を調整し、データの整合性を維持しなければなりません。

データベースの二相は、分散トランザクションに参加しているすべてのデータベース・サーバーは、いずれかのすべてのコミットまたはロールバックのすべてのトランザクション内の文というメカニズム保証をコミットします。二相メカニズムは、整合性制約、リモート・プロシージャ・コールおよびトリガーによって実行される暗黙のDML操作を保護コミット。

 

 

要約:

 

データベース・リンク関連のクエリを使用してOracleデータベースは、データベース・リンクを使用して多数のセッションが存在する場合、それは時々、消費接続の数は非常に実質的になり、リモート・データベース内の会話の多くを生成します、トランザクションを生成します。あなたはこれらの操作を実行しない場合、リモート・データベース内のデータベース・リンクのセッションのために、あなたが最初にローカルデータベースの現在のセッションでコミットする必要があり、その後、ALTER SESSION近いデータベース・リンクのXXX、近くのdblink、セッションのみを破壊するためにDCDまたはTCP KEEPLIVEデータベース・トリガーのメカニズムに依存することができます。

 

 

 

参考文献:

 

 

https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:393468893370

http://blog.itpub.net/267265/viewspace-2123710/

https://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts004.htm#ADMIN12120

 

おすすめ

転載: www.cnblogs.com/jinanxiaolaohu/p/12321853.html