キーワード:複製からのmysql-マスター・レプリケーションは、MySQL
[1] MySQLのレプリケーションの種類をサポートしています
binlogの3つのモードに基づいて(詳細は参考:ログモードの3種類のバイナリログ)、Oracleの買収のmysql5.5バージョン
[1.1]声明:ステートメントベースレプリケーション(5.5.6前デフォルト)、同じ文を実行するために、サーバーから、マスターサーバーで実行されるSQL文
[1.2]行:ライブラリから再びライブラリーからではなく、再実行中のSQLコマンドに変更した内容をコピーし、ライン(5.5.7後のデフォルト)をコピーします。MySQL5.0のは、サポートしてきました
[1.3]混合:行ベースのレプリケーション・モード・ラインを使用する(そのような一貫性のないデータにマスタリードからの遅延がある今()ためなど)正確なコピーとすることができない文に基づいて発見された場合、複製の混合型、デフォルトは、コピーする声明を使用することです。
プレゼンテーションの同期モードの4種類の[2]のMySQL
以下の画像はから引用されている「MySQLの素人の言語発達、最適化および保守管理。」
[2.1]非同期レプリケーションを:
ライブラリー、マスター・スレーブからの主なライブラリだけbinlogのダンプデータはまったく同じ、停電、クラッシュやその他のデータは失われます保証するものではありません。(MSSQL性能モードと同じ画像)
[2.2]完全同期レプリケーションを。
プライマリ・データベースのトランザクションがREDOログ・ファイルとバイナリログを書き込まれた後、バイナリログダンプスレッドがバックリレーライブラリからのログファイルへのデータのbinlogスレッドIO、IOスレッド負荷データを抽出します。
オープントランザクションを返すの提出がライブラリーから識別SQLスレッドを確認するためにACK後、メインライブラリが提出されるライブラリーからなど、リレーログデータ操作を適用やり直し。
[2.3]伝統的な準同期レプリケーション。
プライマリ・データベースのトランザクションがREDOログ・ファイルとバイナリログを書き込まれた後、バイナリログダンプスレッドがバックリレーライブラリからのログファイルへのデータのbinlogスレッドIO、IOスレッド負荷データを抽出します。
限りIOスレッドとして- 「リレーログは、それが身元を確認するためにACKを返し、フラッシュディスクのディスクを上陸させました。(高セキュリティモード画像として、ここでは、そのようなSQLスレッドリレーログなどのアプリケーションを再実行する必要があり、MSSQLないでください)
注意:这里的commit主库上是已经在 binlog、redo log 中提交了的,其他session都可以看到。
但需要等待从库返回ACK确认标识才会把事务提交到存储引擎持久化(即 ibdata、ibd等磁盘数据文件)且返回到client一个commit成功的指令。
【2.4】增强半同步复制