web-dev-qa-db-ja.com

大規模な(200GB)mysqlデータベースを、可能な限りダウンタイムが少ない新しいホストに移行する

私の質問は、ダウンタイムをできるだけ少なくして大量のMySQLデータを移行することです。

VPC内の1つのRDSインスタンスから新しいAWSアカウントに新しいRDSインスタンスに移動する必要がある3つのMySQLデータベースがあります。

各データベースは約200GBです。

これらのデータベースがサポートする3つのサイトでのダウンタイムを可能な限り最小限にしたいと思います。

  • サイトは非常に読み取りと書き込みが集中しているため、残念ながら、移行中に数時間は読み取り専用モードに入ることができません。
  • これはRDSであるため、mysqlインスタンスにSSH接続してデータファイルをコピーできません。
  • ローカルマシンでデータベース全体に対してmysqldumpを実行するには、約4〜5時間かかります。

これを行うには、どのようなオプションが必要ですか。また、アイデアに対してどのくらいのダウンタイムを見積もることができますか?

3
outrunthewolf

少しのダウンタイムを許容できる場合は、スナップショットを作成し、そのスナップショットを新しいアカウントと共有できます。これはシンプルで安価なアプローチですが、スナップショットを作成し、共有してから復元し、クライアントに新しいインスタンスを指定するのにかかる時間はダウンします。

ダウンタイムがはるかに短いソリューションの場合、RDSを使用している場合は、AWS DMS(データ移行サービス)を利用できます。これは、1回限りのデータ移行の方法として使用できます。または、これを使用して、同じAWSアカウント内、またはクロスアカウント内の1つのVPCから別のVPCにデータを複製できるため、古いデータに書き込まれたデータを複製できます新しいアカウントでRDSを使用するように切り替える準備ができるまで、RDSを新しいアカウントに切り替えます。

AWS DMSに関する適切なドキュメントは、次の場所にあります: https://docs.aws.Amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html

可能であれば、ダウンタイムを最小限に抑えるために、CNAMEを使用して現在のデータベースをセットアップし、クライアントにそのCNAMEを介してRDSをアドレス指定してもらいます。

1
pixiemops