LoginSignup
4
6

More than 5 years have passed since last update.

ORACLE データベースのエクスポート

Posted at

概要

オラクルの論理バックアップの取得は、expdpコマンドを使って行います。
このコマンドを実行すると任意のディレクトリに.dmpという拡張子のバックアップファイルが作成されます。
※.dmpファイルは通常中身を確認できません。

筆者は過去に大規模開発案件にてexpdpコマンドを使い、
データベースのバックアップを行うバッチを作成したので備忘録として残したいと思います。

準備

expdpコマンドの実行にはオラクルでディレクトリオブジェクトの登録・ユーザーへの権限付与が必要です。
ディレクトリオブジェクトとはオラクルでの階層の別名のようなもので
下記の場合、"/home/test"配下にダンプファイルが作成されます。

SQL
    create or replace directory TEST_DIR as '/home/test';
    grant read, write on directory TEST_DIR to SCOTT;

※TEST_DIR =設定するディレクトリオブジェクト名
 /home/test=設定するパス
 SCOTT=ユーザ名

■コマンド例

ディレクトリオブジェクトBにログを出力する場合

SQL
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
でコマンドを実行することでファイルの移動や読み取りを行いました。

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6