Database Support Blog

  • Oracle Cloud
  • Oracle Database
2020.04.24

Autonomous DatabaseにData Pumpでデータ投入する方法【Always FreeでもOK!】


Oracle Cloud上で展開される世界初の自律型データベースであるAutonomous Databaseは、パッチ適用やチューニングなどの従来では人が介在する管理タスクを自動化した、革新的なサービスです。

今回はこのAutonomous Databaseへ、Oracle Databaseではおなじみのデータ移行ユーティリティData Pumpを使用してデータを投入する手順をご紹介します。

Autonomous Databaseは、Oracle OpenWorld 2019 で発表された無期限かつ無償でOracle Cloud Infrastructureを利用可能な「Always Free」でも提供されています。
この記事では、そのAlways Freeで利用可能なサービスのみを使用して検証を行っているので、無料でもお試しいただけます。


データ投入の概要

オンプレミス環境のデータベースからData Pumpを用いてエクスポートしたダンプファイルを、OCI上のオブジェクト・ストレージへ配置し、Autonomous Databaseへインポートする手順を検証しました。

今回の検証にあたり下記の環境設定は完了している状態から開始しています。


前提事項

  • Autonomous Data WarehouseまたはAutonomous Transaction Prcessingが構築済み
  • オブジェクト・ストレージが作成済み
  • クライアント端末にOracle Client 18.3がインストール済み
  • 構築済みのAutonomous DatabaseからWalletをダウンロードしクライアント端末へ配置済み
  • Oracle Clientのtnsnames.oraやsqlnet.oraにSSL接続の設定済み
  • オンプレミス環境のデータベースからデータをエクスポート済み

データ投入手順

1. ダンプファイルをオブジェクト・ストレージへアップロード

オンプレミス環境のデータベースからエクスポートしたダンプファイルを、オブジェクト・ストレージへアップロードします。

OCIコンソールの左上のハンバーガーメニューから「オブジェクト・ストレージ」を選択します。

オブジェクト・ストレージの一覧から、ダンプファイルをアップロードする対象のオブジェクト・ストレージを選択します。

「バケットの詳細」画面から「オブジェクトのアップロード」を選択すると、「オブジェクトのアップロード」画面が表示されます。

ファイルをドロップするかファイルを選択しアップロードします。
「バケットの詳細」画面上でオブジェクトの一覧に表示されたら、ファイルのアップロード完了です。


2. OCIユーザーの認証トークンを作成する

後続の手順でオブジェクト・ストレージへの資格証明を作成するにあたり、OCIユーザーに紐づく認証トークンが必要です。

※以下の手順は個人アカウントでの場合です。企業アカウントの場合は操作が異なりますのでマニュアルをご確認ください。

OCIのコンソール画面右上部のプロファイルよりユーザー名を押すと、ユーザーの詳細ページが開きます。

左側の「リソース」メニューから「認証トークン」を選択のうえ、「トークンの生成」で認証トークンを作成します。

作成されたトークン文字列は作成時にのみ表示されるため、必ずこのタイミングで控えるようにご留意ください。


3. オブジェクト・ストレージの資格証明をAutonomous Databaseへ格納

データ投入に際し、Autonomous Databaseからオブジェクト・ストレージ上のデータをロードするために、DBMS_CLOUD.CREATE_CREDENTIALプロシージャ にて資格証明を格納します。

