はじめに
Oracleデータベースでテーブル内のデータを一時的にバックアップしておきたいときは、Data Pumpという機能でファイルにエクスポートすることができます。
この記事では、Data Pumpを使ったテーブル単位でのエクスポートとインポートの方法について書いています。
【オラクル認定資格試験対策書】ORACLE MASTER Bronze[Bronze DBA11g](試験番号:1Z0-018)完全詳解+精選問題集 (オラクルマスタースタディガイド)
posted with amazlet at 15.02.11
エディフィストラーニング株式会社 飯室 美紀 岡野 友紀 西 昭彦 鈴木 佐和
ソフトバンククリエイティブ
売り上げランキング: 8,271
ソフトバンククリエイティブ
売り上げランキング: 8,271
環境
- Oracle Database 11g EE 11.2.0.1.0
- Windows Server 2008 R2 SP1
事前準備
はじめに、エクスポートデータを格納するディレクトリを用意します。(ここではTEST_DIR)
sysユーザでログインして、TEST_DIR=cドライブ直下であることをOracleに定義します。
create or replace directory ディレクトリ名 as 'ファイルの場所';
conn sys/pwd as sysdba create or replace directory TEST_DIR as 'C:¥';
続いて、ユーザにTEST_DIRに対する読み取り権限と書き込み権限を付与します。
grant read, write on directory ディレクトリ名 to ユーザ名;
grant read, write on directory TEST_DIR to hoge;
テーブルのエクスポート
テーブルのエクスポートはexpdbコマンドを使います。
コマンドプロンプトを起動して(sql*plusではありません)、以下のコマンドを実行します。
expdp ユーザID/パスワード directory=ディレクトリ名 tables=対象となるテーブル名
expdp hoge/hoge_pwd directory=test_dir tables=table01,table02
エクスポートが完了すると、c:¥EXPDAT.DMPというファイルができます。
テーブルのインポート
インポートも同様に、c:¥EXPDAT.DMPが存在する状態で、impdpを実行します。
このとき、インポート対象のテーブルが存在するとエラーになるので、table01とtable02は事前にdrop tableしておきます。
impdp ユーザID/パスワード directory=ディレクトリ名 dumpfile=ダンプファイル tables=対象となるテーブル名
impdp hoge/hoge_pwd directory=test_dir dumpfile=EXPDAT.DMP tables=table01,table02