Autonomous DatabaseへのAmazon Redshiftの移行
SQL Developer 18.3以上のバージョンで使用できるSQL Developer Amazon Redshift移行アシスタントには、スキーマ単位でAmazon Redshift環境を簡単に移行できるフレームワークがあります。
この項では、Amazon Redshiftのオンライン移行と、後から実行するスケジュールされた手動移行のためのスクリプト生成について、そのステップおよびワークフローを説明します。
- Autonomous Database Redshift移行の概要
SQL Developerを使用すると、データベース・ファイルをAmazon RedshiftからAutonomous Databaseに移行できます。 - Amazon Redshiftへの接続
SQL Developerを使用して、データベース・スキーマおよび表をAmazon RedshiftのAutonomous Databaseに移行できます。移行用にAmazon Redshiftからメタデータおよびデータを抽出するには、SQL DeveloperでAmazon Redshiftに接続する必要があります。 - Autonomous Databaseへの接続
SQL Developerを使用してAutonomous Databaseへの接続を作成する - クラウド移行ウィザードの起動
SQL Developerの「ツール」メニューからクラウド移行ウィザードを起動します。これにより、Autonomous DatabaseへのAmazon Redshift移行を開始します。 - Amazon Redshift移行の確認および終了
サマリーには、指定した情報のサマリーが表示されます。 - 生成されたAmazon Redshift移行スクリプトの使用
移行スクリプトを生成するように選択した場合、移行ウィザードで指定したローカル・ディレクトリに新しいサブディレクトリが作成されます。これらのスクリプトは、リアルタイムで実行するか、プログラム的な処理に使用できます。 - 移行後のタスクの実行
Redshift環境の移行に成功したら、次の移行後タスクについて検討する必要があります。
Autonomous DatabaseのRedshift移行の概要
SQL Developerを使用して、Amazon RedshiftからAutonomous Databaseにデータベース・ファイルを移行できます。
-
取得:ソース・データベースからメタデータ・スキーマおよび表を取得して、移行リポジトリに格納します。
-
変換: Redshiftデータ型がOracleデータ型にマップされます。Redshiftオブジェクト名は、Oracleネーミング規則に基づいてOracle名に変換されます。Redshift関数を使用する列のデフォルトは、Oracleの同等機能で置換されます。
-
生成:変換されたメタデータに基づいてスキーマとDDLを生成します。
-
デプロイ:生成したスキーマとDDLをデプロイします。
-
データのコピー: Redshift表からAmazon Storage S3にデータをアンロードし、次にAmazon Storageから以前にデプロイした(スキーマ内) Autonomous Database表にデータをコピーします。
Amazon Redshiftへの接続
SQL Developerを使用して、Amazon RedshiftからAutonomous Databaseにデータベース・スキーマおよび表を移行できます。移行用にAmazon Redshiftからメタデータおよびデータを抽出するには、SQL DeveloperでAmazon Redshiftに接続する必要があります。
Amazon Redshift JDBCドライバのダウンロードとサード・パーティ・ドライバの追加
-
Amazon RedshiftにアクセスするためにAmazon Redshift JDBCドライバをダウンロードします。最新のJDBCドライバの場所については、Amazon Redshiftのドキュメントを参照してください。詳細は、「Configure a JDBC Connection」を参照してください。
ノート
Amazon Redshift JDBCドライバJDBC 4.2互換ドライバを使用します。 -
Amazon Redshift JDBCドライバを、SQL DeveloperがAmazon Redshift JDBCドライバにアクセスできるローカル・ディレクトリに格納します。
-
接続する前に、サード・パーティのAmazon Redshift JDBCドライバをSQL Developerに追加します。SQL Developer内で、「ツール」→「プリファレンス」→「データベース」→「サード・パーティJDBCドライバ」(Macの場合、「Oracle SQL Developer」→プリファレンス・データベース→「サード・パーティJDBCドライバ」)に移動します。
-
「エントリの追加」をクリックし、ダウンロードしたAmazon Redshift JDBCドライバへのパスを選択します。
図dwcs_aws_migration_jdbc_add1.pngの説明 -
「OK」をクリックし、ダウンロードしたAmazon Redshift JDBCドライバを追加します。

