IT/ICT

【Oracle】Datapump(expdp、impdp)の使い方紹介

Oracleのエクスポート、インポートで利用するDataPumpについてまとめた記事です。

 

基本的な部分はこれで十分抑えられると思います。

 

前回は経験によるトラブルシューティングの記事を書きましたが、実際の使い方の記事を書いていなかったので、今回記事にまとめてみました。

 

必要に応じて、追記、アップデートはしていければと思います。

 

 

 

 

前提の設定

DataPumpの利用をする際の初期準備についてここでは記載しようと思います。

 

Oracleで、dumpファイルを出力するディレクトリに対して、ディレクトリオブジェクトの作成を行わないといけません。

 

DATAPUMP用のディレクトリオブジェクトの作成

CREATE DIRECTORY DATAPUMP_DIR1 AS ‘/home/oracle/oradata/datapump_dir’;

 

 

そして、ディレクトリオブジェクトを指定したら、実行したいユーザに権限を付与する必要があります。

ユーザに対してディレクトリへのRead、Write権限を与える

GRANT READ, WRITE ON DIRECTORY datapump_dir TO scott;

 

この2つは、セットで必要になる為、必ず実施するようにしましょう。

 

 

 

 

 

 

エクスポート(expdp)

実際、expdmpを実施する場合はこんな感じ。

(EMP表、DEPT表は一般的なサンプルです。置き換えてくださいね。)

$ expdp scott/tiger tables=emp,dept directory=datapump_dir

 

 

モードの種類

モード 説明 パラメータ
フル DB全体 FULL=y
スキーマ 指定したスキーマ全体 SCHEMAS=schema
テーブル 指定したテーブル全体 TABLES=table
テーブルスペース 指定したテーブルスペース全体 TABLESPACES=tablespace

 

 

例1 フルモード

expdp scott/tiger full=y

 

例2 テーブルモード

expdp scott/tiger dumpfile=exp.dmp tables=emp,dept

 

 

エクスポートの対象となるオブジェクトを細かく指定する

expdp scott/tiger include=index

 

 

フラッシュバックモード

パラメータファイルの中身(parfile.txt)

cat parfile.txt

 

FLASHBACK_TIME=“TO_TIMESTAMP('2021/06/10 08:00','YYYY/MM/DD HH:MI')”

 

パラメータファイルを指定して実行

expdp scott/tiger parfile=parfile.txt

 

flashback_scn の指定も可能

expdp scott/tiger flashback_scn=234567

 

 

 

エクスポートファイルをパラレルで行う

expdp scott/tiger parallel=3 dumpfile=datapump_dir1:expdata%U.dmp,datapump_dir2%U.dmp

 

 

 

 

ダンプファイルの作成にどのくらいの時間がかかるか、またどのくらいの容量となるか見積もりを行う

expdp scott/tiger full=y estimate_only=y

 

BLOCKS ブロックサイズにオブジェクトのブロック数をかけて見積もり

expdp scott/tiger tables=test estimate=blocks estimate_only=y

 

STATISTICS 統計情報を元に見積もります

expdp scott/tiger tables=test estimate=statistics estimate_only=y

 

 

 

インポート(impdp)

インポートしたいファイルを指定する。

$ impdp scott/tiger tables=emp,dept

 

パラメータを指定することで、対象を絞ってインポートが可能。

$ impdp scott/tiger include=index

 

 

DB Link越しにインポート

impdp scott/tiger tables=emp,dept directory=datapump_dir network_link=scott.jp.oracle.com

 

 

REMAP_SCHEMA export時と違うスキーマにimportする

impdp scott/tiger directory=taro_dir dumpfile=exp.dmp remap_schema=scott:taro

 

 

REMAP_TABLESPACE export時と違うテーブルスペースにimportする

impdp scott/tiger directory=taro_dir dumpfile=exp.dmp remap_tablespace=users:taro_TS

 

 

REMAP_DATAFILE export時と違うデータファイルでimportする

impdp system/manager directory=taro_dir dumpfile=exp.dmp remap_datafile='/home/users.dbf:/home/taro/users.dbf'

 

メモとして残す意味でもこの記事を作りました。

ちょっとお試し的な部分も含め作成しています。

少しずつではありますが、コンテンツを増やしていきたいと思います。。。

 

 

 

 

以前、うっかりやってしまうDatapumpの操作についての記事を書きました。

興味ある方はこちらを見てください。

詳しくはコチラ

 

 

 

-IT/ICT
-