5 SQLclでのデータ・ポンプ・サポート
SQLclリリース21.4以降では、データ・ポンプを使用してデータとメタデータをインポートおよびエクスポートできます。データ・ポンプは、PL/SQLパッケージDBMS_DATAPUMP
の使用によってSQLclで使用できるようになります。
次の操作を実行できます。
-
1つ以上のスキーマをエクスポートする。
-
remap schema
オプションを使用して1つ以上のスキーマをインポートする。 -
Oracle Database用およびOracle Autonomous Database Cloud Services用に
DATAPUMP
エクスポートおよびインポートを使用する。 -
ダンプ・ファイル用にデータベース・ディレクトリまたはOracle Object Storeを使用する。
-
SET DATAPUMP
コマンドを使用してデフォルトを設定し、STORE
コマンドを使用してそれらを保存する。 -
クラウド・ストレージ機能を使用してデータベース・ディレクトリへの配置やデータベース・ディレクトリからの取得を実行する。
5.1 スタート・ガイド
次の項では、SQLclでDATAPUMP
コマンドの使用を開始するために必要な情報を示します。
5.1.1 前提条件
SQLclでDATAPUMP
を使用するには、次の知識が必要です。
-
ログイン・ユーザーであり、エクスポートまたはインポートしている場合:
-
その表領域での適切なシステム権限または十分なユーザー領域リソースが必要です。
-
DBA
またはPDB_DBA
ロールを付与されていない場合、独自のスキーマをインポートまたはエクスポートするにはOracleディレクトリへのアクセス権が必要です。次に例を示します。grant read, write on directory DATA_PUMP_DIR to dpumpnotdba;
-
-
他のスキーマを使用する場合:
-
データ・ポンプのインポート操作とエクスポート操作に必要なロールの詳細は、「必要なロール」を参照してください。
-
インポートする表領域に対する権限が必要です。
-
-
データ・ポンプを使用できない場合は、かわりに、「ファイルのロード」で示す方法を使用してファイルをロードできます。
-
Autonomous Databaseに接続するには:
-
Oracle Cloud接続用のウォレット・ファイルをダウンロードします。「クライアント資格証明のダウンロード」を参照してください。
Autonomousへのインポートについては、クラウド移行アドバイザ・ツール(CPAT)を参照してください。
-
-
Oracle Databaseからオブジェクト・ストレージを使用するには:
-
Oracle Cloud Infrastructureのドキュメントでクラウド・ストレージ・コマンドのオプションおよび設定と前提条件を参照してください。
-
OCIプロファイル構成ファイルをインストールする必要があります。
-
OCIプロファイルは、
OCI PROFILE <name>
またはCS OCI <profile>
を使用して設定する必要があります。 -
データ・ポンプ・エクスポートで
-copycloud
オプションを使用して、エクスポートの最後の手順として、オブジェクト・ストレージにダンプ・ファイルをコピーできます。 -
データ・ポンプ・インポートで
-copycloud
オプションを使用して、インポートの最初の手順として、オブジェクト・ストレージからダンプ・ファイルをコピーできます。 -
クラウド・ストレージ・コマンド(putおよびget)を使用して、クラウド・ストレージとOracleディレクトリの間でダンプ・ファイルをコピーできます。
-
-
Autonomous Databaseからオブジェクト・ストレージを使用するには:
-
認証でのDBMS_CLOUDの使用を参照してください。
-
クラウド・ストレージ、
SET DATAPUMP
またはDATAPUMP
コマンドを使用して、オブジェクト・ストレージ用の資格証明を設定する必要があります。 -
ディレクトリを使用せずに、オブジェクト・ストレージにダンプ・ファイルを直接エクスポートできます。
-
ディレクトリを使用せずに、オブジェクト・ストレージからダンプ・ファイルを直接インポートできます。
-
ログ・ファイルをオブジェクト・ストレージに直接書き込むことはできませんが、クラウド・ストレージ・コマンドを使用してそれらをクラウド・ストレージにコピーできます。
-
-
エクスポート中にタイムゾーン・ファイルのバージョンが表示されます。ダンプ・ファイルは、タイム・ゾーン・ファイルのバージョンが同一(またはそれ以降)であるデータベースにのみインポートできます。
5.1.2 使用方法
DATAPUMP
コマンドは、DBMS_DATAPUMPパッケージを使用してデータ・ポンプ・ジョブを作成および送信します。
-
Autonomousへのインポートについては、クラウド移行アドバイザ・ツール(CPAT)を参照してください。
-
ソース・データベースとターゲット・データベースで、ハードウェア、オペレーティング・システム、文字セット、タイムゾーンおよびバージョンが異なっていてもかまいません。
-
Oracle Databaseリリース11g以降のバージョンに存在するすべてのオブジェクト・タイプとデータ・タイプがサポートされています。
-
データおよびメタデータを転送できます。
-
インポート時に、スキーマ名、表領域名およびメタデータを変換できます。
-
データをOracle独自の形式でアンロードおよびロードできます。
エクスポート
データ・ポンプ・エクスポートは、メタデータおよびデータをダンプ・ファイルにアンロードするために使用します。ダンプ・ファイルは、Oracleディレクトリまたはオブジェクト・ストレージに格納できます。
-
スキーマ、またはスキーマのリストが指定されていない場合は、現在のスキーマがエクスポートされます。
-
ディレクトリまたはオブジェクト・ストレージ、および資格証明が指定されていない場合、ダンプ・ファイルは
DATA_PUMP_DIR
に格納されます。 -
ジョブ名は、指定されていない場合は、
esql_<n>
として作成されます。 -
ダンプ・ファイル名が指定されていない場合、ダンプ・ファイルは
<jobname>.DMP
として格納されます。 -
ログ・ファイル名が指定されていない場合、ログ・ファイルは
<jobname>.LOG
として格納されます。
インポート
データ・ポンプ・インポートは、Oracleディレクトリまたはオブジェクト・ストレージに格納されている、以前にエクスポートされたダンプ・ファイルからメタデータおよびデータをロードするために使用します。
-
スキーマ、またはスキーマのリストが指定されていない場合は、ダンプ・ファイル内のすべてのオブジェクトがインポートされます(デフォルトでは
FULL
インポート)。 -
ディレクトリまたはオブジェクト・ストレージ、および資格証明が指定されていない場合、ダンプ・ファイルは
DATA_PUMP_DIR
に格納されます。 -
ジョブ名は、指定されていない場合は、
isql_<n>
として作成されます。 -
ダンプ・ファイル名が指定されていない場合、ダンプ・ファイルは
<jobname>.DMP
として格納されます。 -
ログ・ファイル名が指定されていない場合、ログ・ファイルは
<jobname>.LOG
として格納されます。
5.2 データ・ポンプ・コマンドの構文と引数
データ・ポンプ・コマンドは、dp
またはdatapump
を使用して呼び出すことができます。
構文
dp help [examples|syntax] | export [<optional-argument>,...] | import [<optional-argument>,...] |
SQLclでのデータ・ポンプについてヘルプ情報を表示するには、次のいずれかを入力します。
datapump help
dp help
構文をすばやく表示し、その他の詳細を除外するには、次のように入力します。
dp help syntax
ヘルプ内の例のみを表示するには、次のように入力します。
dp help examples
<optional argument>: 次の表に、使用可能なオプションの引数とそれぞれのデフォルト値を示します。
表5-1オプションの引数
ファイル引数 | 説明 | デフォルト |
---|---|---|
-credential、-c | クラウド・ストレージでのダンプ・ファイル・アクセスのための資格証明。 | クラウド・ストレージ・コマンドで使用されたとおり |
-directory、-d | ダンプ・ファイルとログ・ファイルの読取りと書込みのための、デフォルトのデータベース・ディレクトリ。 | DATA_PUMP_DIR |
-dumpdirectory、-dd | ダンプ・ファイル用のデータベース・ディレクトリ。 | -directory (指定されている場合)またはDATA_PUMP_DIR |
-dumpfile、-f | データベース・ディレクトリを使用する場合のダンプ・ファイル名。 | <jobname><n>.DMP |
-dumpuri、-u |
[
クラウド・ストレージ・コマンドで指定されたURIにこの修飾名を追加することで、オブジェクトのURIが完全に特定される必要があります。 Autonomous Databaseからクラウド・ストレージへの直接の読取り/書込みアクセス用の資格証明を設定します。 Oracle Databaseからの |
デフォルトのオブジェクト名は<jobname>.DMP です |
-logdirectory、-ld | ログ・ファイル用のデータベース・ディレクトリ。 | -directory (指定されている場合)またはDATA_PUMP_DIR |
-logfile、-lf | データベース・ディレクトリ内のログ・ファイル名。 | <jobname><n>.LOG |
表5-2 コマンド引数
コマンド引数 | 説明 | デフォルト |
---|---|---|
-noexec、-ne |
|
FALSE |
-verbose、-ve |
|
FALSE |
表5-3 共通引数
共通引数 | 説明 | デフォルト |
---|---|---|
-copycloud、-cc |
エクスポートの場合は、データ・ポンプ・ジョブの完了後に、ダンプ・ファイルをディレクトリからクラウド・ストレージにコピーします。 インポートの場合は、データ・ポンプ・ジョブを開始する前に、ダンプ・ファイルをクラウド・ストレージからディレクトリにコピーします。
|
FALSE |
-includemetadata、-im |
|
TRUE |
-includerows、-ir |
|
TRUE |
-jobname、-j |
データ・ポンプ・ジョブの名前。 ジョブ名には、データ・ポンプで生成された番号が付加されます(ジョブ名の末尾が数字である場合を除く)。jobname<n>は、データ・ポンプ・ジョブの発行時に使用され、ダンプ・ファイル名およびログ・ファイル名、またはオブジェクト名のデフォルトとして使用されます。 |
ESQL_<n> | ISQL_<n> ここでのnはデータ・ポンプで生成された番号です。
|
-schemas、-s <schema>、 |
<schema>,...] - 処理するスキーマまたはスキーマ・リスト。 次に例を示します。
|
エクスポートの場合は、現在の接続のスキーマ。インポートの場合、デフォルトはFULLであり、ダンプ・ファイル内のすべてのオブジェクトがインポートされます。 |
-version、-v |
{<nn.n> | <nn.n>: 特定のデータベース・バージョン。たとえば、11.0.0。 Oracle Database 11gリリース2 (11.2.0.3)以降からOracle Database 12 cリリース1 (12.1)にエクスポートする場合は、値12を指定して、既存のすべてのデータベース機能、コンポーネントおよびオプションをエクスポートできるようにします。これは、マルチテナント・コンテナ・データベース(CDB)または非CDBに適用されます。
|
COMPATIBLE |
-wait、-w |
|
TRUE |
表5-4 エクスポート専用の引数
エクスポート専用の引数 | 説明 | デフォルト |
---|---|---|
-compression、-cm |
ユーザー・データおよびメタデータに圧縮が必要かどうかを示します。
|
METADATA_ONLY |
-estimate、-e |
表のサイズの見積り方法を指定します。これは、ジョブを開始する前に実行する必要があります。
|
|
-filesize、-fs |
{<n> ファイルのサイズを制限します。
|
500 MB |
-flashbackscn、-fb |
|
FALSE |
-reusefile、-r |
|
TRUE |
表5-5 インポート専用の引数
インポート専用の引数 | 説明 | デフォルト |
---|---|---|
-columnencryption、-ce |
|
データベースでサポートされている場合はTRUE |
-objectid、-oid |
|
TRUE |
-remapschemas、-rs |
{<oldSchema>=<newSchema>,...} ジョブ内のオブジェクトは<newSchema>に移動されます。(例: oldschema1=newschema1、oldschema2=newschema2)。 |
該当なし |
-remaptablespaces、-rt |
{<oldTablespace>=<newTablespace>,...} ジョブ内の<oldTablespace>記憶域セグメントは<newTablespace>に再配置されます。(例: oldtablespace1=newtablespace1、oldtablespace2=newtablespace2) |
該当なし |
-segmentattributes、-sa |
|
TRUE |
-skipunusableindexes、-sui |
|
TRUE |
-storage、-st |
|
TRUE |
-tableexists、-te |
インポート中に表が存在する場合に実行する処理です。
|
|
-tablecompression、-tc |
|
TRUE |
5.3 ユースケース
次のユースケースでは、DATAPUMP
コマンドを使用してデータをインポートおよびエクスポートする方法を示します。
ユースケース1
自動コピーを使用してデータベース・スキーマをOracle Object Storeにエクスポートしてから、Autonomousにインポートします。
-- OCI setup for database access to Oracle Object Store
SQL> oci profile my-profile
SQL> cs https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/abc123/testing-bucket/
-- Export the current schema into the DATA_PUMP_DIR with automatic copy using OCI setup
SQL> connect <db-connect-string>
SQL> dp export -copycloud -dumpfile my_dump.dmp
-- Import from Oracle Object Store using credential
SQL> set cloudconfig <wallet>
SQL> connect <cloud-connect-string>
SQL> dp import -dumpuri /o/my_dump.dmp -c SWIFTCRED
ユースケース2
手動コピーを使用してデータベース・スキーマをOracle Object Storeにエクスポートしてから、Autonomousにインポートします。
-- Export the current schema into the DATA_PUMP_DIR
SQL> connect <db-connect-string>
SQL> dp export -dumpfile my_dump.dmp
-- OCI setup to manual copy from database directory to Oracle Object Store
SQL> oci profile my-profile
SQL> cs https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/abc123/testing-bucket/
SQL> cs put dbdir DATA_PUMP_DIR/my_dump.dmp /o/my_dump.dmp
-- Import from Oracle Object Store using credential
SQL> set cloudconfig <wallet>
SQL> connect <cloud-connect-string>
SQL> dp import -dumpuri /o/my_dump.dmp -c SWIFTCRED
ユースケース3
自動コピーを使用して複数のスキーマをOracle Object Storeにエクスポートしてから、スキーマの再マップを使用してインポートします。
-- OCI setup for Database access to Oracle Object Store
SQL> oci profile my-profile
SQL> cs https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/abc123/testing-bucket/
-- Export schemas into Database Directory with automatic copy to Oracle Object Store
SQL> connect <db-connect-string>
SQL> dp export -schemas dpumptest1,dpumptest11 -dumpfile DPUMPTEST1_11.DMP -cc
-- Import from Oracle Object Store using credential. Remap the schemas
SQL> set cloudconfig <wallet>
SQL> connect <cloud-connect-string>
SQL> dp import -dumpuri /o/DPUMPTEST1_11.DMP -c SWIFTCRED -rs dpumptest1=dpumptest2,dpumptest11=dpumptest21
ユースケース4
Autonomousからエクスポートした後、Autonomousにインポートします。
-- DBMS_CLOUD setup for access to Oracle Object Store
SQL> oci cs dbc swiftcred
SQL> cs https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/abc123/testing-bucket/
-- Export the current schema into Oracle Object Store
SQL> set cloudconfig <wallet>
SQL> connect <cloud-connect-string1>
SQL> datapump export -dumpuri /o/DPUMPTEST1z.DMP
-- Import from Oracle Object Store
SQL> connect <cloud-connect-string2>
SQL> dp import -copycloud -dumpuri /o/DPUMPTEST1z.DMP
ユースケース5
クラウド・ストレージを使用してデータベース間で転送します。
-- OCI setup to manual copy between directories and Oracle Object Store.
SQL> oci profile my-profile
SQL> cs https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/abc123/testing-bucket/
-- Export the current schema into the DATA_PUMP_DIR
SQL> connect <db-connect-string1>
SQL> dp export -dumpfile DPUMPTEST1.DMP -cc
-- Copy to database directory from Oracle Object Storage
SQL> connect <db-connect-string2>
SQL> datapump import -dumpfile DPUMPTEST1.DMP -schemas dpumptest1 -cc
ユースケース6
SET DATAPUMP
を使用して、エクスポートとインポートの両方のデフォルト引数を設定します。
-- Set default arguments for credential, segment attributes and remap schemas
SQL> set datapump -c SWIFTCRED -sa false -rs dpumptest1=dpumptest2,dpumptest11=dpumptest21
-- Show default arguments
SQL> show datapump
-- Restore original default settings
SQL> set datapump default
5.4 ヒントとトラブルシューティング
DATAPUMP
コマンドは、DBMS_DATAPUMP
パッケージを使用してエクスポートおよびインポートを実行する、PL/SQLを作成します。
-
PL/SQLとパラメータのプレビュー
-
-noexec
オプションを使用してエクスポートまたはインポートを検証します。このオプションでは、生成されたPL/SQLとパラメータが表示されますが、実行のためにジョブが発行されることはありません。
-
-
コマンド処理に関する追加情報の取得
-
追加の診断情報を表示するには、
-verbose
オプションを使用します。 -
また、このオプションでは、ログの最終行および完了した割合を表示するための、コピーできる問合せが提供されます。
-
-
ジョブ・ログの表示
-
-wait
オプションを使用すると、ログがコンソールに書き込まれます。 -
-wait false
を使用すると、ディレクトリ内のファイルを表示できない場合に、ログをオブジェクト・ストレージにコピーできます。
-
-
ログイン・ユーザーとしてインポートまたはエクスポートする場合は、
SYS
ロールを使用しないことをお薦めします。