AWS Database Migration Service(DMS)は、ソースデータベースが次のようなAWS上のデータベースを移行するためのサービスです。
- AWS上のデータベース(EC2、RDS)
- ローカルデータベース
- OracleCloudPlatformなどの他のクラウドプラットフォーム上のデータベース
ターゲットデータベースは次のとおりです。
- AWS上のデータベース(EC2、RDS、Redshift、DynamoDB)
- ローカルデータベース
- OracleCloudPlatformなどの他のクラウドプラットフォーム上のデータベース
ソースとターゲットの2つのデータベースの少なくとも1つがAWS上にある必要があります。例として、DMSを使用してローカルデータベースをGoogleCloudプラットフォームに移行することはできません。 2つの記事では、DatabaseMigrationServiceを使用したOracleデータベースのMySQLデータベースへの移行について説明しています。以前の記事「AWSでのOracleデータベースのMySQLへの移行、パート1」では、ソースデータベースとターゲットデータベースの設定について説明しました。この続きの記事では、移行を実行します。この記事には次のセクションがあります:
- 移行の作成
- 移行の実行
- 移行されたデータベーススキーマのクエリ
- 移行の再開
- 移行の変更
- 結論
移行の作成
このセクションでは、RDS上のOracleDBインスタンスをRDS上のMySQLDBインスタンスに移行するためのDMS移行を作成します。以前に作成したIAMユーザー(dvohraまたはその他)としてログインします。 DMSを選択します 図1に示すように、AWSコンソールのサービス。
図1: AWSコンソールのDMSサービス
移行の作成をクリックします 、図2に示すように。
図2: 移行の作成
図3に示すように、AWS DatabaseMigrationServiceウィザードが開始されます。[ようこそ]ページで[次へ]をクリックします。
図3: AWSデータベース移行サービスウィザード
次に、レプリケーションインスタンスの作成 図4に示すように、ページが表示されます。
図4: レプリケーションインスタンスを作成する
図5に示すように、レプリケーションインスタンス名を指定するか、デフォルト設定を維持します。インスタンスクラスを選択するか、デフォルト設定を維持します。 VPCを選択します デフォルトのVPCが設定されていないためです。 マルチAZを選択します いいえとして 単一のアベイラビリティーゾーンを使用します。 一般公開を選択します オプション。
図5: レプリケーションインスタンスの構成
詳細strong> 設定、割り当てられたストレージ、複製されたサブネットグループ、およびアベイラビリティーゾーンのデフォルト設定を図6に示します。
図6: 詳細設定
暗号化キーとしてKMSマスターキーを選択します( dms )図7に示すように、前に作成しました。[次へ]をクリックします。
図7: KMSマスターキーの選択
次に、図8に示すように、ソースおよびターゲットのデータベースエンドポイントに接続するようにデータベースエンドポイントを構成します。データベースエンドポイントは、レプリケーションインスタンスの作成中に指定できます。ソースエンドポイントとターゲットエンドポイントは、ソースデータベース接続の詳細とターゲットデータベース接続の詳細というラベルの付いた別々の列で構成されます。
図8: データベースエンドポイント
ソースエンジンを選択します ドロップダウンリストからoracle 、図9に示すように。
図9: ソースエンジン
ターゲットエンジンを選択します ドロップダウンリストからmysqlとして 、図10に示すように。
図10: ターゲットエンジンの選択
サーバー名の場合 ■:portサフィックスを削除して、RDSコンソールにリストされているDBインスタンスのエンドポイントを指定します。 OracleDBのサーバー名はorcl.crbmlbxmp8qi.us-east-1.rds.amazonaws.comです。 MySQLDBのサーバー名はmysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.comです。 。ポートはポートで個別に指定されます フィールドであり、Oracleデータベースの場合は1521、MySQLデータベースの場合は3306です。 SSLモードを選択します なしとして ソースデータベースとターゲットデータベースの両方。 RDSインスタンスの作成時に構成するマスターユーザー名とマスターパスワードとして、ユーザー名とパスワードを指定します。ソースとターゲットの接続の詳細を図11に示します。
図11: ソースとターゲットの接続の詳細
下にスクロールして、接続の詳細設定を確認します。 Oracle Databaseの場合は、図12に示すようにSIDを指定します。MySQLデータベースの場合は、追加の接続属性を設定します。 targetDbType =SPECIFIC_DATABASE 。 KMSマスターキーは、DMSのIAMユーザー(dvohra)として作成された暗号化キー(dms)である必要があります。
図12: 接続の詳細設定
テストの実行をクリックします 各データベースに対して、接続をテストします。図13に示すように、結果は接続テストに成功するはずです。
図13: テストを実行する
次に、移行タスクを構成する必要があります。その前に、図14に示すように、レプリケーションインスタンスを作成する必要があります。
図14: 作成されたレプリケーションインスタンス
図15に示すように、データベースエンドポイントを構成したら、[次へ]をクリックします。
図15: 構成されたデータベースエンドポイント
タスクでは、タスクの作成時のエラーメッセージで示されるように、少なくとも1つの選択ルールを構成する必要があります。そうしないと、タスクが作成されません。 クリックします(図16を参照)。
図16: 少なくとも1つの選択ルールが必要です
選択ルールの追加をクリックします 図16に示すリンク。選択ルールの詳細で、場所を構成します。 選択規則。 スキーマを選択します DVOHRA(スキーマはユーザーごとに異なります)として、テーブル名は次のようになりますを指定します %として 。 アクション 、含めるを選択すると、オブジェクトを含めることも除外することもできます または除外 。除外は、包含後に処理されます。 [含める]として[アクション]を選択します。ソースからターゲットに転送されるレコードの数とタイプを制限するソースフィルターを追加できます。 選択ルールの追加をクリックします 、図17に示すように、続いて[タスクの作成]をクリックします 。
図17: 選択ルールの追加
図18に示すように、新しいタスクが追加されます。最初は、タスクのステータスは「作成中」です。
図18: 新しいタスク
タスクが作成されると、ステータスは準備完了になります 、図19に示すように。
図19: 準備完了としてのタスクステータス
移行の実行
移行を実行するには、[開始/再開]をクリックします 、図20に示すように。
図20: 開始/再開
ステータスは開始になります (図21を参照)。
図21: タスクの開始
開始後、ステータスは実行中になります 。移行が完了すると、ステータスは読み込み完了になります 、図22に示すように。
図22: ロード完了
テーブル統計 図23に示すように、タブには移行されたテーブルが一覧表示されます。
図23: テーブル統計
移行されたデータベーススキーマのクエリ
MySQL CLIで、図24に示すように、showdatabasesコマンドを使用してデータベースを一覧表示します。DVOHRA データベース(スキーマ)が一覧表示されます。
図24: データベースの一覧表示
DVOHRAを選択します use DVOHRAを使用するデータベース 指図。図25に示すように、showtablesコマンドを使用してテーブルを一覧表示します。WEBLOGICLOG およびWLSLOG 以前にOracleデータベースで作成されたテーブルは移行され、一覧表示されます。
図25: テーブルの一覧表示
テーブルも移行されます。 WEBLOGICLOG テーブルにはデータがなく、SQLクエリで返されるデータもありません(図26を参照)。
図26: WEBLOGLOGのSQLクエリはデータをリストしません
移行されたWLSLOGtableには、図27のクエリ結果に示されているように、データが含まれています。
図27: WLSLOGテーブルのデータが移行されます
移行の再開
デフォルトでは、移行はソースデータベースをアクティブにポーリングして、変更がある場合はそれを移行しません。データがテーブルに追加されたり、新しいテーブルが作成されたりするなど、ソースデータベースに変更が加えられた場合は、移行を再実行する必要があります。例として、 weblogiclogにデータを追加します Oracleデータベースのテーブル。
INSERT INTO weblogiclog(time_stamp,category,type,servername, code,msg) VALUES('Apr-8-2014-7:06:16-PM-PDT','Notice', 'WebLogicServer','AdminServer','BEA-000365','Server state changed to STANDBY'); INSERT INTO weblogiclog(time_stamp,category,type,servername, code,msg) VALUES('Apr-8-2014-7:06:17-PM-PDT','Notice', 'WebLogicServer','AdminServer','BEA-000365','Server state changed to STARTING'); INSERT INTO weblogiclog(time_stamp,category,type,servername, code,msg) VALUES('Apr-8-2014-7:06:18-PM-PDT','Notice', 'WebLogicServer','AdminServer','BEA-000365','Server state changed to ADMIN'); INSERT INTO weblogiclog(time_stamp,category,type,servername, code,msg) VALUES('Apr-8-2014-7:06:19-PM-PDT','Notice', 'WebLogicServer','AdminServer','BEA-000365','Server state changed to RESUMING'); INSERT INTO weblogiclog(time_stamp,category,type,servername, code,msg) VALUES('Apr-8-2014-7:06:20-PM-PDT','Notice', 'WebLogicServer','AdminServer','BEA-000361','Started WebLogic AdminServer'); INSERT INTO weblogiclog(time_stamp,category,type,servername, code,msg) VALUES('Apr-8-2014-7:06:21-PM-PDT','Notice', 'WebLogicServer','AdminServer','BEA-000365','Server state changed to RUNNING'); INSERT INTO weblogiclog(time_stamp,category,type,servername, code,msg) VALUES('Apr-8-2014-7:06:22-PM-PDT','Notice', 'WebLogicServer','AdminServer','BEA-000360','Server started in RUNNING mode');
MySQLに追加されたデータを移行するには、開始/再開をクリックします 、図28に示すように。
図28: 移行の再開
タスクの開始 ダイアログには、2つのオプションがあります:開始 および再起動 、図29に示すように。開始 オプションは、新しいテーブル(フルロード)と、タスクの前回の実行で不完全だったテーブル(部分ロード)のみをロードします。
図29: タスクの開始
WEBLOGICLOG テーブルはすでに移行されており(フルロードが完了しています)、新しいデータを移行する必要があります。再起動 図30に示すように、オプションを選択する必要があります。
図30: 移行の再開
タスクのステータスは再び開始になります 続いて実行中 (図31を参照)。
図31: タスクステータス実行中
タスクの実行が完了すると、ステータスは読み込み完了になります 、図32に示すように。
図32: ロードが完了しました
WEBLOGICLOGをクエリします 図33に示すように、MySQLCLIのデータと移行されたデータが一覧表示されます。
図33: タスクの再開時にデータが移行されました
移行の変更
選択ルールを追加/削除したり、他のタスク設定の1つを変更したりするなど、移行タスクを変更する必要がある場合があります。タスクが実行されておらず、ステータスが「ロード完了」の場合、タスクが変更される可能性があります。 変更をクリックします 図34に示すように、タスクを変更します。
図34: 変更
タスクの変更 ダイアログが開始されます。 移行タイプは異なりますが 図35に示すように、リストされています。現時点では、移行タイプを変更することはできません。デフォルト設定は「既存のデータを移行する」です。
図35: タスクの変更
タスク設定 図36に示すように変更できます。 詳細設定をクリックします 詳細設定を変更します。
図36: タスク設定
詳細設定で、コントロールテーブル 図37に示すように、設定を変更できます。
図37: コントロールテーブルの設定
チューニング設定 図38に示すように、変更できます。
図38: チューニング設定
変換ルールを追加するには、変換ルールの追加をクリックします 、図39に示すように。
図39: 変換ルールの追加
変換ルール 、ターゲットを選択します テーブルとしての変換 、図40に示すように。スキーマ名はを選択します。 DVOHRAとして。 テーブル名は次のようになりますを指定します %として 。 アクションを選択します プレフィックスを追加として 、例として。
図40: 変換ルールの追加
移行された各テーブルに追加するテーブルプレフィックスを指定します(図41を参照)。 変換ルールの追加をクリックします 。
図41: 変換ルールを追加する
変更をクリックします 、図42に示すように。
図42: 変更
タスクの開始 、再起動を選択します タスクの開始をクリックします 、図43に示すように。
図43: タスクを開始
タスクのステータスは変更中になります 、図44に示すように。
図44: 変更
タスクのステータスは、更新ボタンで更新できます。ステータスは実行中になります 、図45に示すように。
図45: タスクの実行
タスクの実行が完了すると、ステータスはロード完了になります。 (図46を参照)。
図46: ロード完了
続いて、MySQLのテーブルを一覧表示します。図47に示すように、プレフィックスが付いた新しいテーブルが一覧表示されます。
図47: プレフィックス付きのテーブル
結論
2つの記事で、AWS DatabaseMigrationServiceを使用してRDS上のOracleデータベースをRDS上のMySQLデータベースに移行する方法について説明しました。