dblinkにより、データポンプexpdpリモートクロスバージョンライブラリ


dblinkにより、データポンプexpdpリモートクロスバージョンライブラリ
  • 背景環境
  • 接続サーバ(dblink使用)
  • データポンプexpdp導出
  • 私が調べた資料の中で役に立つものをいくつか添付し、参考に供する
  • お礼
  • バックグラウンド環境
    サーバ上のライブラリをローカルにエクスポートし、2つのデータ量の大きいテーブルを迂回するため、データポンプのexcludeパラメータを使用することを考慮します.
    リモート・サーバ:Oracleサービス・エンド・バージョン12 c:12.1.0.1
    ローカル:Oracleサービス11 g:11.2.0.1 Oracleクライアントバージョン11 g:11.2.0.1
    接続サーバ(dblinkを使用)
    ここにはサービス側があるので、plsqlでローカルライブラリに接続した後、dblinkを使用してリモートライブラリに接続します.直接リモートライブラリに接続するのと似ています.
  • dblinkの承認と作成権限があるかどうかを確認する:select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME=' ';権限を付与する:grant create public database link to ;、前の文で確認してください.dblinkの作成:create public database link connect to identified by ( ) USING ' TNS ';例:
  • create public database link TESTLINK connect to USERNAME identified by PASSWORD USING '(DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.102)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        ))';
    
  • 低バージョンで高バージョンクライアントへの接続エラー:ORA-28040、ORA-01017 ORA-28040:データベースサーバ上の$ORACLE_HOME/network/admin/sqlnet.oraファイルに2行追加(低バージョンクライアントの接続認証方式をサポート)し、リスニングを再開する必要はありません:
  •  SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
     SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
    

    ORA-01017に対して:低いバージョンの認証を支持した後にパスワードをリセットする必要があって、以下のコマンドを使ってsqlの中でパスワードを少しこすることができて、パスワードを修正する必要はありません
    alert user xxx identified by xxxxxx;
    

    これで、低バージョンクライアントを使用して高バージョンサーバに接続できました.私が使用しているdblinkも問題ありません.クエリーでは、テーブル名の後にdblink名を付ける必要があります.
    SELECT * FROM v$version@TESTLINK;
    

    データポンプexpdpエクスポート
    システムにフォルダを作成し、ローカルクライアントで次の文を実行して、アドレスが実際に存在することを確認します.
    create directory expdp_dir as ‘f:\data;
    
    select * from dba_directory;
    

    cmdコマンドラインで実行:
    expdp      /  @    schemas=     1 dumpfile=      .dmp directory=expdp_dir exclude=table:\"in('   1','   2')\" logfile=         .log version=  impdp          network_link=testlink(dblink )
    

    expdpがORA-39006、ORA-39065、ORA-01422、ORA-39097エラーに遭遇
    ネット上の経験によると、リモートサーバ上で実行すると、解決できます(私の実験は効果がなく、しばらく考える時間がありません.やはりexp/impを使ってやっています.後で検討する暇があります):
    sqlplus / as sysdba  
    
    SQL>@$ORACLE_HOME/rdbms/admin/catmeta.sql   
    
    SQL>@$ORACLE_HOME/rdbms/admin/catmet2.sql   
    
    SQL>@$ORACLE_HOME/rdbms/admin/utlrp.sql
    

    私が調べた資料の中で役に立つと思ういくつかの編を添付して、みんなの参考に供します
    クライアントログインOracle 12.2サーバレポートORA-01017の解惑ORACLE 12 C接続時報ORA 28040とORA 01017のエラーORA-28040データベース互換性ソリューションが一致しない検証プロトコルORACLE dblinkの簡単な使用expdp(ローカルではない)リモートエクスポートデータexpdpを使用してORA-39006、ORA-39065、ORA-01403、ORA-39097エラー[Oracle]expdp ORA-39006に遭遇しました.ORA-39065の解決策
    お礼を言う
  • 先輩のご指導に感謝し、ブログを書いて共有します.
  • 辛抱強く読んでくれてありがとう.