論理バックアップによる対応

論理バックアップの特徴

物理ファイルを直接保存するバックアップのほかに、IMPORT/EXPORTコマンドを用いることによってデータの保存を行うことができる。この方法には、以下のようなメリットがある。

反面、特にインポート時には物理バックアップを大きく上回る時間が必要となるため、使用にはきちんとした計画が必要となる。

EXPORTコマンド

EXPORTコマンドのパラメータ

データを書き出すEXPORTコマンドは、主なパラメータとして以下のようなものを取る。

パラメータ意味
USERID ユーザの名前とパスワード。全体EXPORTを実行するには exp_full_databaseロールが必要
FILE 出力ファイルの名前。デフォルトはexpdat.dmp
FULL データベース全体のエクスポートを行うとき、yを指定
OWNER ユーザモードのエクスポートを行うとき,ユーザ名のリストを指定
TABLES テーブルモードのエクスポートを行うとき,テーブル名のリストを指定
INCTYPE 増分エクスポートのモードを指定。(COMPLETE|CUMULATIVE|INCREMENTAL)。全体エクスポートの場合のみに有効。
DIRECT ダイレクトパスモードで処理するかどうか。デフォルトはNOになっていることに注意

EXPORT処理のモード

EXPORT処理には、フル・ユーザ・テーブルの3つのモードがある。それぞれのモードでエクスポートできるオブジェクトは以下の通り(上位の権限では下位のオブジェクトをエクスポートできる。また、これらのオブジェクトはさらにスイッチによってエクスポートの可否を定められる)。

モードテーブルユーザフル
出力オブジェクト 表の定義
表データ
所有者の権限付与
所有者の索引
表の制約
トリガ
クラスタ
データベースリンク
ビュー
プライベートシノニム
順序
スナップショット
スナップショットログ
ストアドプロシジャ
ロール
パブリックシノニム
システム権限
表領域の定義
表領域の割り当て制限
ロールバックセグメントの定義
監査オプション
全てのトリガ
プロファイル

INCTYPEオプションを適切に使用することで、データベースの増分部分のみをエクスポートすることにより、エクスポートの作業時間を短縮することができる。それぞれのオプションの意味は以下の通り:

COMPLETE
必ずデータベース全体を出力する
CUMULATIVE
前回のCOMPLETE処理・またはCUMULATIVE処理からの増分を出力する
INCREMENTAL
前回のCOMPLETE処理・CUMULATIVE処理・INCREMENTAL処理からの増分を出力する

このような処理を行った場合、処理の履歴がSYS.INCVIDおよびSYS.INCEXPファイルに書き込まれる。

IMPORTコマンド

データを読み込むIMPORTコマンドは、主なパラメータとして以下のようなものを取る。

パラメータ意味
USERID ユーザの名前とパスワード。全体IMPORTを実行するには imp_full_database権限が必要
FILE 入力ファイルの名前。デフォルトはexpdat.dmp
SHOW 入力ファイルの説明のみを出力するとき、yを指定
FULL ファイル全体のインポートを行うとき、yを指定
INDEXES インデックスをインポートしない場合、nを指定
INDEXEFILE インデックスを作成するためのスクリプトを指定したファイルに出力する。
TABLES インポートの対象となるテーブル名のリストを指定
IGNORE インポート中に発生したエラーを無視するなら、yを指定。この場合、テーブル作成に失敗しても引き続いてデータ挿入作業を実行しようとするので、既存のテーブルにデータを追加する作業を行える。
INCTYPE 増分エクスポートのモードを指定。(RESTORE|SYSTEM)。

なお、IMPORTではダイレクトモードは使用されない。

増分エクスポートを行ったファイルからのデータベースの再作成は、以下の手順で行う。

  1. データベースの定義をリストアするため、最新のエクスポートファイル(モードは問わない)をsystemモードでインポートする。
  2. 必要に応じてロールバックセグメントをオンラインにする
  3. 最新のCOMPLETEモードのエクスポートファイルをrestoreモードでインポートする
  4. インポートしたCOMPLETEファイルより新しい全てのCUMULATIVEファイルを、作成順にrestoreモードでインポート
  5. インポートしたCUMULATIVE(またはCOMPLETE)ファイルより新しい全てのINCREMENTALファイルを、作成順にrestoreモードでインポートする。