2014年9月18日木曜日

ORACLEのEXPとIMP


エクスポート。

DBの情報は以下を前提としています。

ユーザ名
USER
パスワード
PASS
元サーバのTNSNAME
TNSDB
先サーバのTNSNAME
TNSNEWDB
EXP


必要なスキーマのみを抽出するときの例は以下の通り。

EXP USER/PASS@TNSDB BUFFER=409600 FILE=EXPDAT0806.DMP LOG=EXPLOG0806.LOG OWNER=USER

必ず指定するパラメータは以下。

USERID
USER/PASS@TNSDB の部分
BUFFER
FILE
ファイル名の指定のみだと、実行時のフォルダに配置される。
Windowsを例にとると「C:\>EXP ~」とした場合、C:\ 直下にダンプファイルが作成される。
あくまでも EXP を実行するPC(もしくはサーバ)にダンプファイルが作成される。
LOG
FILE パラメータとファイル配置は同様。
エクスポート時のエラー確認用。
状況に応じて変更するパラメータは以下。

OWNER
特定のスキーマを抽出する際に使用。
FULL=Y
全て(SYSTEMやSYSを含む)のDBを取得する際に使用。

パラメータのヘルプ(「EXP -HELP」を実行)は、以下の通り。

Export: Release 9.2.0.1.0 - Production on 金 Aug 6 16:52:43 2010

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.



EXPを入力するとエクスポートがパラメータ入力を要求します。
コマンドに続いてユーザー名/パスワードを指定してください:

     入力例: EXP SCOTT/TIGER

また、EXPコマンドの後に引数を入力することによって、エクスポートの実行を
制御できます。パラメータの指定にはキーワードを使用します:

     形式  : EXP KEYWORD=value or KEYWORD=(value1,value2,...,valueN)
     入力例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
          または TABLES=(T1:P1,T1:P2)、ただしT1がパーティション表の場合。

USERIDは、コマンドラインの最初のパラメータである必要があります。

キーワード 摘要(デフォルト)            キーワード    摘要(デフォルト)
--------------------------------------------------------------------------
USERID     ユーザー名/パスワード        FULL         ファイル全体のエクスポート(N)
BUFFER     データ・バッファのサイズ     OWNER        所有者のユーザー名リスト
FILE       出力ファイル(EXPDAT.DMP)    TABLES       表名のリスト
COMPRESS   1エクステントにインポート(Y) RECORDLENGTH IOレコードの長さ
GRANTS     権限のエクスポート(Y)        INCTYPE      増分エクスポートの種類
INDEXES    索引のエクスポート(Y)        RECORD       増分エクスポートの追跡(Y)
DIRECT     ダイレクト・パス(N)          TRIGGERS    トリガのエクスポート(Y)
LOG        画面出力のログ・ファイル     STATISTICS   オブジェクトの分析(ESTIMATE)
ROWS       データ行のエクスポート(Y)    PARFILE      パラメータ・ファイル名
CONSISTENT 表間の一貫性(N) CONSTRAINTS  エクスポート制約(Y)

OBJECT_CONSISTENT    オブジェクトのエクスポート中のみに読み込むトランザクション設定(N)
FEEDBACK             x行ごとに進行状況を表示(0)
FILESIZE             各ダンプ・ファイルの最大サイズ
FLASHBACK_SCN        セッションのスナップショットを戻すために使用するSCN
FLASHBACK_TIME       指定した時間に最も近いSCN取得時間
QUERY                表のサブセットのエクスポートに使用するSelect句
RESUMABLE            領域関連のエラーが発生すると一時停止します(N)
RESUMABLE_NAME       再開可能文の指定に使用するテキスト文字列
RESUMABLE_TIMEOUT    RESUMABLEの待機時間
TTS_FULL_CHECK       TTSの依存性検査の全部または一部を実行する
TABLESPACES          エクスポートする表領域のリスト
TRANSPORT_TABLESPACE トランスポータブル表領域のメタデータのエクスポート(N)
TEMPLATE             iASモードのエクスポートを起動するテンプレート名

エクスポートは警告なしで正常終了しました。
IMP

インポート

手順としては

スキーマ(ユーザ)を作成する。
作成したスキーマへ、移行したいスキーマ分をインポート。
となります。

エクスポートと同じユーザの例は、以下の通り

IMP USER/PASS@TNSNEWDB FROMUSER=USER TOUSER=USER IGNORE=Y COMMIT=Y BUFFER=409600 FILE=EXPDAT0806.DMP LOG=IMPLOG0806.LOG

必ず指定するパラメータは以下。

