5

amazon-rds データベースで mysql を使用する AWS で Rails アプリをホストしています。データベースに移行したい巨大なテーブルがありますが、何百万もの行があるため、移行には数日かかります。具体的には、を列に移動しVARCHARていますTEXT

ユーザーがダウンタイムを経験することなく、この大規模な本番データベースを移行するにはどうすればよいですか?

私が聞いたアイデアの 1 つは、データベースのコピーをセットアップし、そこで移行を行い、それが完了したらメイン データベースに切り替えるというものです。ただし、移行中に入力されたユーザー データがどのように考慮されるかはわかりません。

更新:これは関連している可能性があります: amazon-rds は、この種のもののために作成されたように見えるリードレプリカとマルチ AZ 配置を提供します。ただし、これを行うのは初めてなので、これであろうと別の方法であろうと、あらゆる方法に関するガイダンスを歓迎します.

4

1 に答える 1

2

使用しているホスティング オプションでこれが可能かどうかはわかりませんが、次の方法で問題に取り組みます。

  1. データを新しいサーバーにコピーします (古いデータベース サーバーにバイナリ ログの位置を記録します)。
  2. 古いサーバーから新しいサーバーへのレプリケーションをオンにします (そして、追いつくのを待ちます)。
  3. 新しいサーバーを指すように Rails アプリケーションを再構成する

「完全なダウンタイム」よりも「書き込みのダウンタイム」の方が許容できる場合は、読み取り専用モードがもう 1 つの選択肢になります (明らかにアプリケーションによって異なります)。

于 2013-08-23T00:45:16.593 に答える