次の実行例では、SQL*PlusでAutonomous Databaseにログインし、OCIユーザー名と手順2で作成した認証トークンを使って実行しました。

  
 $ sqlplus admin/*********@adw_high
  
 SQL*Plus: Release 18.0.0.0.0 - Production on 日 3月 22 07:03:05 2020
 Version 18.3.0.0.0
  
 Copyright (c) 1982, 2018, Oracle.  All rights reserved.
  
 最終正常ログイン時間: 日 3月  22 2020 07:01:39 +09:00
  
  
 Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
 Version 18.4.0.0.0
 に接続されました。
 SQL> begin
   2	DBMS_CLOUD.CREATE_CREDENTIAL(
   3  	credential_name => 'OBJ_STORE_CRED',
   4  	username => '<OCIユーザー名>',
   5  	password => '<手順2. で作成した認証トークン>'
   6	);
   7  end;
   8  /
 
 PL/SQLプロシージャが正常に完了しました。

4. Data Pumpインポートの実行

クライアント端末のData PumpユーティリティからAutonomous Databaseへ対象データを投入します。

impdpコマンドで、dumpfile = “ダンプファイルのURL”で対象データを指定しますが、ダンプファイルのURLはOCIのコンソール画面から、オブジェクト・ストレージの「オブジェクトの詳細」で確認することが可能です。

作成した資格証明とダンプファイルのURLを指定して、SCOTTスキーマをインポートします。

 
 $ impdp admin/*********@adw_high credential=OBJ_STORE_CRED schemas=SCOTT \
 > dumpfile="https://objectstorage.ap-tokyo-1.oraclecloud.com/n/*********/b/bucket-Nakagaki/o/full_data.dmp"
  
 Import: Release 18.0.0.0.0 - Production on 月 3月 23 00:28:48 2020
 Version 18.3.0.0.0
  
 Copyright (c) 1982, 2018, Oracle and/or its affiliates.  All rights reserved.
  
 接続先: Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
 マスター表"ADMIN"."SYS_IMPORT_SCHEMA_01"は正常にロード/アンロードされました
 "ADMIN"."SYS_IMPORT_SCHEMA_01"を起動しています: admin/********@adw_high credential=OBJ_STORE_CRED schemas=SCOTT dumpfile=https://objectstorage.ap-tokyo-1.oraclecloud.com/n/*********/b/bucket-Nakagaki/o/full_data.dmp
 オブジェクト型DATABASE_EXPORT/SCHEMA/USERの処理中です
 オブジェクト型DATABASE_EXPORT/SCHEMA/GRANT/SYSTEM_GRANTの処理中です
 オブジェクト型DATABASE_EXPORT/SCHEMA/ROLE_GRANTの処理中です
 オブジェクト型DATABASE_EXPORT/SCHEMA/DEFAULT_ROLEの処理中です
 オブジェクト型DATABASE_EXPORT/SCHEMA/PROCACT_SCHEMAの処理中です
 オブジェクト型DATABASE_EXPORT/SCHEMA/TABLE/TABLEの処理中です
 オブジェクト型DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATAの処理中です
 . . "SCOTT"."EMP"                           	8.695 KB  	12行がインポートされました
 . . "SCOTT"."DEPT"                          	6.023 KB   	4行がインポートされました
 . . "SCOTT"."SALGRADE"                      	5.953 KB   	5行がインポートされました
 . . "SCOTT"."BONUS"                             	0 KB   	0行がインポートされました
 オブジェクト型DATABASE_EXPORT/SCHEMA/TABLE/CONSTRAINT/CONSTRAINTの処理中です
 オブジェクト型DATABASE_EXPORT/SCHEMA/TABLE/INDEX/STATISTICS/INDEX_STATISTICSの処理中です
 オブジェクト型DATABASE_EXPORT/SCHEMA/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です
 オブジェクト型DATABASE_EXPORT/SCHEMA/TABLE/STATISTICS/TABLE_STATISTICSの処理中です
 オブジェクト型DATABASE_EXPORT/STATISTICS/MARKERの処理中です
 ジョブ"ADMIN"."SYS_IMPORT_SCHEMA_01"が日 3月 22 15:29:44 2020 elapsed 0 00:00:54で正常に完了しました
 

問題なくSCOTTスキーマのインポートが完了しました。


Data Pumpを使用したデータ投入における注意点

・Autonomous Databaseのキャラクタセット

Autonomous Databaseのデータベース・キャラクタセットはAL32UTF8です。

マルチバイトのデータを持った表をインポートする場合、列定義以上のデータサイズとなりデータ投入が失敗する可能性があります。

事前に列定義を変更する、またはAutonomous Databaseに列定義を考慮したオブジェクトをあらかじめ作成のうえ、データのみData Pumpで投入するなど対処してください。


・EXCLUDEが推奨されるオブジェクト

Autonomous Databaseでは多くの制限や、ORACLE社の開発思想によりユーザー作成の索引やパーティションを作成しない推奨などがあります。

Autonomous Data Warehouseのドキュメント では、索引、クラスタ、マテリアライズド・ビュー、データベース・リンクなどのEXCLUDEが推奨されています。


・Data Pumpユーティリティのバージョン

今回の検証ではData Pumpバージョン18.3を使用しました。
18.3以降のバージョンでは、オブジェクト・ストレージへのアクセスにあたりCREDENTIALパラメータを指定すればインポートが可能です。

