1

特にmysqlを使用したデータベースミラーリングについて誰か説明してもらえますか。

いくつか質問があります

  1. Java アプリケーションでそれらのデータベース (マスター データベースとスレーブ データベース) への接続を作成する必要がありますか? そのための接続文字列はありますか、それとも単なるプログラム可能な部分ですか?

  2. すべてのデータベースの移動をマスターとスレーブの両方に有効にするには、すべての SQL トランザクションを複製する必要がありますか?

  3. マスター データベースがダウンしていて、唯一の接続がスレーブの場合、マスター データベースがダウンしている間に変更されたレコードを更新できるようにマスター データベースにパッチを適用するにはどうすればよいですか?

  4. スレーブ データベースがローカル ホスト上にあり、マスターがサーバー マシン上にある場合、または 2 つのサーバー マシンがあり、1 つがマスターでもう 1 つがスレーブであっても問題ありませんか?

  5. そして、マスターが自動的にダウンした場合にスレーブ接続が使用される接続のタイプのJavaアプリケーションを使用して、これら2つのデータベース(スレーブとマスター)に接続するにはどうすればよいですか。

4

1 に答える 1

2

1) Java アプリケーションでこれらのデータベース (マスター データベースとスレーブ データベース) への接続を作成する必要がありますか? そのための接続文字列はありますか、それとも単なるプログラム可能な部分ですか?

はい。通常、データベースへの書き込みが必要な場合にのみ、マスターへの接続を作成します。読み取りジョブの場合、マスターがその負荷を処理する必要がないように、1 つ以上のスレーブへの接続を使用します。これはプログラムによって行われ、このための接続文字列はありません。また、MySQL プロキシを使用してアプリケーションの読み取りと書き込みを透過的に分割するこのリンクを見ることもできます。これは概念実証のみであることに注意してください。

2) すべての SQL トランザクションを複製して、すべてのデータベースの移動をマスターとスレーブの両方に有効にする必要がありますか?

いいえ、mysql レプリケーションがこれを行います。

3) マスター データベースがダウンしていて、唯一の接続がスレーブの場合、マスター データベースがダウンしている間に変更されたレコードを更新できるようにマスター データベースにパッチを適用するにはどうすればよいですか?

短い答えは、あなたができないということです。可用性の高い読み取りが必要な場合は、MySQL Cluster を検討する必要があります。複数マスター構成も同様に機能する場合があります。

4) スレーブ データベースがローカル ホスト上にあり、マスターがサーバー マシン上にある場合、または 2 つのサーバー マシンがあり、1 つがマスターでもう 1 つがスレーブであっても問題ありませんか?

マスター マシンとスレーブ マシンは、異なるサーバー上に配置できますし、配置する必要があります。'localhost' の意味がエンド ユーザー マシンである場合、スレーブをエンド ユーザー マシンに配置することはほとんどありません。

5)そして、マスターが自動的にダウンした場合にスレーブ接続が使用される接続のタイプのJavaアプリケーションを使用して、これら2つのデータベース(スレーブとマスター)に接続する方法.

すべての読み取りがスレーブ (またはスレーブ) からのものである場合、マスターを失っても読み取りは中断されず、書き込みのみが中断されます。単一のスレーブがあり、それがダウンした場合は、必要に応じて読み取りにマスター接続を使用するようにフォールバックできます。

于 2012-04-23T09:45:10.077 に答える