3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Oracle Cloud] SQLcl のdatapumpを使って Base Database Serviceから Object Storage への エクスポート/インポートしてみた。

Posted at

はじめに

SQLclリリース21.4以降では、PL/SQLパッケージDBMS_DATAPUMPを使用するデータ・ポンプ機能が提供されています。
この機能では、ダンプ・ファイル用にOCI Object Storageを使用することができます。
OCI Base Database ServiceのスキーマをObject Storageへエクスポートし、Object Storageのダンプ・ファイルをインポーとしてみました。

今回はDBシステム・バージョン19.17/データベースのバージョン:19.17.0.0.0のBase Database Serviceを使用しました(SQLclは21.4が利用可能)

事前準備

  • SQLcl リリース21.4 の準備
    Base Database 19.17 であれば導入済み
  • oci cli のconfigファイルの準備
    Base Database DBシステム・バージョン19.17 であれば oci cli が導入済みなので、oci setup config で生成可能
  • データ・ポンプを使用するデータベース・ユーザの準備
    • DATA_PUMP_DIRディレクトリへのREAD/WRITE権限 grant read, write on directory DATA_PUMP_DIR to <USER>;
  • Object Storage バケットの作成

SQLcl での エクスポート

  • SQLclでデータベースに接続
    • `sql [Username]@[host]:[port]/[Service]'
$ sql scott@10.0.0.2:1521/pdb1.subnet1.vcn1.oraclevcn.com


SQLcl: Release 21.4 Production on Fri Jan 20 10:00:00 2023

Copyright (c) 1982, 2023, Oracle.  All rights reserved.

Password? (**********?) ********
Connected to:
Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production
Version 19.17.0.0.0

SQL>
  • 使用するociプロファイルとObject Storageバケットをセット
    • oci プロファイル:DEFAULT
      • oci profile DEFAULT
    • Object Storageバケットとして以下を利用した場合
      • リージョン:ap-tokyo-1
      • namespace:XXXXXXX
      • バケット名:dumpdir
      • cs https://objectstorage.ap-tokyo-1.oraclecloud.com/n/XXXXXXX/b/dumpdir/o/
SQL> oci profile DEFAULT
Region set to: ap-tokyo-1
OCI Profile set to DEFAULT
Transfer method set to oci
SQL>
SQL> cs https://objectstorage.ap-tokyo-1.oraclecloud.com/n/XXXXXXX/b/dumpdir/o/
DBMS_CLOUD Credential: Not Set
OCI Profile: DEFAULT
Transfer Method: oci
URI as specified: https://objectstorage.us-phoenix-1.oraclecloud.com/n/XXXXXXX/b/dumpdir/o/
SQL>
  • 接続しているスキーマをエクスポート
    • dpdmp.dmpというファイルとして出力
    • dp export -copycloud -dumpfile dpdmp.dmp
SQL> dp export -copycloud -dumpfile dpdmp.dmp

** Datapump Command Start ** at 2023.01.20-10.00.00
Initiating DATA PUMP
DATABASE TIME ZONE: VERSION:39 CON_ID:0
Log Location: DATA_PUMP_DIR:ESQL_01.LOG
FLASHBACK automatically enabled to preserve database integrity.
Starting "SCOTT"."ESQL_01":
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
. . exported "SCOTT"."PRODUCTS"                          6.023 KB       3 rows
ORA-39173: Encrypted data has been stored unencrypted in dump file set.
Master table "SCOTT"."ESQL_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SCOTT.ESQL_84 is:
  /u01/app/oracle/product/19.0.0.0/dbhome_1/rdbms/log/EFEB62421EC8378AE0539800000A8B43/dpdemo.dmp
Job "SCOTT"."ESQL_84" successfully completed at Fri Jan 20 05:53:22 2023 elapsed 0 00:00:38
DataPump Operation Status 'COMPLETED'
Jobname = ESQL_84
File DATA_PUMP_DIR/dpdemo.dmp copied to https://objectstorage.us-sanjose-1.oraclecloud.com/n/orasejapan/b/dumpdir/o/dpdemo.dmp
** Datapump Command End ** at 2023.01.20-10.03.00

SQLcl での インポート

  • SQLclでデータベースに接続
    • `sql [Username]@[host]:[port]/[Service]'
  • 接続しているスキーマにインポート
    • 上述のダンプ・ファイルをインポートする例
    • dp import -copycloud -dumpfile dpdemo.dmp
SQL> dp import -copycloud -dumpfile dpdemo.dmp

** Datapump Command Start ** at 2023.01.20-11.00.00
File https://objectstorage.us-sanjose-1.oraclecloud.com/n/orasejapan/b/dumpdir/o/dpdemo.dmp copied to DATA_PUMP_DIR/dpdemo.dmp
Initiating DATA PUMP
DATABASE TIME ZONE: VERSION:36 CON_ID:0
Log Location: DATA_PUMP_DIR:ISQL_2.LOG
Master table "SCOTT"."ISQL_2" successfully loaded/unloaded
Starting "SCOTT"."ISQL_2":
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "SCOTT"."PRODUCTS"                          6.148 KB       6 rows
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
Job "SCOTT"."ISQL_2" successfully completed at Fri Jan 20 11:01:00 2023 elapsed 0 00:00:12
DataPump Operation Status 'COMPLETED'
Jobname = ISQL_2
** Datapump Command End ** at 2023.01.20-11.02.00

SQL>

補足

エクスポート

  • スキーマ、またはスキーマのリストが指定されていない場合は、現在のスキーマがエクスポートされます。
  • ダンプ・ファイルは、OracleディレクトリまたはObject Storageに格納できます。
  • -copycloudオプションを使用して、エクスポートの最後の手順として、Object Storageにダンプ・ファイルをコピーできます。

インポート

  • スキーマ、またはスキーマのリストが指定されていない場合は、ダンプ・ファイル内のすべてのオブジェクトがインポートされます(デフォルトではFULLインポート)。
  • OracleディレクトリまたはObject Storageに格納されている、以前にエクスポートされたダンプ・ファイルからインポートします。

おわりに

SQLcl によって設定すくなくObject Storageを使ったエクスポート/インポートできました。

参考情報

3
3
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
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?