1

ちょっとした掃除のために、MySQLデータベース(異なるハードウェア)間で25個のテーブルを移動しています。これは完全なデータベースではなく、数百のうち25のテーブルです...これらのテーブルは実際にはそこに属していません。NDAの理由から理由については説明しません。

さて、これは多くのコードとSQ​​Lクエリを壊そうとしています。

これを行うための最良の方法は何ですか?

  1. それらを一度に移動します。

  2. それらを1つずつ移動します

-

それらを一度に移動するのはいいことです。私が見逃したいくつかの停止や壊れたコードかもしれませんが、それらをブロックとして移動する方がはるかに高速で、コードのプッシュに費やす時間が少なくなります。

それらを1つずつ移動することは、大きなものが壊れる可能性が少ないという点で優れていますが、作業のマイクロ管理、冗長な作業、および展開に多くの時間が費やされます。

しばらくの間、2つのデータベース間でテーブルをミラーリングすることは可能ですか?おそらく連合テーブル?

-

その他の情報:25のテーブルがあり、すべてコンテンツによって相互に関連付けられています。

一度に何時間もデータベースをシャットダウンできません。約5分のダウンタイムが許容されます。

-

このすべてのデータを移動し、コード、SQL、および私を良好な状態に保つための最善の方法は何ですか?

テーブルを新しいデータベースに複製する方法として、テーブルを統合できますか?

-ダニエル

4

3 に答える 3

1

一度に1つずつ移動するのが道のようです。そうすれば、大きな難しい問題ではなく、簡単な小さな問題がたくさんあります。このすべてのシャッフルが何も壊さないことを確認するために、多くの自動テストの下でシステムを使用していることを願っています。

もう1つ、データベースのシャットダウンについて話します。開発環境で変更を行い、すべてが機能することが確実な場合にのみ変更をライブで行う場合、本番環境でダウンタイムが必要になるのはなぜですか?最初に開発で行うことなく、本番環境でこれらの変更を行うことを考えていないことを願っています。

于 2010-10-08T19:58:33.610 に答える
1

SQLYog(mysqlフロントエンド)を使用してそれを行うことができます。

多くのオプションは、Powertools->データベース同期ウィザードです。

両方のデータベースをリモートで開くことができる必要があります(ホスト%が存在する必要があります)

于 2010-10-09T06:13:01.380 に答える
0

そこに行って、それをして、そして実際に今同じようなプロジェクトの真っ最中です。私たちのプロジェクトでは、それらが何であるか、またはすべてがどこにあるかわからないいくつかを継承しましたが、一般的なフローは次のとおりです。

  • 新しいサーバーで、適切なアカウントを設定します
  • アプリケーション構成で、必要に応じてサーバーとユーザー名/パスワードを変更する場所を見つけます
  • 移動中に書き込みが発生しないように、Webアプリケーションをシャットダウンします
  • DBを移動する
  • アプリを再構成します
  • それを元に戻す
  • DB/アプリケーションごとに繰り返します

小さなものの場合、これは数秒しかかかりません。 SQLyogはここで非常に役立ちます。大規模なデータベースがある場合、またはダウンタイムが不要であると判断した場合は、レプリケーションを検討する必要があります。

于 2010-10-08T20:00:51.130 に答える