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

AWS RDSでのMySQLからPostgreSQLへの移行、パート4

    4つのチュートリアルでは、AWS Database Migration Service(DMS)を使用してMySQLデータベースをPostgreSQLデータベースに移行する方法を検討しています。最初のチュートリアル「AWSRDSでのMySQLからPostgreSQLへの移行、パート1」で、DMS用のIAMユーザーを作成することから始めました。続いて、2番目のチュートリアル「AWSRDSでのMySQLからPostgreSQLへの移行、パート2」で、AWSリレーショナルデータベースサービス(RDS)でのMySQLとPostgreSQLのインスタンスの作成について説明しました。 3番目のチュートリアル「AWSRDSでのMySQLからPostgreSQLへの移行、パート3」では、DMS移行を作成しました。この最後のチュートリアルでは、DMS移行を実行して移行を実行する方法について説明します。

    このチュートリアルには次のセクションがあります:

    • DMS移行タスクの実行
    • 移行されたデータベースの探索
    • CloudWatchログの探索
    • MySQLからDMSを使用したPostgreSQLへの移行の制限
    • 結論

    DMS移行タスクの実行

    タスクが作成された後、ステータス 準備完了になるはずです 、図1に示すように、[開始/再開]をクリックします タスクを開始します。


    図1: 開始/再開

    ステータスは開始中になります 、図2に示すように。


    図2: タスクの開始

    タスクがレプリケーションインスタンスおよびデータベースエンドポイントとの接続を確立して適用されると、ステータスをマッピングするテーブルは実行中になります。 、図3に示すように。


    図3: ステータス実行中

    移行は構成どおりに実行され、移行が正常に完了した後、ステータス 読み込みが完了になります 、図4に示すように。ロードされたテーブル 列は、ロードされたテーブルの数を示します。


    図4: ステータスの読み込みが完了しました

    移行されたテーブルについては、テーブル統計をクリックします 図5に示すように、タブ。スキーマ、テーブル、ステータス、挿入数、削除数、更新数、DDL数、全負荷行数、合計数などのテーブル統計が一覧表示されます。


    図5: テーブル統計

    ソースデータベーステーブルにテーブルが含まれていない場合は、フルロード行 ソーステーブルに行がある場合、図6の一部の行に示されているように、[FullLoadRows]は行数を示します。


    図6: 一部のテーブルのフルロード行は0ですが、他のテーブルの場合、ロードされた行の数

    移行されたデータベースの探索

    MySQLデータベースのスキーマとテーブルをPostgreSQLに移行したら、PostgreSQLCLIでdnを使用してスキーマを一覧表示します。 指図。図7に示すように、移行されたスキーマが一覧表示されます。 public スキーマは移行前にすでに存在していました。


    図7: MySQLからPostgreSQLデータベースに移行されたスキーマ

    DMSの移行により、テーブルの列タイプが自動的に変換されます。セカンダリインデックスはプライマリキーに追加され、テーブルマッピングで自動的に作成されます。

    mysql.user に示されているように、テーブルデータも移行されます 図8の表。


    図8: テーブルデータも移行されます

    あるデータベースタイプから別のデータベースタイプに移行する場合(異種移行)、データ型のマッピングはDMSによって自動的に行われます。移行中に中間DMSデータ型が使用されます。 MySQLデータベースからPostgreSQLに移行する場合、最初にMySQLデータ型がソースデータベースとしてMySQLデータベースの組み込みマッピングを使用してDMSデータ型に移行されます。その後、DMSデータ型はPostgreSQLデータ型にマッピングされ、PostgreSQLの組み込みマッピングをターゲットデータベースとして使用します。 RDS上のMySQLデータベース内のRDS関連のテーブルも、図9に示すテーブル「mysql」。「rds_replication_status」などのPostgreSQLデータベースに移行されます。


    図9: RDS情報テーブルの移行データ

    CloudWatchログの探索

    ロギングが構成されている場合、私たちが行ったように、ログはログから監視される場合があります 図10に示すように、タブをクリックします。タスクリンクをクリックしてCloudWatchログを一覧表示します。


    図10: ログ

    CloudWatchログが一覧表示されます(図11を参照)。


    図11: CloudWatchログ

    図12のCloudWatchログメッセージが示すように、「すべてのテーブルがロードされます。全負荷のみのタスクが停止します。」


    図12: すべてのテーブルが読み込まれます

    sys.sys_config の場合と同様に、転送されたレコードの数も一覧表示されます。 図13の表。


    図13: データベーステーブルのログエントリには、転送されたレコードの数が含まれます

    CloudWatchログを使用して、移行タスクの実行をデバッグできます。 CloudWatchログに正常に移行されなかったテーブルのエラーメッセージが一覧表示されます。

    MySQLからDMSを使用したPostgreSQLへの移行の制限

    DMSを使用したMySQLデータベースからPostgreSQLデータベースへの移行には制限があります。 DMSサービス自体には、AWSユーザーアカウントごとに制限があります。その他のDMSの制限は、データベースに固有である可能性があります。 MySQLのDMSソースデータ型には、UTF-8 4バイト文字セット(utf8mb4)は含まれていません。 DMSでサポートされている文字セットはCodePage1252 Windows Latin 1(ANSI)であり、文字セットに含まれていない文字は、移行中にエラーを生成する可能性があります。 DMSソースとしてのMySQLデータベースにはいくつかの制限があります。 PostgreSQLをDMSターゲットデータベースとして使用する場合の唯一の制限は、JSONデータ型がネイティブCLOBデータ型に変換されることです。

    結論

    4つのチュートリアルでは、RDS上のMySQLデータベースインスタンスをRDS上のPostgresデータベースインスタンスに移行する方法について説明しました。


    1. SQLがwhere句の列エイリアスを認識しない

    2. Windowsコンピュータでmy.cnfが見つかりません

    3. Oracle SQL Developer:失敗-テストに失敗しました:ネットワークアダプタが接続を確立できませんでしたか?

    4. OracleのSYS_GUID()関数