mysql-二进制日志
生活随笔
收集整理的這篇文章主要介紹了
mysql-二进制日志
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
mysql---二進制日志
記錄了所有對MySQL數據庫的修改事件,包括增刪改查事件和對表結構的修改事件
二進制日志的開啟
#是否啟用了日志 mysql> show variables like 'log_bin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_bin | OFF | +---------------+-------+[mysqld]log-bin [=DIR \ [filename]]log_bin=mysql-bin 名字可以隨便起(mysql-bin)格式
binlog_format={STATEMENT|ROW|MIXED}基于段的日志格式
優點
缺點
操作
mysql> show variables like 'binlog_format';mysql> set session binlog_format=statement;mysql> show binary logs; mysql> flush logs;行日志格式
同一SQL語句修改了10000條數據的情況下
- 基于段的日志格式只會記錄這個SQL語句
- 基于行的日志會有10000條記錄分別記錄每一行的數據修改
優點
誤操作而修改了數據庫中的數據,同時又沒有備份可以恢復時,我們就可以通過分析二進制日志,對日志中記錄的數據修改操作做反向處理的方式來達到恢復數據的目的
缺點
混合日志格式
binlog_format=MIXED特點
- 根據SQL語句由系統決定基于段和基于行的日志格式中進行選擇
- 數據量的大小由所執行的SQL語句決定
二進制日志格式對復制的影響
基于SQL語句(statement)復制(SBR)
優點
缺點
基于行的復制(PBR)
優點
缺點
查看二進制日志
數據庫會話查看
#顯示當前服務器使用的二進制文件及大小 mysql> show binary logs#顯示主服務器使用的二進制文件及大小 mysql> show master logs;#當前使用的二進制文件及所處位置 mysql> show master status#lush logs一般只會滾動中繼日志和二進制日志 mysql> flush logs;#二進制日志的記錄位置,通常為上一個事件執行結束時間的位置 mysql> showmaster status; #...數據庫的增刪改查 #觀察二進制位置的變化 mysql> show master status; #查看所有的二進制信息 mysql> show binlog events\G; #查看指定日志的二進制信息 mysql> show binlog events in 'mysql-bin.000011'; #從指定的事件位置開始 mysql> show binlog events in 'mysql-bin.000011' from 190; #指定偏移量(不是語句,是事件) mysql> showbinlog events in 'mysql-bin.000011' from 190 limit 3;命令行mysqlbinlog
二進制日志刪除
長時間不清理會浪費很多的磁盤空間,但是刪除后可能導致數據庫崩潰無法進行恢復.
若要刪除二進制日志首先將其和數據庫備份一份
#刪除所有的二進制日志(不可效仿) mysql> reset master; #根據文件或時間點來刪除二進制日志 # TO 'log_name' 刪除文件之前的所有文件 mysql> PURGE { BINARY | MASTER } LOGS {TO 'log_name' | BEFORE datetime_expr } #使用時間來刪除二進制日志 mysql> PURGEBINARY LOGS BEFORE '13-10-19 10:26:36';轉載于:https://www.cnblogs.com/sxchengchen/p/7857018.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的mysql-二进制日志的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA 解析xml字符串
- 下一篇: js格式化文件大小, 输出成带单位的字符