図dwcs_aws_migration_jdbc_add2.pngの説明
Amazon Redshiftデータベースに対する接続の追加
Amazon Redshiftデータベースに接続します。
-
「接続」パネルで「接続」を右クリックし、「新規接続...」を選択します。
-
「Amazon Redshift」タブを選択して、Amazon Redshiftの接続情報を入力します。
複数のスキーマを移行する予定の場合、Amazon Redshiftシステムのマスター・ユーザー名で接続することをお薦めします。
図adw_migrate_aws_connect1.pngの説明
-
JDBC接続の構成およびAmazon Redshift JDBC URLの取得の詳細は、「AWS: Configure a JDBC Connection」を参照してください。
-
接続のセキュリティ・オプション構成の詳細は(「Amazon [500150] connection error」の場合)、「AWS: Configure Security options for Connection ( in case of "Amazon [500150] connection error")」を参照してください。
-
仮想プライベート・クラウド(VPC)内にAmazon Redshift環境をデプロイした場合、インターネット経由でクラスタにアクセスできる必要があります。公開インターネット・アクセスを有効にする方法の詳細は、http://docs.aws.amazon.com/redshift/latest/gsg/rs-gsg-authorize-cluster-access.htmlを参照してください。
-
問合せを長時間実行したときに、データベースへのAmazon Redshiftクライアント接続がハングまたはタイムアウトしたように見える場合、この問題に対処するために実行可能な解決策については、http://docs.aws.amazon.com/redshift/latest/mgmt/connecting-firewall-guidance.htmlを参照してください。
接続をテストしてから保存します。
Amazon認証およびアクセス制御の追加情報
Autonomous Databaseへの接続
SQL Developerを使用して、Autonomous Databaseへの接続を作成します
クラウド移行ウィザードの起動
SQL Developerの「ツール」メニューからクラウド移行ウィザードを起動して、Autonomous DatabaseへのAmazon Redshift移行を開始します。
「クラウド移行」ウィザードは、「ツール」メニューの「移行」から「クラウド移行」をクリックすると起動します。クラウド移行ウィザードによって、Amazon RedshiftデータベースからAutonomous Databaseにスキーマ、オブジェクト(表)およびデータを移行できます。
クラウド移行ウィザードでは、一連のステップを簡単に実行できます。クラウド移行ウィザードのステップは次のとおりです。
-
移行するAmazon Redshiftデータベースのスキーマを指定します。
-
ターゲットのAutonomous Databaseを識別します。
-
メタデータ(DDL)を移行するか、データを移行するか(あるいはその両方を行うか)を定義します。
-
システムをオンラインで移行するか、スクリプトを生成するか(あるいはその両方を行うか)を選択します。
Amazon Redshiftデータベースの指定
移行するAmazon Redshiftデータベースのスキーマを指定します。スキーマ内のすべてのオブジェクト(主に表)が移行されます。Autonomous Databaseへの移行は、スキーマ単位で行われます。スキーマ名を移行の一環として変更することはできません。
-
AWS Redshift移行で、「接続」を指定します。
図adw_migrate_redshift_step1of3.pngの説明
-
接続: Redshiftデータベース接続の名前。
-
使用可能なスキーマ:特定の接続に使用できるスキーマ。
-
選択したスキーマ:「追加」アイコンをクリックして、「使用可能なスキーマ」から移行するスキーマを選択します。
-
データを含める:「DDLとDATA」により、選択したスキーマとデータが移行されます。
データを移行する場合は、AWSアクセス・キー、AWS秘密アクセス・キー、およびRedshiftデータをアンロードおよびステージングする既存のS3バケットURIを指定する必要があります。セキュリティ資格証明では、S3にデータを格納するために特定の権限が必要です。移行用に、新しい個別のアクセス・キーを作成することをお薦めします。同じアクセス・キーが後で使用されて、セキュアなRESTリクエストによってAutonomous Databaseにデータをロードします。
-
AWSアクセス・キー:アクセス・キーの詳細は、「AWS Identity and Access Management」を参照してください。
-
AWSシークレット・アクセス: アクセス・キーの詳細は、「AWS Identity and Access Management」を参照してください。
-
S3バケットURI:一般的なS3 ServiceExceptionエラーの詳細は、「S3ServiceExceptionエラー」を参照してください。
S3バケットの詳細は、「Creating and Configuring an S3 Bucket」を参照してください。
Amazon S3バケットのURI形式
Amazon S3に存在するソース・ファイルについて、ファイルにアクセスするためのURI形式の説明は、「Accessing a Bucket」を参照してください。たとえば、次の例では、us-west-2リージョンのadwcバケットの'folder_name'というファイル・フォルダを参照しています。
https://s3-us-west-2.amazonaws.com/adwc/folder_name
S3バケット構成の例1
次のS3バケットのURIを指定した場合:
https://s3-us-west-2.amazonaws.com/my_bucket
ウィザードによってmy_bucket
を含むパス全体が検証されます。テスト・ファイルの書込みが試行され、アクセスできない場合はプロンプトが表示されます。my_bucket
が存在しない場合、次のエラーがレポートされます。
Validation Failed
次に、コード生成によってDBMS_CLOUD.COPY_DATA
ファンクション用に次のパスが作成されます。
file_uri_list => "https://s3-us-west-2.amazonaws.com/my_bucket/oracle_schema_name/oracle_table_name/*.gz"
移行アシスタントによって、バケットmy_bucket内にoracle_schema_name/oracle_table_nameというフォルダが作成されます。
S3バケットの例2
次のS3バケットのURIを指定した場合:
https://s3-us-west-2.amazonaws.com/my_bucket/another_folder
ウィザードによってmy_bucket
を含むパス全体が検証されます。テスト・ファイルの書込みが試行され、アクセスできない場合はプロンプトが表示されます。my_bucket
が存在しない場合、次のエラーがレポートされます。
Validation Failed
この場合、another_folder
は存在する必要はありません。移行によって、my_bucket
内にanother_folder
バケットが作成されます。
次に、コード生成によってDBMS_CLOUD.COPY_DATA
ファンクション用に次のパスが作成されます。
file_uri_list => ‘https://s3-us-west-2.amazonaws.com/my_bucket/another_folder/oracle_schema_name/oracle_table_name/*.gz
ステップ2/3: Autonomous Data Warehouse Cloud
最初にターゲットのAutonomous Databaseへの接続を作成します。「Autonomous Databaseへの接続」を参照してください。この接続のためのユーザーは、管理権限を持っている必要があります(この接続は、スキーマとオブジェクトを作成するために移行全体を通じて使用されるため)。
ADMINユーザーまたは管理ロールのあるユーザーを使用します。
Amazon Redshift移行アシスタントにより、オンラインですぐに移行を実行するか、移行に必要なすべてのスクリプトを生成するか、またはその両方を行うことができます。ローカル・ディレクトリにスクリプトを格納する場合、そのローカル・ディレクトリを指定する必要があります(ユーザーは、このディレクトリに書込み可能である必要があります)。
-
接続:この接続は、Autonomous Data Warehouse Cloud接続の名前。必要に応じて、Autonomous Databaseの接続を作成します。この接続は移行中、スキーマおよびオブジェクトの作成に使用されるため、ユーザーは管理権限を持っている必要があります。
-
移行リポジトリ・パスワード:スキーマ移行の一環としてAutonomous Databaseにインストールされる移行リポジトリのパスワード。あらかじめ入力されたパスワードを使用するか、新しいパスワードを入力します。
-
移行成功時にリポジトリを削除:このオプションは、移行の完了後にリポジトリを削除する場合に選択します。移行後にリポジトリは不要です。
-
今すぐ移行:オンライン移行をすぐに実行するには、このオプションを選択します。
ノート
-
ステップ1の「データを含める」と「今すぐ移行」を両方とも選択しない場合、手動移行のために必要なすべてのSQLスクリプトの生成のみを選択しています。
-
ステップ1の「データを含める」を選択せず、「今すぐ移行」を選択した場合、選択したすべてのスキーマとその表がAutonomous Databaseにデプロイされますが、データは表にロードされません。
-
ステップ1の「データを含める」と「今すぐ移行」を両方とも選択した場合、選択したすべてのスキーマとその表がAutonomous Databaseにデプロイされ、データが表にロードされます。
-
-
ディレクトリ:移行に必要な生成済みスクリプトを格納するためのディレクトリを指定します。これにより、スクリプトはローカル・ディレクトリに保存されます。
拡張設定(オプション)
S3ストレージへのアンロード時またはS3ストレージからAutonomous Databaseへのコピー時にフォーマット・オプションを制御しないかぎり、デフォルト設定で機能する必要があります。フォーマット・オプションの詳細は、「DBMS_CLOUDパッケージのフォーマット・オプション」を参照してください。拡張オプションを使用するには、「拡張設定」をクリックします。
出力ディレクトリ:パスを入力するか、「ディレクトリの選択」をクリックして移行用のディレクトリまたはフォルダを選択します。
スレッドの最大数: Autonomous Databaseの表にデータをロードするときに有効化するパラレル・スレッドの数を入力します。
スケジューラの使用:このオプションを選択して、移行用のスケジューラを有効にします。AWS S3バケットからAutonomous Databaseへのデータ・ロード移行操作のジョブはスケジュールできます。スケジュール済ジョブをすぐに実行するか、将来の日時で実行できます。データ・ロード・スケジュール済ジョブをモニターするには、「接続」ナビゲータで「スケジューラ」ノードを使用します。
移行実行の選択:
-
即時では、Redshift移行がトリガーされるとすぐにスケジューラが実行されます。
-
「1回」では、将来の日付でスケジューラが実行されます。「開始日」および「タイム・ゾーン」を指定します。デフォルトでは、「開始日」には、ローカル・システムの現在の日時が表示されます。開始日を変更するには、カレンダ・アイコンで日付をダブルクリックして選択するか、スピナーで日付を強調表示してからフィールドをクリックして設定します。
Redshiftアンローディング・オプション: 上書きの許可: このオプションを有効にすると、アンロード・プロセスにより、マニフェスト・ファイル(アンロード・プロセスで作成されるデータ・ファイルがリストされる)を含む既存のファイルは上書きされます。デフォルトでは、上書き可能なファイルが存在すると、アンロードは失敗します。
ADWCフォーマット・オプション: 拒否の制限: Autonomous Databaseの表にデータをロードする際に、拒否する行数を入力します。指定した数の行が拒否された後、移行操作を終了します。デフォルトは0です。
Amazon Redshift移行の確認と終了
「サマリー」に、指定した情報のサマリーが表示されます。
即時移行を選択した場合、移行ウィザードのダイアログは、移行が終了するまで開かれたままです。スクリプトの生成を選択した場合、移行プロセスによって、指定したローカル・ディレクトリに必要なスクリプトが生成され、スクリプトは実行されません。
移行を実行するには、「終了」をクリックします
AWS Redshiftで選択したスキーマ名がすでにAutonomous Databaseに存在する場合、移行プロセスでは、それらの選択したスキーマのデプロイが除外され、次のダイアログが表示されます。

