tech_memo / ORACLE / DataPump


tech_memo/ORACLE

dumpファイル統合活用ツール ( RP Dump Browser for Oracle )

テーブルに絞りこみ条件を指定してのexport/import

  • 下記リンクによると、QUERYオプションで指定できるとのこと
  • 実際にやってみた。MYSCHEMAスキーマのMY_TABLEからID=341のレコードだけをexport
    [oracle@racserver1 data_pump]$ expdp MYSCHEMA/MYSCHEMA directory=MYDB_DMP_DIR dumpfile=XDBL_imageIsDOJ_126567rec_schemaMYSCHEMA.dmp tables=\(MY_TABLE\) QUERY=MYSCHEMA.MY_TABLE:'"where ID = 341"'
  • QUERYオプションの中でシングルクォーテーションを使用したい場合は、QUERYオプションの値をシングルクォーテーションでくくらないようにする。ただし、イコールや、括弧に対してエスケープする必要が出てくる。
    [oracle@racserver1 data_pump]$ expdp MYSCHEMA/MYSCHEMA directory=MYDB_DMP_DIR dumpfile=XDBL_imageIsDOJ_126567rec_schemaMYSCHEMA.dmp tables=\(MY_TABLE\) QUERY=MYSCHEMA.MY_TABLE:\"where ID \= \'341\'\"

Encryptionされたテーブルをexport/importする

export

  • Directoryオブジェクトの作成
    SQL> create directory ENC_EXPDP_DIR as '/u01/oracle/dump_file/myapp/encryption_expdp';
  • OSコマンドからexport(テーブルそのものをexport。レコードだけじゃない)
    [oracle@racserver1 encryption_expdp]$ expdp MYAPP/MYAPP directory=ENC_EXPDP_DIR tables=MY_TABLE;
    ・
    ・
    ・
    Job "MYAPP"."SYS_EXPORT_TABLE_01" successfully completed at 12:14:38
  • Dataだけ、かつ出力ファイル名指定
    [oracle@racserver1 encryption_expdp]$ expdp MYAPP/MYAPP directory=ENC_EXPDP_DIR dumpfile=myapp_2.0_some_of_p100k_and_nate2000_data.dmp tables=MY_TABLE content=data_only;

表データなしでエクスポート

  • contentにmetadata_onlyを指定する
    [oracle@racserver1 encryption_expdp]$ expdp MYAPP/MYAPP directory=ENC_EXPDP_DIR dumpfile=myapp_2.0_some_of_p100k_and_nate2000_data.dmp tables=MY_TABLE content=metadata_only;

import

  • MYAPPスキーマからSHISHIMARUスキーマにデータだけimport
    [oracle@racserver1 encryption_expdp]$ impdp MYAPP/MYAPP directory=ENC_EXPDP_DIR dumpfile=expdat.dmp tables=MY_TABLE CONTENT=data_only remap_schema=MYAPP:SHISHIMARU

別スキーマimport時に、「ORA-02304: オブジェクト識別子リテラルが無効です。」