Database Support Blog

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

  • 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は頻繁にアップデートされているため、本番環境でご利用を検討される際はぜひアシストへご相談ください。


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

アシスト北海道 技術部 データベース1課

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


■商標に関して
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。

関連している記事

  • Oracle Database
  • Oracle Cloud
  • EDB Postgres
2020.09.17

DB関連セッション視聴ガイド 【アシストテクニカルフォーラム2020】

2020年10月22日(木)に開催されるオンライン技術フォーラム、アシストテクニカルフォーラム2020の全36セッションの中から、データベースに関連するセッションをご案内します。

  • Oracle Database
2020.08.05

DB事例多数!アシストオンラインフォーラム2020 目的別視聴ガイド

アシストオンラインフォーラム2020では140を超えるセッションをご視聴いただけます。数多くのセッションの中から、データベースに関連したセッションの視聴ガイドを情報収集の目的別に紹介します。

  • Oracle Cloud
2020.07.10

Oracle Cloudを使う、その前に!覚えてほしい3つのポイント

Oracle Cloud InfrastructureはOracle社が提供しているクラウドサービスです。アカウントを登録すれば、データベースなどのリソースを簡単に作成・利用することができます。実際にOCIを操作いただく前に覚えていただきたいポイントを3つご紹介します。

ページの先頭へ戻る