LoginSignup
1
3

More than 5 years have passed since last update.

Oracle10g以降のexpdp、impdpコマンド

Last updated at Posted at 2016-07-16

はじめに

DBのテーブル&レコードのバックアップ方法として 「expdp」と「impdp」コマンド使用を推奨されて調査しました。

Windows → linux間で行いました。

Oracle自体のメジャーバージョンが新しい程、コマンドの引数の種類が増えています。

更新履歴

日付 内容
2016.07.18 初版
2018.11.14 Oracle18cを調査

発端

(1) 古いデータが大量に本番環境に存在しており、データを圧迫している。

けれどもレコードとしては何年間は保存しておかなければならない。

(2) 本番環境からレコードを抽出し、外部サーバーに保存。

何かあった時のためにDBにインポートし、SQLでレコードを検索できるようにする。

(3) バックアップが出来るのであれば本番環境の古いレコードは削除する。

必須環境

Windows → linux間でコマンド叩けるツール : Teraterm

OracleにSQLを発行するブラウザ : ObjectBrowser

LinuxでORACLE_HOMEが環境パスに設定されているかつファイルの書き込み権限のあるユーザー

初めての手順

下準備

(1)エクスポート条件を「.par」ファイルに記述する

(2)外部サーバーへのインポート条件を「.par」ファイルに記述する

(3)本番サーバーへのインポート条件を「.par」ファイルに記述する

(4)ObjectBrowserから「CREATE DIRECTORY」と、「GRANT READ, WRITE ON DIRECTORY」を発行する。

(5)本番環境にエクスポート条件の記述された「.par」ファイルとインポート条件の「.par」ファイルを送信しておく。

エクスポート

(1)本番環境にTeratermで接続する。

(2)「expdp ユーザー名/パスワード parfile=''」

(3)完了メッセージを確認する。

本番環境のレコード削除(TRUNCATE後のインポート)

(1)本番環境にTeratermに接続する。

(2)「impdp ユーザー名/パスワード parfile=''」

(3)完了メッセージを確認する。

(4)ObjectBrowserから「ALTER INDEX REBUILD」を発行し、インデックスの再構築を行う

(5)統計情報の更新を行う

(6)oracle再起動を行う

別サーバーへのインポート

後日追記します。

.parファイル

エクスポート用

オプション 振る舞い
CONTENT エクスポート操作でロードする内容をフィルタ処理できる
LOGFILE エクスポート時のログ結果を残しておく為に指定しておく
DUMPFILE エクスポートしたダンプファイルの名前を指定しておく
DIRECTORY ダンプファイルやログファイルの置き場所を指定しておく
TABLES 抽出するテーブルの名前を指定しておく

本番環境のレコード削除用

オプション 振る舞い
CONTENT インポート操作でロードする内容をフィルタ処理できる
LOGFILE インポート時のログ結果を残しておく為に指定しておく
DUMPFILE インポートするダンプファイルの名前を指定しておく
DIRECTORY ダンプファイルやログファイルの置き場所を指定しておく
QUERY インポート条件を記述する
TABLE_EXISTS_ACTION テーブルが存在する時の動作を指定石ます

コマンド発行時の注意

大量データの処理中はもちろん、結果が返ってくるのに時間がかかる。

引数に「STATUS=integer」を与えると、コマンドラインに処理中の状況が逐一表示される。

コマンドライン上で「Ctrl + z」等で処理を中断しても、実はoracleのjobの中で動作しているらしい。

間違ってコマンドラインを閉じてしまった時は再度「expdp」「impdp」コマンドを叩き、

その引数に実行中のjobを指定し「kill_job」を行う。

jobの名称は「JOB_NAME」として引数に設定できる。

また、データベースに色々登録されるらしい。

2018.11.14 Add

当コマンド群を「Datapump」と呼ぶらしい。
また、Oracle18cからは管理ツールからDatapumpが実行できるようになったので、
めんどくさいコマンド発行等は簡易化されています。

1
3
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
1
3