Oracleでdblinkを確立しましたが、どうやって使いますか?


OracleアプリケーションサーバOS
  1.データベースのglobal_を確認する。name

SELECT * FROM GLOBAL_NAME;
  2.globalを確認するnameパラメータはtrueですか?それともfalseですか?

 show parameter global_name
       trueであれば、ローカルに確立されたdblink名はリモートのglobal_nameが一致したらいいです。 
  3.dblinkの作成

CREATE DATABASE LINK      
    CONNECT TO     
    IDENTIFIED BY    
    USING ‘        ';
      例1:

 CREATE PUBLIC DATABASE LINK CONN_MY_LINK
    CONNECT TO MYUSER IDENTIFIED BY MYPASSWORD
    USING 'MYORAL';
       MYORALはクライアントサーバによって確立されたアクセスサーバのローカル名であり、
       LINK CONN_MY_LINKはローカルに確立されたdblinkの名前です。
       例2:       

  CREATE PUBLIC DATABASE LINK LINK_HSMIS
        CONNECT TO BI 
        IDENTIFIED BY BI 
       USING '(DESCRIPTION =
             (ADDRESS_LIST =
             (ADDRESS = (PROTOCOL = TCP)(HOST = 10.188.245.201)(PORT = 1521))
             )
            (CONNECT_DATA =
            (SERVICE_NAME = hsmis)
            )
        )';
          接続文字列をローカル名で直接に置換します。

//       
    grant CREATE DATABASE LINK to smis;    
    grant CREATE SYNONYM to smis;
 4.dblinkの作成に成功したかどうかを問い合わせる

 SELECT * FROM DUAL@      
    SELECT * FROM  @      
  5.dblinkを削除する

 drop public database link CONN_MY_LINK
  6.類義語を使って簡略化する:

 CREATE SYNONYM S_MY_TABLE FOR TABLENAME@      ;
  7.db_リンククエリ時にロックの解決策が現れます。
      毎回db_を使うリンククエリ時に接続を解放し、dbms_を呼び出します。sessionパッケージのクローズ関数で大丈夫です。
      例:dbms_session.closedatabaselinkMY_LINK)
      dblinkを使用する場合は、select文でもcommt、またはrollbackを行います。時間が長くなると他のプロセスを阻害します。
  8.dblinkに問い合わせると、サーバ名を処理できないソリューションが発生します。
       AデータベースがA 1サーバ上にあるように、対応するデータベースをサーバ上に確立するには、Bデータベースはb 1サーバ上にあり、AデータベースにBデータベースを接続するなら、サーバA 1上に対応するtsnsnames構成項目を作成する必要があります。
     (Win環境下のOracleでは、Oracle\Network\ADMIN\tsnsnames.oraファイルで構成されています)

A_TO_B =  
   (DESCRIPTION =  
   (ADDRESS_LIST =  
   (ADDRESS = (PROTOCOL = TCP)(HOST =A2    IP)(PORT = 1521)) )     
   (CONNECT_DATA =  
   (SERVICE_NAME = B       ))) 
      その後、対応するdblinkを作成し、犯しやすいエラーは以下の通りです。
      自身のクライアントのtnsname.oraに接続を確立し、Aデータベースのすべての
      サーバA 1のtnsname.oraに接続が確立されています。
  9.ロックの進行とロック解除を確認する
     (1)方式一:

 select sess.sid,  
   sess.serial#,  
   lo.oracle_username,  
   lo.os_user_name,  
   ao.object_name,  
   lo.locked_mode  
   from v$locked_object lo,  
   dba_objects ao,  
   v$session sess  
   where ao.object_id = lo.object_id and lo.session_id = sess.sid;
     (2)方式二:

 select * from v$session t1, v$locked_object t2 
   where t1.sid = t2.SESSION_ID;
     (3)プロセスのロック解除  
     記録があればロックがあることを表し、SIDとserial菗を記録し、記録したIDをQの下のSID、serialに置き換えることでLOCKを解除することができます。

   alter system kill session 'SID,serial';
以上は小编でご绍介したoracleの中dblinkアプリケーションの小结び目です。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。