>> i's SQUARE >> Oracleのノウハウ >> 論理バックアップ

論理バックアップ



Oracleでは「エクスポート・ユーティリティ」によるバックアップ方法が用意されてます。 これを利用すると、データベースが稼働している状態で表のデータや定義をダンプ・ファイルに出力する事が出来ます。 また出力したファイルは「インポート・ユーティリティ」によって復元することも可能です。 これらのエクスポート・インポートを利用すれば バックアップだけではなく、他DBへのデータ移行、断片化したオブジェクトの再編成等 さまざまな用途で使用できます!


▼エクスポートの例
% exp userid=オラクルID/パスワード direct=y tables=テーブル名 grants=no file=出力ファイル名

▼パラメーターファイルを読み込んでエクスポート
% exp PARFILE=パラメーターファイル名

▼パラメーターファイルの中身の例
userid=オラクルID/パスワード
tables=('テーブル名1','テーブル名2','テーブル名3')
query="where last_date >= to_char(sysdate-184,'YYYYMMDD')"
direct=n
grants=no
buffer=10000000
statistics=none
file=出力ファイル名
log=出力ログ名
ダイレクトパス方式(direct=y)を使用すると高速に実行可能ですが、 上記の例では query を使用しているので、この場合はダイレクトパス方式は使用出来ません! query は where句を入れることができるので、 これによりテーブルの特定の条件のデータのみをエクスポートする事も可能です☆


▼インポートの例
% imp userid=オラクルID/パスワード file=ダンプファイル名 ignore=y tables=テーブル名

▼パラメーターファイルを読み込んでインポート
% imp PARFILE=パラメーターファイル名

▼パラメーターファイルの中身の例
userid=オラクルID/パスワード
tables=('テーブル名1','テーブル名2','テーブル名3')
file=ダンプファイル名
ignore=y





Oracleでは「SQL Loader」を使用することによって 一定の書式で記述された大量のデータを 効率よく高速にデータベースの表に格納することもできます!

▼SQL Loaderの実行例
% sqlldr オラクルID/パスワード control=コントロールファイル名

▼コントロールファイルの中身の例
OPTIONS (
DIRECT = TRUE,
MULTITHREADING = TRUE,
PARALLEL = TRUE
)
LOAD DATA
INFILE '入力ファイル1'
INFILE '入力ファイル2'
BADFILE 'エラー出力ファイル'
APPEND
INTO TABLE テーブル名
FIELDS TERMINATED BY ","
TRAILING NULLCOLS
(
テーブルの項目名1,
テーブルの項目名2,
テーブルの項目名3,
テーブルの項目名4
)
上記は「,」区切りのデータをテーブルに入れてます。 また、ダイレクトパスロードを使用して読み込み操作をパラレル化してますので入力ファイルも複数指定してます。

▼コントロールファイルの中身の例
LOAD DATA
INFILE '入力ファイル'
BADFILE 'エラー出力ファイル'
APPEND
INTO TABLE テーブル名
WHEN (テーブルの項目名1 = 'XXXX') AND (テーブルの項目名2 = 'XX')
TRAILING NULLCOLS
(
テーブルの項目名1 POSITION(1:4) "RTRIM(:テーブルの項目名1)",
テーブルの項目名2 POSITION(5:6) "RTRIM(:テーブルの項目名2)",
テーブルの項目名3 SYSDATE,
テーブルの項目名4 CONSTANT "0"
)


進退きわまって四方八方敵だらけとなり、
もう一刻ももちこたえられないという気持ちになっても、
決してそこで手放してはいけません。
情勢が一変するのは、まさにそれからなのですから。
by ハリエット・ビーチャ=Eストー