-
Oracle では、データをインポートおよびエクスポートするための 2 つのツール imp.exe および exp.exe を提供しています。これら 2 つのツールは Oracle_home/bin ディレクトリにあります。
データエキスプトのエクスポート
1 データベース ATSTestDB をユーザー名 system とパスワード 123456 で c:export.dmp に完全にエクスポートします。
exp system/123456@ATSTestDB file=c:export.dmp full=y
このうち、ATSTestDB はデータベース名、system はデータベース内のアカウント、123456 はパスワードです。
2 データベース内のシステム ユーザーと sys ユーザーのすべての関連リソース (テーブル、ストアド プロシージャ、メソッド、ビューなど) をエクスポートします。
exp system/123456@ATSTestDBファイル= c:export.dmp 所有者=(システム,sys)
3 データベース内のテーブル sys.table1 および owbsys.table2 をエクスポートします。
exp system/123456@ATSTestDBファイル= c:export.dmp テーブル=(sys.table1, owbsys.table2)
テーブルのスキーマ名を追加する必要があることに注意してください。そうでない場合は、現在接続しているユーザーのテーブルがデフォルトで使用されます。接続するアカウントには、対応するテーブルに対する権限が必要です。
4 データベースのtable1のフィールドタイトルが「GangGe」で始まるデータをエクスポートします
exp system/123456@ATSTestDB file= c:export.dmp tables=(table1) query=" where Title like 'GangGe%'"
コロンが続くスラッシュ "" は、条件付きクエリ ステートメントが続くため、文字コロン " " " をエスケープするために使用されます。指定できるクエリ パラメータは 1 つだけです。クエリが複数のテーブルに対して行われる場合も同様です。 1 つまたは複数のテーブルを作成でき、これらのテーブルに対してクエリの条件を実行できます。それ以外の場合は、さらにいくつかの exp ステートメントを記述する必要があります。
エクスポート後、データが比較的大きい場合があります。winzip、winrar、7zip、その他のサードパーティ ツールなどの圧縮ツールを使用してデータを再圧縮できます。同様に、exp は、ユーザーがデータを直接圧縮するためのパラメータ compress = y をサポートしています。このパラメータをコマンドの最後に直接追加すると、エクスポート中にデータを圧縮できます。
データインプのインポート
データを抽出する方法はわかっているので、復元するときは、imp コマンドを使用してエクスポートされたデータをロードする必要があります。
1 c:export.dmp データを ATSTestDB にロードします
imp system/123456@ATSTestDB file=c:export.dmp
データをインポートすると、エラーが報告される場合があります。なぜ?主な理由は 2 つあります。
A. インポートされたオブジェクト (テーブル、ビュー、メソッドなど) は、元々は現在接続しているユーザーに属していません。
B. インポートされたオブジェクトは、データベースの指定されたユーザーの下にすでに存在します。
C. インポートされたオブジェクトの元のユーザーは、このデータベースには存在しません。
すべてのオブジェクトが指定されたアカウントにインポートされます。
Imp system/123456@ATSTestDB file=c:export.dmp fromuser=sys touser=system
このうち、fromuser=sys は .dmp ファイル内のオブジェクトの元の所有者であり、touser=system はインポートされたオブジェクトの新しい所有者です。
データの無視/挿入
Imp system/123456@ATSTestDB file=c:export.dmpignore=y
このうち、ignore=y は、対応するオブジェクトにデータを直接挿入するように imp.exe に指示します (インポートされたオブジェクトに制約やインデックスなどの他のオブジェクトがある場合、それらはデータの挿入後に作成されます)。
2 指定したテーブル table1、table2 をロードします
imp system/123456@ATSTestDBファイル=C:export.dmp テーブル=(テーブル1,テーブル2)
3 読み込み制約を無視する
データをインポートするときに、外部キー制約などの制約をインポートする必要がない場合があります。パラメータconstraints=Nを追加できます。
imp system/123456@ATSTestDBファイル=C:export.dmp テーブル=(テーブル1,テーブル2) 制約=N
4 インデックス (一意のインデックスなど) をロードしないでください。
imp system/123456@ATSTestDBファイル=C:export.dmp テーブル=(テーブル1,テーブル2) インデックス=N
5 データではなく構造のみをロードします
テーブルの構造 (制約、トリガー) を定義するだけで、内部のデータが必要ない場合は、パラメータ rows=N を追加できます。
imp system/123456@ATSTestDBファイル=C:export.dmp テーブル=(テーブル1,テーブル2) 行=N
上記の操作では、ログイン操作のオブジェクト システムが管理者ではなく、一般ユーザーである場合、このユーザーはオブジェクトを作成および削除する権限を持っている必要があります。オブジェクトにはテーブルなどの共通オブジェクトが含まれる場合があります。 、ビュー、メソッド、ストアド プロシージャなど。なぜ「かもしれない」が含まれるのでしょうか?これは、インポートおよびエクスポート時に関連するタイプのオブジェクトが関与するかどうかに依存するためです。
この時点で、上記の簡単な Oracle データのインポートおよびエクスポート コマンドをマスターしましたか?それで十分だと思います。