mysqlバイナリログ

2541 ワード

1.バイナリ・ログ(Binary Log)
  • は、すべての更新されたデータまたは潜在的に更新されたデータ(例えば、行に一致していないDELETEなど)を含む.
  • は、更新データベース(DML)毎の文の実行時間情報
  • を含む.
  • には、データが変更されていない文は含まれません.このオプションを有効にする必要がある場合は、汎用ログ機能
  • をオンにする必要があります.
  • 主な目的は、バイナリ・ログにバックアップ後のすべての更新
  • が含まれているため、データベースの障害点にできるだけデータベースをリカバリすることです.
  • プライマリ・レプリケーション・サーバに、スレーブ・サーバに送信されるすべての文
  • を記録するために使用される.
  • このオプションを有効にすると、データベースのパフォーマンスは1%低下しますが、データベースの整合性は保証され、重要なデータベースではパフォーマンスと完全性を交換する価値があります.Oracleオープン・アーカイブ・モードと似ているものもあります.

  • 2.バイナリ・ログの起動と設定
    デフォルトは閉じるのでmyを変更できます.iniが開き、[mysqld]で設定を追加します.
    #    ,        ,        /var/lib/mysql       ,mysql-bin      ,
    #      mysql-bin.000001,mysql-bin.000002,mysql-bin.index
    log_bin = mysql-bin
    
    #  5.7      ,    ,             ,    
    server_id = 47
    
    #        ,   0,      
    expire_logs_days = 10
    
    #           
    max_binlog_size = 100M
    
    #       row、statment、mixed
    binlog_format=row  # binlog     
    binlog_rows_query_log_events = 1  #       sql        

    3.起動したかどうかを確認する
    #mysql      ,           log_bin_basename,log_bin_index,log_bin
    show variables like 'log_%';

    4.ファイル数とファイル名の表示
    #mysql      
    
    #     mysql  ,            
    show BINARY logs;
    
    #      
    show master status;
    
    #    ,    
    flush logs;

    6.バイナリ・ログ・ファイルの表示
    #      
    mysqlbinlog /var/lib/mysql/mysql-bin.000001
    
    #       
    mysqlbinlog --base64-output=DECODE-ROWS -v /var/lib/mysql/mysql-bin.000001

    mysqlのコマンドラインログの最も元のinsert sql文を表示
    mysql>  show binlog events in 'mysql-bin.000216';  

    6.バイナリ・ログ・ファイルの削除
    #mysql      
    
    #            
    reset master;
    
    #                       
    purge MASTER logs TO "mysql-bin.000003";
    
    #               
    #  2018.3.22       
    purge MASTER logs before '20180322';

    7.バイナリ・ファイルを使用したデータベースのリカバリ
    #      2018-03-22 17:05:34    
    shell> mysqlbinlog --stop-datetime="2018-03-22 17:05:34" /var/lib/mysql/mysql-bin.000002 | mysql -u root -p
    
    
    --start-datetime                      Xid       
    --stop-datetime        
    
    --start-position              at      
    --stop-position          

    8.バイナリログ機能の一時停止
    #  
    mysql> set sql_log_bin = 0;
    
    #  
    mysql> set sql_log_bin = 1;

    9.binlogリカバリデータのいくつかの状況
    1.データベースの紛失またはdrop
  • リカバリシステム自動バックアップ
  • binlogでシステムバックアップ時間から現在までのデータをリカバリする(drop操作はbinlogがdropレコードを削除する必要がある)
  • 2.誤操作update,delete
  • リカバリシステム自動バックアップ
  • binlogログから誤操作の操作文を削除し、binlogを実行して他のデータ
  • を復元する.