web-dev-qa-db-ja.com

所有者とデータベースからのすべてのユーザーに基づいてOracleテーブルをエクスポートする

すべてのユーザーとロールのオブジェクトをOracle 10gデータベースから別のデータベースにエクスポートしたいと思います。私はそれをググりましたが、どうすればいいのかわかりません。

まず、このコマンドを使用します。

exp system/root @ [DB_Name] file = [Back_file_name] owner =([Owner_Name]

しかし問題は、一部のテーブル設定がユーザー権限に依存することでした。したがって、ユーザーオブジェクトもエクスポートしたいと思います。

たとえば、次のコマンドですべてのオブジェクトをエクスポートできます。

exp system/root @ [DB_Name] Full = Y file = [Back_file_name]

しかし、このコマンドは必要なオブジェクトをエクスポートしません。

エクスポートのみしたい:

  • 所有者名によるテーブル
  • すべてのユーザー
  • 多分役割

これは可能ですか?

5
meop

Data Pumpエクスポート/インポートはあなたが探しているものです。これを使用してスキーマ定義をエクスポートし、ターゲットデータベースにロードして、必要なオブジェクトのタイプを指定できます。

INCLUDEパラメータを使用して特定のタイプのオブジェクトを選択できるので、テーブルをエクスポートするには、次のようにします。

expdp include=table ...

十分な権限を持つユーザーとしてエクスポート/インポートを実行すると、インポート時にターゲット上にユーザーも作成されます。

Oracle 10.2の完全なドキュメント:

データポンプエクスポート

データポンプインポート

2
Chris Saxon

私が理解したように、データベースをある場所から別の場所に移行したいとします。まず、ユーザーをソースデータベースに作成してユーザーを作成するのではなく、ターゲットデータベースに必要なテーブルスペースを作成する必要があります。ここで重要なのは、ユーザーを手動で作成し、必要な特権を与える必要があるということです。 expまたはexpdpユーティリティを使用してこれを行う方法はありません。

その後、コードを使用できます。

exp system/root @ [DB_Name] file = [Back_file_name] owner =([Owner_Name])

これにより、スキーマ内のすべてのオブジェクトがエクスポートされます。

0