sql >> データベース >  >> RDS >> Mysql

AWSでのOracleデータベースのMySQLへの移行、パート2

    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: レプリケーションインスタンスの構成

    詳細 設定、割り当てられたストレージ、複製されたサブネットグループ、およびアベイラビリティーゾーンのデフォルト設定を図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データベースに移行する方法について説明しました。


    1. MySQLで過去3か月の売上データを取得する方法

    2. 単純な挿入ステートメントを使用して、バイナリファイルデータをバイナリSQLフィールドに挿入するにはどうすればよいですか?

    3. ファイルシステムではなくデータベースにファイルを保存しますか?

    4. SQLServerでのsp_help_scheduleの使用