AWS

RDS for Oracle でdatapump でスキーマを指定し exportする

RDS for Oracle でdatapump でスキーマを指定し exportする

 

RDSの標準機能として、7日前までであれば任意のタイミグにポイントリカバリーで復旧できる機能がついていて、AWSコンソール上からGUIでポチポチしていけば結構簡単にリカバリのRDSを作成できます。

ただ、ポイントリカバリーで戻るのはDBの全てのデータです。
この方法で問題ない場合はこれでよいと思いますが、今回紹介するのはOracleのdatapumpを利用して特定スキーマのエクスポートの方法をご紹介します。

DBを複数人や複数システムで利用していて、全体を戻すことはできないけど、特定のスキーマだけ戻したい場合などは、このdatapumpでのexportは有効な手法だと思います。

はずは、RDSにdbmasterユーザでログインします。
ホスト名とSIDは環境に合わせて修正ください。ポートは変更してない限り1521でよいと思います。

sqlplus dbmaster@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XXXXX.ap-northeast-1.rds.amazonaws.com)(PORT=1521))(CONNECT_DATA=(SID=SID)))

 

次に、スキーマを指定してexportします。
ファイル名やexport対象のスキーマを下記としていますが、環境に合わせて修正ください。
exportファイル名:dumpfile.dmp
exportのログ:export.log
exportするスキーマ:SCHEMA01, SCHEMA02, SCHEMA03, SCHEMA04

DECLARE
hdnl NUMBER;
status VARCHAR2(20);
BEGIN
hdnl := DBMS_DATAPUMP.OPEN( operation => 'EXPORT', job_mode => 'SCHEMA', job_name=>null);
DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'dumpfile.dmp', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_dump_file);
DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'export.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file);
DBMS_DATAPUMP.METADATA_FILTER(hdnl,'SCHEMA_LIST',' ''SCHEMA01'',''SCHEMA02'',''SCHEMA03'',''SCHEMA04'' ');
DBMS_DATAPUMP.START_JOB(handle => hdnl);
DBMS_DATAPUMP.WAIT_FOR_JOB(hdnl,status);
END;
/

ログの確認し、エラーがない事を確認

SELECT TEXT FROM TABLE(RDSADMIN.RDS_FILE_UTIL.READ_TEXT_FILE('DATA_PUMP_DIR','export.log'));

importの手順は下記を参照ください。
RDS for Oracle でdatapump でexportしたスキーマ名とは別名のスキーマでimportする

 

タイトルとURLをコピーしました