mysql binlogの概要

2443 ワード

  • なぜbinlog(binlogは何の役に立つのか)
  • を記録するのか
  • は何を記録していますか
  • フォーマット
  • 設定関連
  • とredoの関係
  • なぜbinlogを記録するのか(binlogは何の役に立つのか)
    1.レプリケーション:プライマリ・ライブラリのbinlogはスレーブ・サーバに送信され、そのデータの変化を提供し、これらのイベントをライブラリから実行してプライマリ・スレーブ・データを一致させる.
    For replication, the binary log on a master replication server provides a record of the data changes to be sent to slave servers. The master server sends the events contained in its binary log to its slaves, which execute those events to make the same data changes that were made on the master.
    2.バックアップ・リカバリ:一部のデータ・リカバリにはbinlogが必要で、バックアップ・リカバリ・データを使用した後、binlog内のイベントを再実行します.これらのイベントにより、データベースに更新されたデータがあります.
    Certain data recovery operations require use of the binary log. After a backup has been restored, the events in the binary log that were recorded after the backup was made are re-executed. These events bring databases up to date from the point of the backup.
    参考資料:mysql 5.7マニュアル
    何が記録されているのか
    データベースに変更された文、ddl操作、dml操作、時間情報.(プライマリ・スレーブ環境であり、プライマリ・ライブラリにbinlogが記録されており、フィルタリングされていない場合、テーブルに対する操作ddl文とデータの削除に対する操作は必ずスレーブ・ライブラリに伝達されます.)
    The binary log contains “events” that describe database changes such as table creation operations or changes to table data. It also contains events for statements that potentially could have made changes (for example, a DELETE which matched no rows), unless row-based logging is used. The binary log also contains information about how long each statement took that updated data
    書式設定
    row
    表示
    mysqlbinlog  --base64-output=decode-rows -v /opt/mysql/log/mysql-bin.000017 

    利点:安全で、システムの特殊な関数もコピーすることができて、もっと少ないロックの欠点:binlogは比較的に大きくて、単文の更新は多すぎるbinlogを生む可能性があります
    statemnet
    利点:ログ量が小さく、元のsqlの欠点が保持されます:プライマリ・セカンダリ・レプリケーションが一致しないuuid、loadfile、user()、found rows()...レプリケーションできない可能性があります
    mixedフォーマット
    innodbを使用し、独立性レベルrc or ruを使用する場合はrowフォーマットです.If you use READ COMMITTED, you must use row-based binary logging.
    redoとの関係
    xa事物
  • redo parpared状態
  • binlog sync
  • binlog filename position xidはredoの中に
  • と書いてある.
  • redo commit状態
  • MySQLのCrash SafeとBinlogの関係を参考に
    設定
    5.7マニュアル