USERID
USER/PASS@TNSDB の部分
FROMUSER
EMP で取得した際に、ダンプに入っているユーザ。(OWNERで指定したのであればそのユーザ)
TOUSER
移行先のスキーマ名
IGNORE
表領域名が違ったりすると、エラーとなってインポートできないのを防ぐ。
COMMIT
BUFFER
FILE
LOG
パラメータのヘルプ(「IMP -HELP」を実行)は、以下の通り。

Import: Release 9.2.0.1.0 - Production on 金 Aug 6 17:13:35 2010

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.



IMPを入力するとインポートがパラメータ入力を要求します。
コマンドに続いてユーザー名/パスワードを指定してください:

     入力例: IMP SCOTT/TIGER

また、IMPコマンドの後に引数を入力することによって、インポートの実行を
制御できます。パラメータの指定にはキーワードを使用します:

     形式  : IMP KEYWORD=value または KEYWORD=(value1,value2,...,valueN)
     入力例: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
      または TABLES=(T1:P1,T1:P2)、ただしT1がパーティション表の場合。

USERIDは、コマンドラインの最初のパラメータである必要があります。

キーワード   内容(デフォルト値)        キーワード   内容(デフォルト値)
--------------------------------------------------------------------------
USERID       ユーザー名/パスワード     FULL         全ファイルをインポート(N)
BUFFER       データ・バッファ・サイズ  FROMUSER     所有するユーザーのリスト
FILE         入力ファイル(EXPDAT.DMP)  TOUSER       ユーザー名リスト
SHOW         ファイル内容のリスト(N)   TABLES       表名のリスト
IGNORE       作成時エラー無視(N)       RECORDLENGTH ファイルのI/Oレコード長
GRANTS       権限のインポート(Y)       INCTYPE      増分インポートの種類
INDEXES      索引のインポート(Y)       COMMIT       配列挿入のコミット(N)
ROWS         データ行のインポート(Y)   PARFILE      パラメータ・ファイル名
LOG          画面出力のログ・ファイル  CONSTRAINTS  制約のインポート(Y)
DESTROY                表領域データ・ファイルの上書き(N)
INDEXFILE              指定ファイルへの表/索引情報の書込み
SKIP_UNUSABLE_INDEXES  使用不能な索引のメンテナンスをスキップ(N)
FEEDBACK               x行ごとに進行状況を表示(0)
TOID_NOVALIDATE        指定したタイプIDの妥当性チェックをスキップ
FILESIZE               各ダンプ・ファイルの最大サイズ
STATISTICS             計算済統計情報のインポート(常時)
RESUMABLE              領域関連のエラーが発生すると一時停止します(N)
RESUMABLE_NAME         再開可能文の指定に使用するテキスト文字列
RESUMABLE_TIMEOUT      RESUMABLEの待機時間
COMPILE                プロシージャ、パッケージおよび関数のコンパイル(Y)
STREAMS_CONFIGURATION インポートは一般的なメタデータをストリームします(Y)
STREAMS_INSTANITATION  インポートはインスタンス化メタデータをストリームします(N)

次のキーワードは、トランスポータブル表領域のみに適用されます。
TRANSPORT_TABLESPACEは、インポートするトランスポータブル表領域メタデータ(N)。
TABLESPACESは、データベース内に移送される表領域。
DATAFILESは、データベース内に移送されるデータ・ファイル
TTS_OWNERSは、トランスポータブル表領域セット内にデータを所有するユーザー。


■EXP-00091: 不審な統計をエクスポートしています。

Oracleのexpコマンドで、以下の警告メッセージが表示されることがあります。

EXP-00091: 不審な統計をエクスポートしています。
このメッセージが表示される場合、以下のケースが想定されます。

テーブル全体ではなく、一部のテーブルのみエクスポートしている
データベースの文字コードと環境変数NLS_LANGが一致しない
statistics=noneを指定していない場合は指定したテーブルの統計情報も一緒にEXPORTされますが、統計上は元々テーブル全体の情報を保持しています。 だから、テーブルの一部を取り出す場合にはEXPORTしたテーブルの統計情報と内容が合わない場合があるので、EXP-00091が発生する。
MyKnowledge SE社員: show ~ Oracle export statistics 不審な統計 はてなブックマーク - MyKnowledge SE社員: show ~ Oracle export statistics 不審な統計
EXP-00091が表示される場合の対処方法

EXP-00091が表示される場合は統計情報をエクスポートしないよう、statistics=noneを指定することで、警告メッセージを表示しないようにします。

exp ユーザID/パスワード tables=テーブル名 statistics=none
エクスポートしたデータをインポートする際、統計情報はインポートされないので、手動で統計情報を再構築すると良いです。

0 件のコメント:

コメントを投稿