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 JDBCドライバをダウンロードして、Amazon Redshiftにアクセスします。最新のJDBCドライバの場所については、Amazon Redshiftのドキュメントを参照してください。詳細は、JDBC接続の構成を参照してください。
ノート
Amazon Redshift JDBCドライバJDBC 4.2互換ドライバを使用します。 -
Amazon Redshift JDBCドライバを、SQL DeveloperがAmazon Redshift JDBCドライバにアクセスできるローカル・ディレクトリに格納します。
-
接続する前に、サード・パーティとしてAmazon Redshift JDBCドライバをSQL Developerに追加します。Within SQL Developer, go to Tools > Preferences > Database > Third Party JDBC Drivers (for Mac, this is Oracle SQL Developer > Preferences Database > Third Party JDBC Drivers).
-
「エントリの追加」をクリックし、ダウンロードしたAmazon Redshift JDBCドライバへのパスを選択します。
-
「OK」をクリックして、ダウンロードしたAmazon Redshift JDBCドライバを追加します。
Amazon Redshiftデータベースへの接続の追加
Amazon Redshiftデータベースに接続します。
-
「接続」パネルで「接続」を右クリックし、「新規接続...」を選択します。
-
「Amazon Redshift」タブを選択し、Amazon Redshiftの接続情報を入力します。
複数のスキーマを移行する予定の場合、Amazon Redshiftシステムのマスター・ユーザー名で接続することをお薦めします。
-
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移行で、「接続」を指定します。
-
接続: Redshiftデータベース接続の名前。
-
使用可能なスキーマ:特定の接続に使用できるスキーマ。
-
Selected Schemas: Click the Add icon to select the schemas you want to migrate from Available Schemas.
-
データを含める: 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バケットの詳細は、「S3バケットの作成および構成」を参照してください。
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移行の確認と終了
「サマリー」に、指定した情報のサマリーが表示されます。
情報を変更するには、必要に応じて[Back]を押します。
即時移行を選択した場合は、移行ウィザードのダイアログは、移行が終了するまで開かれたままです。スクリプトの生成を選択した場合は、移行プロセスによって、指定したローカル・ディレクトリに必要なスクリプトが生成されますが、スクリプトは実行されません。
移行を実行するには、「終了」をクリックします
AWS Redshiftで選択したスキーマ名がすでにAutonomous Databaseに存在する場合、移行プロセスでは、これらの選択したスキーマのデプロイは除外され、次のダイアログが表示されます:
サマリー: 移行アシスタントが作成するもの
-
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のスキーマと同じ名前を持っています。パスワードは、スクリプトで、またはスクリプトの実行後に、指定したユーザーの有効なパスワードに変更する必要があります。スキーマ名を変更する場合、スキーマ名およびその名前に対するすべての参照を変更します。
Oracle Autonomous DatabaseへのAmazon Redshiftデータのロード
adwc_dataload.sqlスクリプトには、アンロードしたAmazon RedshiftデータをS3から直接Autonomous Databaseにロードするために必要なすべてのロード・コマンドが含まれます。
スクリプトは、ADMINなどの特権ユーザーとしてAutonomous Databaseに接続しているときに実行します。
データ・ウェアハウス・オブジェクトの作成時にターゲット・スキーマ名を変更する場合、その変更に応じてこのスクリプトでターゲット・スキーマ名を調整する必要があります。
ジョブ・スケジューラの使用
SQL Developerには、DBMS_SCHEDULER PL/SQLパッケージをOracle Schedulerオブジェクトと連携させるためのグラフィカル・インタフェースがあります。SQL Developerのスケジュール機能を使用するには、『SQL Developerユーザーズ・ガイド』および『Oracle Database管理者ガイド』を参照してください。
接続の「スケジューラ」ノードが、接続ナビゲータおよびDBAナビゲータに表示されます。ADWC 'admin'ユーザーを使用して、データ・ロード・ジョブのステータスをモニターする'admin'が所有するスケジューラ・オブジェクトをナビゲートします。
ADWC 'admin'接続→「スケジューラ」→「ジョブ」に、<schema_name>_<table_name>という名前で、AWS 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 ______________________________________________________________