ここではOracleのexpdpコマンドを使ったバックアップについて紹介します。

expdpコマンドとは

expdpコマンドは、Oracle10gから導入された新しいエクスポートユーティリティです。以前のexpコマンドはOracle11g以降、非推奨となっています。

expdpのエクスポートには以下の4種類があります。
・データベース全体のエクスポート
・スキーマ単位のエクスポート
・表領域単位のエクスポート
・テーブル単位のエクスポート
expdpコマンドはコマンドプロンプトで実行します。


デフォルトのエクスポートファイルの格納場所の確認

expdpコマンドではエクスポートファイルの格納場所を自由に指定できません。
既存のディレクトリを指定するか、CREATE DIRECTORY文でディレクトリ・オブジェクトを作成します。
既存のディレクトリは以下のSQL文を実行して DIRECTORY_PATH を確認します。

SELECT * FROM DBA_DIRECTORIES WHERE DIRECTORY_NAME = 'DATA_PUMP_DIR';

Oracle Database 21c Express Edition の DATA_PUMP_DIR の DIRECTORY_PATH は「C:\app\product\21c\admin\xe\dpdump/1B9A306AF0A44EDE9F5C5A6FB718B61F」でした。


データベース全体のエクスポート

以下はデータベース全体をエクスポートするexpdpコマンドの構文です。

構文

expdp {ユーザー名}/{パスワード}@{接続文字列}
      full=y
      directory={ディレクトリ}
      dumpfile={ファイル名}
      log={ログファイル名}

以下はデータベース全体をエクスポートするexpdpコマンドの例です。

C:\>expdp sample/pass@XEPDB1 directory=DATA_PUMP_DIR dumpfile=db.dmp logfile=db.log full=y

 


スキーマ単位のエクスポート

以下はスキーマ単位にエクスポートするexpdpコマンドの構文です。

構文

  expdp {ユーザー名}/{パスワード}@{接続文字列}
        schemas={スキーマ名}
        directory={ディレクトリ}
        dumpfile={ファイル名}
        log={ログファイル名}

以下はスキーマ単位にエクスポートするexpdpコマンドの例です。

C:\>expdp sample/pass@XEPDB1 schemas=sample directory=DATA_PUMP_DIR dumpfile=sample.dmp logfile=sample.log

 


表領域単位のエクスポート

以下は表領域単位をエクスポートするexpdpコマンドの構文です。

構文

  expdp {ユーザー名}/{パスワード}@{接続文字列}
        tablespaces={表領域}
        directory={ディレクトリ}
        dumpfile={ファイル名}
        log={ログファイル名}

以下は表領域単位にエクスポートするexpdpコマンドの例です。

C:\>expdp sample/pass@XEPDB1 tablespaces=USERS directory=DATA_PUMP_DIR dumpfile=USERS.dmp logfile=USERS.log

 


テーブル単位のエクスポート

以下はテーブル単位をエクスポートするexpdpコマンドの構文です。

構文

  expdp {ユーザー名}/{パスワード}@{接続文字列}
        tables={テーブル名}
        directory={ディレクトリ}
        dumpfile={ファイル名}
        log={ログファイル名}

以下はテーブル単位にエクスポートするexpdpコマンドの例です。

C:\>expdp sample/pass@XEPDB1 tables=EMP directory=DATA_PUMP_DIR dumpfile=EMP.dmp logfile=EMP.log

 


複数のテーブルのバックアップにエクスポートする場合は、テーブル名とバックアップファイル名をカンマで区切ります。
以下は複数のテーブルをエクスポートする場合のexpdpコマンドの例です。

C:\>expdp sample/pass@XEPDB1 tables=EMP1, EMP2, EMP3 directory=DATA_PUMP_DIR dumpfile=EMP.dmp logfile=EMP.log

 



以上、Oracleのexpdpコマンドを使ったバックアップについて解説しました。