図adw_migrate_aws_schema_exists.pngの説明
サマリー: 移行アシスタントが作成するもの
-
Redshiftのschema_nameを使用して新しいAutonomous Databaseユーザーを作成します。
-
スキーマ名に基づいてS3に新しいバケットを作成します。
-
表ごとにS3にサブフォルダを作成します。
生成したAmazon Redshift移行スクリプトの使用
移行スクリプトを生成するように選択した場合、移行ウィザードで指定したローカル・ディレクトリに新しいサブディレクトリが作成されます。これらのスクリプトは、リアルタイムで実行するか、プログラム的な処理に使用できます。
ディレクトリには次のスクリプトが含まれます。
-
redshift_s3unload.sql
-
adwc_ddl.sql
-
adwc_dataload.sql
-
adwc_dataload_scheduler.sql
これらのスクリプトには、Amazon RedshiftシステムをAutonomous Databaseに移行するために必要なすべてのコマンドが含まれています。これらのスクリプトは、リアルタイムで実行するか、プログラム的な処理に使用できます。
S3へのAmazon Redshiftデータのアンロード
正常な移行の最初のステップでは、ステージング領域として機能するAmazon S3にAmazon Redshiftデータをアンロードします。redshift_s3unload.sqlスクリプトには、アクセス資格証明および移行ウィザード・ワークフローで指定したS3バケットを使用して、データをアンローディングするためのすべてのAmazon Redshiftアンローディング・コマンドが含まれています。
Amazon Redshift環境に接続してこのスクリプトを実行します。
データ・ウェアハウス・オブジェクトの作成
Autonomous Databaseを準備するため、データのロード前に空のデータ・ウェアハウス・スキーマを作成します。Amazon Redshift移行アシスタントによって、スクリプトadwc_ddl.sqlですべてのAmazon Redshiftスキーマ構造はOracle構造に変換されます。
スクリプトは、ADMINなどの特権ユーザーとしてAutonomous Databaseに接続しているときに実行する必要があります。
デフォルトでは、移行用に作成されたスキーマは、Amazon Redshiftのスキーマと同じ名前を持ちます。パスワードは、スクリプトで、またはスクリプトの実行後に、指定したユーザーの有効なパスワードに変更する必要があります。スキーマ名を変更する場合、スキーマ名と、その名前に対するすべての参照を変更します。
Amazon RedshiftデータをOracle Autonomous Databaseにロードする
adwc_dataload.sqlスクリプトには、アンロードしたAmazon RedshiftデータをS3から直接Autonomous Databaseにロードするために必要なすべてのロード・コマンドが含まれています。
ADMINなどの特権ユーザーとしてAutonomous Databaseに接続しながらスクリプトを実行します。
データ・ウェアハウス・オブジェクトの作成時にターゲット・スキーマ名を変更する場合、その変更に応じてこのスクリプトでターゲット・スキーマ名を調整する必要があります。
ジョブ・スケジューラの使用
SQL Developerには、Oracle Schedulerオブジェクトと連携動作するDBMS_SCHEDULER PL/SQLパッケージを使用するためのグラフィカル・インタフェースが用意されています。SQL Developerのスケジュール機能を使用するには、『SQL Developerユーザーズ・ガイド』および『Oracle Database管理者ガイド』のSQL Developerを使用したジョブのスケジュールに関する項を参照してください。ジョブ・スケジュールの概念および基本タスクを理解してください。
接続の「スケジューラ」ノードが「接続」ナビゲータおよび「DBA」ナビゲータに表示されます。ADWC 'admin'ユーザーを使用して、データ・ロード・ジョブのステータスをモニターする'admin'が所有するスケジューラ・オブジェクトをナビゲートします。
ADWC 'admin'接続→「スケジューラ」→「ジョブ」に、<schema_name>_<table_name>という名前で、ADWC RedshiftからADWCへのデータ・ロード・ジョブが作成されています。
各データ・ロードの完了ステータスを表示するには、各スケジュール済ジョブを展開し、ステータスを確認してください。
また、データ・ロード操作の詳細は、表の列の情報を格納しているSQLDEV_MIGREPOS
スキーマの表MD_REPORT
を参照してください。
OPERATION_ID, LOGFILE_TABLE, BADFILE_TABLE, SOURCE_SCHEMA_NAME, TARGET_SCHEMA_NAME, SOURCE_TABLE_NAME,
および
TARGET_TABLE_NAME, SOURCE_TABLE_ROWS, TARGET_TABLE_ROWS_LOADED, ERROR MESSAGE,
および
STATUS (COMPLETED or FAILED)
Redshift移行ログとレポート・ファイル
Redshift移行の後、次の3つのファイルが生成されます。
-
MigrationResults.log
: Redshift移行のログ・ファイル -
readme.txt
: 生成されたAmazon Redshift移行スクリプトの使用方法を説明したファイル。 -
redshift_migration_reportxxx.txt
: 移行の情報が含まれます。サンプルは次のとおりです。______________________________________________________________ OPERATION ID : 8566 LOGFILE TABLE : COPY$8566_LOG BADFILE TABLE : COPY$8566_BAD SOURCE SCHEMA : sample TARGET SCHEMA : SAMPLE SOURCE TABLE : listing TARGET TABLE : LISTING SOURCE TABLE ROWS : 192497 TABLE ROWS LOADED : 192497 ERROR MESSAGE : null STATUS : COMPLETED START TIME : 2018-09-27 17:25:18.662075 END TIME : 2018-09-27 17:25:25.012695 ______________________________________________________________