LoginSignup
0
0

Autonomous DBをエクスポート・インポートする方法のまとめ

Last updated at Posted at 2023-11-20

初めに
Autonomous Database (ADB)でData Pumpファイルをエクスポート・インポートするのに、いくつかの方法があります。各種の方法をまとめてみたいと思います。

本ブログでは、オフィシャルな製品・サービスのみを含め、サードパーティーの製品については言及しません。

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

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

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

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 <username>/<password>@adw01_high
  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>でスキーマをインポートする(結果を省略)。

備考

SQL Developer (GUI)

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

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

インストール手順: (次の記事をご参照)
Windows OS: SQL Developerで様々なDBに接続する方法
Linux OS: Oracle LinuxでSQL Developerを利用する方法

ステップ

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

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

入口

  1. ADB起動中の時、ADB詳細画面より、「データベース・アクション」をクリック。

    ※、プライベートADBの場合、同プライベート・サブネットの端末より実施してください。

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

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

  4. 右上のIMPORTをクリック。

  5. 画面の指示に従って、インポート・ジョブを新規作成する。
    image.png

できること

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

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

Oracle Data Pump API

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

エクスポートの出力先

ローカル・ファイル・システム

デフォルトの出力先は、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ファイルを外に出したい時、出力先をオブジェクト・ストレージか、ファイル・ストレージに変更するのは可能。

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

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

手順の詳細は、次の記事をご参照ください。
Autonomous DBからOCIオブジェクト・ストレージへデータ・ポンプをエクスポートする手順

※、上記の構成図と手順は、プライベートADBを例にしたけど、この方法はパブリックADBにも適用する。

OCIファイル・ストレージへ

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

制限事項

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

出力先の比較

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

出力先 OCI Object Storage OCI FSS
ADBのアクセス・タイプ パブリック or プライベート・エンドポイント プライベート・エンドポイントのみ
認証トークン 必要 不要
関連プロシージャ DBMS_CLOUD.CREATE_CREDENTIAL DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM
DBMS_CLOUD.DROP_CREDENTIAL DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM
DBMS_CLOUD.UPDATE_CREDENTIAL -
DBMS_CLOUD.LIST_OBJECTS DBMS_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 リファレンス


関連記事
オラクル・クラウドの個人シリーズ・ブログ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0