レプリケーションに関するよくある質問に回答しています。スレーブはマスターに常時接続されている必要がありますか。レプリケーションを有効にするには、マスターとスレーブのネットワーク接続を有効にする必要がありますか。マスターと比較してスレーブがどれくらい遅れているかを判別するにはどのようにすればよいですか。言い換えると、スレーブによってレプリケートされた最後のステートメントの日付はどのように判別できますか。スレーブが追いつくまで、マスターで更新をブロックするにはどうすればよいですか。二方向レプリケーションを設定する場合に注意する問題はありますか。レプリケーションを使用してシステムのパフォーマンスを改善するにはどうすればよいですか。パフォーマンスがより高いレプリケーションを使用するには、アプリケーションのクライアントコードを準備するときに何を行えばよいですか。レプリケーションによってシステムのパフォーマンスが向上するのは、どのような場合でどの程度向上しますか。冗長性または高可用性を持たせるには、レプリケーションをどのように使用すればよいですか。マスターサーバーがステートメントベースのバイナリロギング形式または行ベースのバイナリロギング形式のどちらを使用しているかを判別するにはどうすればよいですか。行ベースのレプリケーションを使用するようにスレーブに指示するにはどうすればよいですか。ステートメントがスレーブマシンにレプリケートされないようにするにはどうすればよいですか。実行されている場合)。ビットマシンで実行されている場合)。A.13.1.スレーブはマスターに常時接続されている必要がありますか。いいえ、その必要はありません。スレーブは、シャットダウンされるか、数時間または数日間切断されても、再接続してマスターの更新に追いつくことができます。リンクが散発的に短時間接続されるダイヤルアップリンクを使用して、マスターとスレーブの関係を設定できます。これは、特殊な対応が行われていないかぎり、特定の時点でスレーブがマスターと同期されていることは保証されないことを意味します。切断されているスレーブが追いつくことができるようにするには、スレーブにまだレプリケートされていない情報が含まれているマスターからのバイナリログファイルを削除しないでください。非同期レプリケーションは、スレーブが最後にイベントを読み取った位置からバイナリログを継続して読み取ることができる場合にのみ動作できます。A.13.2.レプリケーションを有効にするには、マスターとスレーブのネットワーク接続を有効にする必要がありますか。マスターとスレーブのネットワーク接続を有効にする必要があります。ネットワーク接続を有効にしないと、スレーブはマスターに接続できず、バイナリログを転送できません。オプションが有効にされていないことを確認します。A.13.3.マスターと比較してスレーブがどれくらい遅れているかを判別するにはどのようにすればよいですか。言い換えると、スレーブによってレプリケートされた最後のステートメントの日付はどのように判別できますか。カラムを確認してください。セクション17.1.5.1「レプリケーションステータスの確認」を参照してください。スレッドでマスターから読み取ったイベントを実行するときに、このスレッドは実行時の時間をイベントのタイムスタンプに変更します。正常にレプリケートされます。カラムに表示される秒数は、最後にレプリケートされたイベントのタイムスタンプとスレーブマシンの実際の時間の差異の秒数です。これを使用して、最後にレプリケートされたイベントの日付を判別できます。表示されることがあります。時間前のステートメントを実行しているためです。セクション17.2.1「レプリケーション実装の詳細」を参照してください。A.13.4.スレーブが追いつくまで、マスターで更新をブロックするにはどうすればよいですか。次の手順を使用します。マスターで次のステートメントを実行します。スレーブで次のステートメントを発行します。関数への引数は、前のステップで取得したレプリケーション座標値です。ステートメントは、スレーブが指定されたログファイルおよび位置に達するまで更新をブロックします。その時点で、スレーブがマスターと同期され、ステートメントが戻ります。マスターで次のステートメントを発行して、更新処理がマスターでふたたび開始されるようにします。TABLES;A.13.5.二方向レプリケーションを設定する場合に注意する問題はありますか。更新の原子性を保証するためのマスターおよびスレーブ間のロックプロトコルはサポートされていません。更新と異なる更新になる可能性があります。異なるテーブルとなります。つのサーバーを二方向レプリケーション関係にするべきではないことを意味します。二方向レプリケーションでは、実際には、更新に関してパフォーマンスはそれほど向上しません。各サーバーは、単一のサーバーで更新を行うときと同量の更新を行う必要があります。つのスレーブスレッドに直列化されるため、ロック競合がやや少ないことです。この利点さえも、ネットワーク遅延によって相殺されてしまうことがあります。A.13.6.レプリケーションを使用してシステムのパフォーマンスを改善するにはどうすればよいですか。つのサーバーをマスターとして設定し、すべての書き込みをそれに指示します。予算とラックスペースが許すかぎり多くのスレーブを構成し、マスターと複数のスレーブに読み取りを分散します。オプションを指定してスレーブを起動することもできます。テーブルを使用し、トランザクションのオーバーヘッドを排除して速度を上げます。A.13.7.パフォーマンスがより高いレプリケーションを使用するには、アプリケーションのクライアントコードを準備するときに何を行えばよいですか。スケールアウトソリューションとしてレプリケーションを使用するためのガイドについては、セクション17.3.3「スケールアウトのためにレプリケーションを使用する」を参照してください。レプリケーションによってシステムのパフォーマンスが向上するのは、どのような場合でどの程度向上しますか。レプリケーションは、読み取りが頻繁に行われ、書き込みはそれほどないシステムにもっとも適しています。理論的には、単一のマスターおよび複数のスレーブのセットアップを使用する場合、ネットワーク帯域幅がなくなるか、マスターで更新のロードを処理できないポイントに到達するまでは、スレーブを追加することによってシステムを拡張できます。処理能力の上積みが横ばいになる前のスレーブの数、およびサイトのパフォーマンスを改善できる度合いを判別するには、クエリーパターンを知り、典型的なマスターおよび典型的なスレーブでの読み取りおよび書き込みのスループットの関係をベンチマークすることによって経験的に判別する必要があります。ここでは、架空のシステムのレプリケーションの構成を単純に計算した例を示します。秒当たりの読み取りおよび書き込みの数をそれぞれ示しています。あることが判別されたとします。回の読み取りを実行できます。個のスレーブがあるとします。個のスレーブの書き込みの最大数を示しています。この分析によって、次の結論が導かれます。回の書き込みを処理できます。回の書き込みを実行できます。回の書き込みを実行できます。回の書き込みを実行できます。