Autonomous AI Database で Data Pump をエクスポート・インポートする方法まとめ

Database

初めに

Autonomous AI Database (ADB) でData Pumpファイルをエクスポート・インポートする方法はいくつか存在します。本記事では、それらの代表的な方法を比較・整理してご紹介します。

なお、ここで紹介する内容は、公式に提供されている製品・サービスに限定しており、サードパーティー製のツール等については言及しておりません。

1. エクスポート・インポート方法

1-1. CLI/API

a) expdp/impdpコマンド

前提

コマンド例
次の例の出力先は、OCIオブジェクト・ストレージです。

  • エクスポート:
expdp DATA_PUMP_USER/<password>@adw_high \
  credential=<credential_name> \
  dumpfile=https://objectstorage.ap-tokyo-1.oraclecloud.com/n/<ObjectStorageNamespace>/b/<bucket_name>/o/data_pump_file.dmp \
  logfile=export.log \
  directory=data_pump_dir
  • インポート:
impdp DATA_PUMP_USER/<password>adw_high \
  credential=<credential_name> \
  dumpfile=https://objectstorage.ap-tokyo-1.oraclecloud.com/n/<ObjectStorageNamespace>/b/<bucket_name>/o/data_pump_file.dmp \
  tables=<table_name> \
  table_exists_action=append \
  logfile=import.log \
  directory=data_pump_dir

※、事前にクレデンシャルとディレクトリを作成してください。

b) SQLcl の "dp export/import" コマンド

この例では、OCI Cloud ShellからSQLclを実行する。
※、Coud Shellにインストール済で、直接に使える。

ステップ

  1. OCI Cloud Shellを開く。
  2. ADBウォレットをCloud Shellにアップロードする。
  3. SQLclを起動し、エクスポート対象ユーザーでADBへ接続する。
    コマンド例:sql -cloudconfig Wallet_adw01.zip
  4. dp exportを実行し、スキーマをエクスポートする。
<username>@cloudshell:~ (ap-tokyo-1)$ sql -cloudconfig Wallet_adw01.zip DATA_PUMP_USER/<password>@adw01_high
<中略>
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.21.0.1.0

SQL> show user;
USER is "DATA_PUMP_USER"
SQL> dp export
Initiating DATA PUMP
Database Time Zone: VERSION:42 CON_ID:0
Log Location: DATA_PUMP_DIR:ESQL_46.LOG
Starting "DATA_PUMP_USER"."ESQL_46":  
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type SCHEMA_EXPORT/STATISTICS/MARKER
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/POST_SCHEMA/PROCACT_SCHEMA
. . exported "DATA_PUMP_USER"."ZIPCODEJP"                6.006 MB  124523 rows
ORA-39173: Encrypted data has been stored unencrypted in dump file set.
Master table "DATA_PUMP_USER"."ESQL_46" successfully loaded/unloaded
******************************************************************************
Dump file set for DATA_PUMP_USER.ESQL_46 is:
  /u03/dbfs/0A6784B0EE797006E0635A10000A776A/data/dpdump/ESQL_46.DMP
Job "DATA_PUMP_USER"."ESQL_46" successfully completed at Mon Nov 20 02:56:55 2023 elapsed 0 00:00:27
DataPump Operation Status 'COMPLETED'
Jobname = ESQL_46
SQL>

インポート
dp import -dumpfile <dumpfile_name>でスキーマをインポートする(結果を省略)。

備考

c) Oracle Data Pump API

開発者向き。DBMS_DATAPUMPパッケージを利用する。
詳細については、ドキュメント Using the Oracle Data Pump API をご参照ください。

1-2. GUI/OCIコンソール

a) SQL Developer (GUI)

SQL Developerは、オラクルが提供する便利なGUIツールで、ざまざまなDBに接続できます。

前提
ADBに接続できる端末に、SQL Developerのインストールが必要です。

インストール手順: (次の記事をご参照)
Windows OS: PowerShellでSQL DeveloperをWindowsに自動インストール
Linux OS: Oracle LinuxでSQL Developerを使用する方法

ステップ
1) DBAパネルを開く
メニュー → View → DBA
2) ADBへの接続を追加
既存の接続があれば、それを選択する。既存の接続がなければ、新規作成する(接続方法の詳細は、上記Windows版の記事を参照)。
3) 接続後、"Data Pump"を右クリックし、Wizardを起動する。
empty
4) Wizardの指示に従って、進んでください(後続のステップを省略)。
empty

b) データベース・アクション (OCIコンソール)

入口
1. ADB起動中の時、ADB詳細画面より、「データベース・アクション」をクリック。
empty
※、プライベートADBの場合、同プライベート・サブネットの端末より実施してください。

2. ユーザーとパスワードを入力し、ログインする。
empty

3. Administration > "DATA PUMP"をクリック
empty

4. 右上のIMPORTをクリック。
empty
5. 画面の指示に従って、インポート・ジョブを新規作成する。
empty

できること

  • ジョブ監視(Export/Import両方)
  • DUMPファイルのダウンロード
  • インポート・ジョブの作成

できないこと
エクスポート・ジョブの作成

2. エクスポートの出力先

2-1. ローカル・ファイル・システム

デフォルトの出力先は、ADBローカルのファイル・システムとなる。

SQL> select owner, directory_name, directory_path FROM dba_directories where directory_name='DATA_PUMP_DIR';

OWNER      DIRECTORY_NAME       DIRECTORY_PATH
---------- -------------------- ----------------------------------------------------------------------
SYS        DATA_PUMP_DIR        /u03/dbfs/FFA038E37518AFA8E0534310000AC205/data/dpdump

SQL>

ADBローカル・ファイルシステムに直接ログインできないため、DUMPファイルを外部へ取り出したい場合、出力先をオブジェクト・ストレージまたはファイル・ストレージに変更することが可能。

2-2. OCIオブジェクト・ストレージへ

DUMPファイルをオブジェクト・ストレージに格納するのは、一般的なケースとなる。サービスGWを経由する場合、OCI内部通信で済み、インターネットを経由しない。
empty

手順の詳細は、次の記事をご参照ください。
Autonomous DBからOCIオブジェクト・ストレージへデータ・ポンプをエクスポートする手順
この手順は、プライベートADBを例にしたけど、パブリックADBにも適用できます。

2-3. OCIファイル・ストレージへ

ファイル・ストレージも選択肢の一つであるけど、制限事項がある。
サイズの大きいDUMPファイルを転送する場合、性能面がよくて、代わりにストレージ料金がオブジェクト・ストレージより約11倍ほど高くなる。
empty

制限事項
empty
※、この方法はパブリックADBには適用できない

2-4. 出力先の比較

ローカル以外の2つを比較してみましょう。

出力先OCI Object StorageOCI FSS
ADBのアクセス・タイプパブリック or
プライベート・エンドポイント
プライベート・エンドポイントのみ
認証トークン必要不要
関連プロシージャDBMS_CLOUD.CREATE_CREDENTIALDBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM
DBMS_CLOUD.DROP_CREDENTIALDBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM
DBMS_CLOUD.UPDATE_CREDENTIAL-
DBMS_CLOUD.LIST_OBJECTSDBMS_CLOUD.LIST_FILES
価格
(2023年11月)
標準の場合:3.57円 (GB per month)42円 (GB per month)

※、DBMS_CLOUD_ADMINを実行するためには、管理者ユーザーでログインする必要がある。

以上

オフィシャル・ドキュメント
Access Network File System from Autonomous Database
SQlcl リファレンス

タイトルとURLをコピーしました