データベースインスタンスのレプリケーションとは、サーバーに一つか複数のバックアップデータベースを配置し、データの同期を行い、MySQLのデータを複数のシステムに分散させることです。
説明:
- Masterはマスターデータベースのインスタンスであり、Slaveはバックアップデータベースのインスタンスです。
- MySQLの5.6、5.7、8.0バージョンは、非同期、準同期、強力な同期の3種類のレプリケーション方式をサポートしています。5.5バージョンは非同期方式をサポートしています。
アプリケーションはデータ更新(insert、update、delete操作を含む)リクエストを送信した場合、Masterは更新操作を実行してからすぐにアプリケーションに応答し、次にSlaveにデータをレプリケーションします。
データ更新中に、MasterはSlaveの応答を待つ必要がないため、非同期レプリケーションされたデータベースインスタンスは高い性能があり、且つSlaveの利用不能の場合、Masterの外部サービスにを影響しません。ただし、データはリアルタイムにSlaveに同期していなく、MasterはSlaveにレイテンシーがある場合に障害が起こったら、小さい確率ながらデータ不一致が起こる可能性があります。
Tencent CloudのTencentDB for MySQL非同期レプリケーションには1マスター1スレーブのアーキテクチャを採用しています。
アプリケーションはデータ更新(insert、update、delete操作を含む)リクエストを送信した場合、Masterは更新操作を実行してからすぐにSlaveにデータをレプリケーションします。Slaveがデータを受信しrelay logに書き込んだ(実行する必要がない)後にMasterへ成功メッセージを戻します。MasterはSlaveの成功メッセージを受信した後にアプリケーションに応答を戻さなければなりません。
データレプリケーションに異常(Slaveノードが利用不可能になった、或いはデータレプリケーションに使われているネットワークに異常があった)があった場合にのみ、Masterはアプリケーションに対する応答を一時的に停止(MySQLはデフォルトで10秒ぐらい)し、レプリケーション方法を非同期レプリケーションにダウングレードします。データのレプリケーションが正常に復帰した時に、半同期レプリケーションに戻されます。
Tencent CloudのTencentDB for MySQL準同期レプリケーションには1マスター1スレーブのアーキテクチャを採用しています。
アプリケーションはデータ更新(insert、update、delete操作を含む)リクエストを送信した場合、Masterは更新操作を実行してからすぐにSlaveにデータをレプリケーションします。Slaveがデータを受信しrelay logに書き込んだ(実行する必要がない)後にMasterへ成功メッセージを戻します。MasterはSlaveの成功メッセージを受信した後にアプリケーションに応答を戻さなければなりません。
データレプリケーションに異常が発生(Slaveノードが使用不能またはデータレプリケーション用のネットワークでエラー発生)した場合、データの一致性を保障するため、レプリケーション方式はいずれもダウングレードされません。この場合Masterは、異常がなくなるまで、アプリケーションに対するレスポンスを一時的に停止します。
Tencent CloudのTencentDB for MySQLの強力な同期レプリケーションには1マスター2スレーブのアーキテクチャを採用し、そのうちの1台のSlaveが実行に成功しさえすれば応答できます。1台のSlaveが使えないことがMaster上の操作に影響する問題を回避し、強力な同期レプリケーションクラスターの可用性を向上させています。
この記事はお役に立ちましたか?