#概要
オラクルの論理バックアップの取得は、expdpコマンドを使って行います。
このコマンドを実行すると任意のディレクトリに.dmpという拡張子のバックアップファイルが作成されます。
※.dmpファイルは通常中身を確認できません。
筆者は過去に大規模開発案件にてexpdpコマンドを使い、
データベースのバックアップを行うバッチを作成したので備忘録として残したいと思います。
#準備
expdpコマンドの実行にはオラクルでディレクトリオブジェクトの登録・ユーザーへの権限付与が必要です。
ディレクトリオブジェクトとはオラクルでの階層の別名のようなもので
下記の場合、"/home/test"配下にダンプファイルが作成されます。
create or replace directory TEST_DIR as '/home/test';
grant read, write on directory TEST_DIR to SCOTT;
※TEST_DIR =設定するディレクトリオブジェクト名
/home/test=設定するパス
SCOTT=ユーザ名
####■コマンド例
ディレクトリオブジェクトBにログを出力する場合
expdp ユーザ/パスワード directory=ディレクトリオブジェクト名A dumpfile=ディレクトリオブジェクト名B:dmpファイル tables=スキーマ.テーブル reuse_dumpfiles=y
###パラメータ
####■動作モード
パラメータ | 内容 | 引数 |
---|---|---|
FULL | 全体エクスポートで処理を行う。 | full=y or n |
SCHEMAS | 指定のスキーマ名に対して処理を行なう。カンマで複数指定可能 | schemas=スキーマ名 |
TABLES | 指定のテーブルに対して処理を行なう。同スキーマならカンマで複数指定可能 | tables=テーブル名 |
※他にも表領域を指定してエクスポートを実行できますがここでは割愛します。 |
####■ダンプファイル
dumpファイルとlogファイルを別ディレクトリに出力したい場合は、それぞれディレクトリオブジェクトを用意し、コマンド内で指定する。
パラメータ | 内容 | 引数 |
---|---|---|
DIRECTORY | ディレクトリオブジェクト名。デフォルトでのダンプファイル、ログファイルが出力されるディレクトリとなる。 | directory=ディレクトリオブジェクト名 |
DUMPFILE | ディレクトリオブジェクト名:出力ファイル名となる。 | dumpfile=ディレクトリオブジェクト名:ファイル名 |
REUSE_DUMPFILES | エクスポート時に既にダンプファイルがある場合、上書き保存を許可する。(パーミッションは変更されない) ※Oracle11g以降 | reuse_dumpfiles=y or n |
####■ログファイル | ||
パラメータ | 内容 | 引数 |
--- | --- | --- |
LOGFILE | 出力ディレクトリオブジェクト名:出力ログファイ名となる | logfile=ディレクトリオブジェクト名:ログファイル名 |
NOLOGFILE | ログファイルを出力しない | nologfile=y or n |
####■注意点 パーミッション
expdpコマンドで作成したダンプファイルの所有者はORACLEとなりパーミッションの関係上、一般ユーザでは読み取れないので注意が必要です。
筆者は動作確認でディレクトリオブジェクト配下に空のファイル(test.dmp)を作成しパーミッションも任意に設定しました。
expdpコマンドのダンプファイル名をtest.dmpにして
上書きオプション : reuse_dumpfiles=y
でコマンドを実行することでファイルの移動や読み取りを行いました。