12.2.0.1以前のData PumpにはCREDENTIALパラメータは存在しないため、Autonomous Databaseのデータベース・プロパティDEFAULT_CREDENTIALを設定する必要があります。
詳細はAutonomous Data Warehouseのドキュメントをご参照ください。

 Oracle Cloud
 Oracle Autonomous Data Warehouseの使用
 Oracle Data Pump (バージョン12.2.0.1および以前)を使用したデータのインポート


・その他

Autonomous Databaseを使用するにあたり、通常のデータベースとは異なる動作が多くあるため、下記のドキュメントやFAQをご参考にまず触ってみることをお勧めします。

 Oracle Cloud
 Oracle Autonomous Data Warehouseの使用
 Autonomous Data Warehouse上のOracle Data Pumpを使用したデータのインポート
 B 経験豊富なOracle DatabaseユーザーのためのAutonomous Data Warehouse

 日本オラクル | Integrated Cloud Applications and Platform Services
 Oracle Autonomous DatabaseのFAQ


まとめ

クラウドプラットフォームへのデータ投入と聞くとイメージがわかず、ハードルが高いと感じてしまう方もいるのではないでしょうか。多くの方にまず触ってみていただくために、本記事は全てAlways Freeのサービスでの検証に臨みました。

Autonomous Databaseは、長年ORACLE社が開発投資してきたOracle Database、Oracle Exadata Database Machine、そしてOracle Cloudの技術が集結したベストプラクティスと呼べるソリューションです。これまでの人的な管理タスクが自動化され、ユーザーはデータを「利用する」ことに注力することが可能となります。

Always FreeのAutonomous Databaseのリソースは1OCPU、ストレージは20GBと小規模ではありますが、Oracle Cloud活用の入り口としてぜひ試使用してみてはいかがでしょうか。

今後「オンプレミスで稼働するデータベースからPaaSへの移行を検討している」、「アプリケーション開発にあたり実際にAutonomous Databaseにデータを持たせて検証したい」、というようなご要望をお持ちのお客様のご参考となれば幸いです。

なお、本記事の情報は、2020年4月現在のものです。
Oracle Cloudは頻繁にアップデートされているため、本番環境でご利用を検討される際はぜひアシストへご相談ください。


なかがき けいすけ プロフィール画像

アシスト北海道

2016年アシスト北海道へ入社後、Oracle Databaseのサポート業務に従事。入社2年目より夜間休日帯など営業時間外の緊急対応を主に担当。現在は通常時間帯のサポート業務を担当しており、第一線で日々奮闘中。...show more


■本記事の内容について
 本記事に示した定義及び条件は変更される場合があります。あらかじめご了承ください。

■商標に関して
 ・Oracle®、Java、MySQL及びNetSuiteは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。
 ・Amazon Web Services、AWS、Powered by AWS ロゴ、[およびかかる資料で使用されるその他の AWS 商標] は、Amazon.com, Inc. またはその関連会社の商標です。
  文中の社名、商品名等は各社の商標または登録商標である場合があります。

関連している記事

  • Oracle Database
2024.04.08

【Oracle Database】FAQで安定運用に貢献!サポートセンターのナレッジ公開の取り組み

アシストオラクルサポートセンターが公開しているFAQは、仕様に関するQAやエラー発生時の対処方法などはもちろん、不具合情報や障害発生時の情報取得方法といった安定運用に役立つ内容も扱っています。そのFAQをどのように作成しているのか、サポートセンターの取り組みをご紹介します。

  • Oracle Cloud
  • Oracle Database
2024.02.02

OCIにおけるOracle Database 11g R2、12g R1、12g R2の新規プロビジョニング終了とその影響

Oracle Databaseのバージョン11g R2、12g.R1、12g.R2は既にすべてのメーカーサポートが終了しています。OCIのBase Database Serviceでも2024年1月中旬ころから11g R2、12g R1、12g R2での新規プロビジョニングができなくなりました。

  • Oracle Cloud
2024.01.19

Oracle Cloudのサービスリミットを理解し、適切に対処する方法

Oracle Cloudでクラウドアカウントごとに設定されているサービスの利用上限値「サービス制限(サービスリミット)」の引上げ方法とその注意点をご紹介します。

ページの先頭へ戻る