4

私はMYSQLレプリケーションに不慣れです。私はそれを設定する方法を知っていますが(多くの本や他のオンラインリソースのおかげで)、それが実際に低レベルでどのように機能するかを理解する必要があります。

私の質問は、それはリアルタイムで機能しますか?または、マスターとスレーブの変更の間にギャップがありますか。

つまり、シナリオは次のとおりです。レコードがマスターに挿入され、すぐにスレーブに挿入されてから挿入が完了するのか、それともマスターに挿入されて挿入が終了し、後で変更がスレーブに複製されるのか。

私が尋ねている理由は、MSSequelServerに違いがあることを知っているからです。Sequel Serverには、ミラーリングと呼ばれる概念があり、クエリは最初にマスターで実行され、次にスレーブで実行されてから完了します。クエリがマスターで実行され、メッセージがスレーブに公開され(通常は非常に高速ですが、必ずしもリアルタイムである必要はありません)、スレーブ(これらのメッセージをサブスクライブする)が同じクエリを実行するレプリケーションもあります。

4

2 に答える 2

3

MySQLレプリケーションは、デフォルトではリアルタイムでは機能しません。ほぼリアルタイムである可能性がありますが、データがスレーブノードにあることを期待することはできません。これは、レプリケーションがデフォルトで非同期レプリケーションであるためです。Galeraなど、真の同期レプリケーションを目指すいくつかの新しいテクノロジーがあります。MySQLには、semi-syncなどのいくつかの新しいレプリケーションメソッドもあります。mysqlをフォークして最適化しただけでなく、Galeraで作業した人もいます。

https://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html

http://codership.com/content/using-galera-cluster-同期レプリケーションエンジン

http://www.percona.com/software/percona-xtradb-cluster-PerconaによるGaleraの実装

https://mariadb.com/kb/en/what-is-mariadb-galera-cluster/MariaDBの実装Galera。

于 2014-03-27T16:43:25.097 に答える
2

MySQLログに基づいてレプリケーションのメカニズムが異なります。これがMySQLの公式ドキュメントの一部です:

MySQLのサーバー間のレプリケーションは、バイナリロギングメカニズムに基づいています。マスター(データベース変更のソース)として動作するMySQLインスタンスは、更新と変更を「イベント」としてバイナリログに書き込みます。バイナリログの情報は、記録されているデータベースの変更に応じて、さまざまなログ形式で保存されます。スレーブは、マスターからバイナリログを読み取り、スレーブのローカルデータベースのバイナリログでイベントを実行するように構成されています。

于 2012-09-05T07:58:58.283 に答える