亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL中Binary Log二進制日志文件的基本操作命令小結

2024-07-24 13:08:26
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了MySQL中Binary Log二進制日志文件的基本操作小結,包括利用二進制日志恢復數據的方法,需要的朋友可以參考下
 

MySQL Binary Log也就是常說的bin-log, ,是mysql執行改動產生的二進制日志文件,其主要作用有兩個: 
* 數據回復 
* 主從數據庫。用于slave端執行增刪改,保持與master同步。

1.開啟binary log功能

     需要修改mysql的配置文件,本篇的實驗環境是win7,配置文件為mysql安裝目錄/MySQL Server 5.1下的my.ini,添加一句log_bin = mysql_bin即可 

  eg:   [mysqld]     ......     log_bin = mysql_bin     ......   log_bin是生成的bin-log的文件名,后綴則是6位數字的編碼,從000001開始,按照上面的配置,生成的文件則為:     mysql_bin.000001     mysql_bin.000002     ...... 

  
    配置保存以后重啟mysql的服務器,用show variables like  '%bin%'查看bin-log是否開啟,如圖:  

MySQL中Binary Log二進制日志文件的基本操作命令小結

2.查看產生的binary log

   bin-log因為是二進制文件,不能通過記事本等編輯器直接打開查看,mysql提供兩種方式查看方式,在介紹之前,我們先對數據庫進行一下增刪改的操作,否則log里邊數據有點空。 

 create table bin( id int(10) primary key auto_increment,name varchar(255));

(測試前我已經建表) 

 insert into bin(name) values ('orange'); 

     1.在客戶端中使用  show binlog events in 'mysql_bin.000001'  語句進行查看,為了排序美觀,可以在結尾加/G使結果橫變縱,此時結尾無需加;語句結束符。 
      eg: 

mysql> show binlog events in 'mysql_bin.000001'/G ...............省略............... *************************** 3. row ***************************  Log_name: mysql_bin.000001   Pos: 174 Event_type: Intvar  Server_id: 1 End_log_pos: 202   Info: INSERT_ID=2 *************************** 4. row ***************************  Log_name: mysql_bin.000001   Pos: 202 Event_type: Query  Server_id: 1 End_log_pos: 304   Info: use `test`; insert into bin(name) values ('orange') *************************** 5. row *************************** ...............省略............... 
  • Log_name:此條log存在那個文件中,從上面可以看出這2條log皆存在與mysql_bin.000001文件中。
  • Pos:log在bin-log中的開始位置
  • Event_type:log的類型信息
  • Server_id:可以查看配置中的server_id,表示log是那個服務器產生
  • End_log_pos:log在bin-log中的結束位置
  • Info:log的一些備注信息,可以直觀的看出進行了什么操作

2.用mysql自帶的工具mysqlbinlog,這是我們就需要知道bin-log存在硬盤的什么位置,win7默認存在C:/ProgramData/MySQL/MySQL Server 5.1/data文件夾下面,如果沒有此文件夾,那我們可以通過配置文件中的  datadir="C:/ProgramData/MySQL/MySQL Server 5.1/Data/" 定位,如果還沒有,那我就會說“各個系統的搜索功能都做的不錯!”。這種查看方式就沒那個美觀了,如下

C:/ProgramData/MySQL/MySQL Server 5.1/data>mysqlbinlog mysql_bin.000001 /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; # at 4 #121015 16:35:56 server id 1 end_log_pos 106 Start: binlog v 4, server v 5.1.51-community-log created 121015 16:35:56 at startup ROLLBACK/*!*/; BINLOG ' 7Mp7UA8BAAAAZgAAAGoAAAAAAAQANS4xLjUxLWNvbW11bml0eS1sb2cAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADsyntQEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC '/*!*/; # at 106 #121015 16:36:51 server id 1 end_log_pos 174 Query thread_id=2  exec_time=0  error_code=0 SET TIMESTAMP=1350290211/*!*/; SET @@session.pseudo_thread_id=2/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=1344274432/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!/C utf8 *//*!*/; SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; BEGIN /*!*/; # at 174 #121015 16:36:51 server id 1 end_log_pos 202 Intvar SET INSERT_ID=3/*!*/; # at 202 #121015 16:36:51 server id 1 end_log_pos 309 Query thread_id=2  exec_time=0  error_code=0 use test/*!*/; SET TIMESTAMP=1350290211/*!*/; insert into bin(name) values('xishizhaohua') /*!*/; # at 309 #121015 16:36:51 server id 1 end_log_pos 336 Xid = 28 COMMIT/*!*/; # at 336 #121015 16:37:25 server id 1 end_log_pos 379 Rotate to mysql_bin.000002 pos: 4 DELIMITER ; # End of log file ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; 

雖然排版有點亂,但從圖中我們可以得到更多信息,如時間戳,自增的偏移,是否自動提交事務等信息。如下圖為從中提取的一部分。 

MySQL中Binary Log二進制日志文件的基本操作命令小結

3.利用bin_log恢復數據

    (1).最長用的就是回復指定數據端的數據了,可以直接恢復到數據庫中: 

 mysqlbinlog --start-date="2012-10-15 16:30:00" --stop-date="2012-10-15 17:00:00" mysql_bin.000001 |mysql -uroot -p123456 

      亦可導出為sql文件,再導入至數據庫中: 

  mysqlbinlog --start-date="2012-10-15 16:30:00" --stop-date="2012-10-15 17:00:00" mysql_bin.000001 >d:/1.sql   source d:/1.sql 

     (2).指定開始/結束位置,從上面的查看產生的binary log我們可以知道某個log的開始到結束的位置,我們可以在恢復的過程中指定回復從A位置到B位置的log.需要用下面兩個參數來指定: 

 --start-positon="50" //指定從50位置開始  --stop-postion="100"//指定到100位置結束 

   最后介紹幾個bin_log的操作: 
   (1).產看最后一個bin日志文件是那個,現在位置 

MySQL中Binary Log二進制日志文件的基本操作命令小結

    (2).啟用新的日志文件,一般備份完數據庫后執行 

MySQL中Binary Log二進制日志文件的基本操作命令小結

    (3).清空現有的所用bin-log

MySQL中Binary Log二進制日志文件的基本操作命令小結

4.binary log相關變量和參數

命令行參數

  --log-bin [=file_name]

  設置此參數表示啟用binlog功能,并制定路徑名稱。

  --log-bin-index[=file]

  設置此參數是指定二進制索引文件的路徑與名稱。

  --max_binlog_size

 Binlog最大值,最大和默認值是1GB,該設置并不能嚴格控制Binlog的大小,尤其是Binlog比較靠近最大值而又遇到一個比較大事務時,

為了保證事務的完整性,不可能做切換日志的動作,只能將該事務的所有SQL都記錄進當前日志,直到事務結束。

  --binlog-do-db=db_name

  此參數表示只記錄指定數據庫的二進制日志

  --binlog-ignore-db=db_name

  此參數表示不記錄指定的數據庫的二進制日志

系統變量

  log_bin

  binlog_cache_size

  此參數表示binlog使用的內存大小,可以通過狀態變量binlog_cache_use和binlog_cache_disk_use來幫助測試。

  max_binlog_cache_size

  此參數表示binlog使用的內存最大的尺寸

  binlog_cache_use

  使用二進制日志緩存的事務數量

  binlog_cache_disk_use

  使用二進制日志緩存但超過binlog_cache_size值并使用臨時文件來保存事務中的語句的事務數量。

  binlog_do_db

  binlog_ignore_db

  sync_binlog

  這個參數直接影響mysql的性能和完整性。

  sync_binlog=0:

  當事務提交后,Mysql僅僅是將binlog_cache中的數據寫入binlog文件,但不執行fsync之類的磁盤,同步指令通知文件系統將緩存刷新到磁盤,而讓Filesystem自行決定什么時候來做同步,這個是性能最好的。

  sync_binlog=0,在進行n次事務提交以后,Mysql將執行一次fsync之類的磁盤同步指令,通知文件系統將Binlog文件緩存刷新到磁盤。

  Mysql中默認的設置是sync_binlog=0,即不做任何強制性的磁盤刷新指令,這時性能是最好的,但風險也是最大的。一旦系統Crash,在文件系統緩存中的所有Binlog信息都會丟失。



注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人自拍视频在线观看| 国产亚洲日本欧美韩国| 97视频免费观看| 亚洲日本欧美日韩高观看| 97人人模人人爽人人喊中文字| 欧美激情视频网| 亚洲成色777777女色窝| 精品久久久久久国产| 国产精品一区二区电影| 国产成人涩涩涩视频在线观看| 久久久精品日本| 精品久久久久久久大神国产| 欧美猛交ⅹxxx乱大交视频| 欧洲成人性视频| 欧美日韩精品在线视频| 国产欧美日韩精品丝袜高跟鞋| 日韩欧美精品在线观看| 日韩欧美高清在线视频| 尤物精品国产第一福利三区| 久久久久久久久久久91| 亚洲精品一区av在线播放| 色悠悠久久久久| 性视频1819p久久| 一区二区三区亚洲| 成人国产精品一区| 日本亚洲欧美三级| 最近日韩中文字幕中文| 国产精品成人品| 国产一区二区视频在线观看| 久久久女人电视剧免费播放下载| 亚洲久久久久久久久久| 久久精品国产精品亚洲| 国产免费一区二区三区在线观看| 欧美激情亚洲自拍| 疯狂蹂躏欧美一区二区精品| 亚洲欧洲美洲在线综合| 日本午夜人人精品| 黄色一区二区在线观看| 国产成人精品久久二区二区91| 日韩精品在线私人| 欧美一级片一区| 日韩激情在线视频| 黑人狂躁日本妞一区二区三区| 日韩中文字幕在线精品| 色www亚洲国产张柏芝| 国产精品久久久久久久久久尿| 性欧美亚洲xxxx乳在线观看| 欧美激情网站在线观看| 视频一区视频二区国产精品| 亚洲成人三级在线| 日韩精品免费综合视频在线播放| 亚洲乱码一区av黑人高潮| 国产精品福利无圣光在线一区| 日韩久久精品电影| 国产在线观看一区二区三区| 成人福利网站在线观看11| 欧美性猛交xxxx久久久| 97在线视频精品| 亚洲精品久久久久久久久久久久久| 国模视频一区二区三区| 欧美在线播放视频| 国产这里只有精品| 成人观看高清在线观看免费| 久久精品视频在线| 国产精品亚洲精品| 日韩av一区二区在线| 超碰91人人草人人干| 国产精品视频精品视频| 欧美激情videoshd| 亚洲v日韩v综合v精品v| 国产精品白嫩初高中害羞小美女| 国产噜噜噜噜噜久久久久久久久| 久久久精品在线观看| 国产欧美精品一区二区| 日本精品视频网站| 久久网福利资源网站| 久99九色视频在线观看| 日韩精品在线观| 久久久久亚洲精品| 欧美精品18videosex性欧美| 亚洲精品乱码久久久久久按摩观| 欧美日韩亚洲国产一区| 国产日韩精品电影| 宅男66日本亚洲欧美视频| 国内精品小视频在线观看| 日韩在线观看电影| 亚洲自拍av在线| 日韩中文字幕在线精品| 26uuu国产精品视频| 91在线观看免费观看| 欧美在线观看www| 热门国产精品亚洲第一区在线| 日韩毛片在线看| 97av在线播放| 亚洲图片在区色| 国产成人+综合亚洲+天堂| 国产精品欧美一区二区三区奶水| 国产欧美精品一区二区三区介绍| 欧美成人在线免费视频| 麻豆国产va免费精品高清在线| 精品在线欧美视频| 亚洲天堂一区二区三区| 成人午夜在线影院| 久久99热精品这里久久精品| 538国产精品一区二区在线| 国产一区二区三区久久精品| 国产亚洲精品美女久久久| 国产有码在线一区二区视频| 日韩欧美在线国产| 欧美黄色免费网站| 欧美精品精品精品精品免费| 色悠悠国产精品| 亚洲欧洲日韩国产| 一区二区三区 在线观看视| 久久久久国色av免费观看性色| 日韩一区二区久久久| 久久天堂av综合合色| 欧美最猛性xxxxx(亚洲精品)| 成人写真福利网| 91精品久久久久久久久久| 久久精品国产成人| 欧美日韩精品在线播放| 亚洲精品福利资源站| 日韩欧美国产激情| 性欧美在线看片a免费观看| 北条麻妃在线一区二区| 亚洲国产精品专区久久| 91精品视频专区| 精品国产一区二区在线| 日韩精品视频在线观看网址| 91国产美女在线观看| 欧美黑人一区二区三区| 日韩欧美亚洲一二三区| 久久久久中文字幕2018| 欧美日韩在线视频一区二区| 日韩**中文字幕毛片| 欧美丝袜一区二区三区| 8050国产精品久久久久久| 一区二区三区www| 亚洲日韩欧美视频| 久久电影一区二区| 亚洲欧美一区二区三区久久| 亚洲最大成人网色| 91高清在线免费观看| 日韩网站免费观看| 国模精品一区二区三区色天香| 97精品伊人久久久大香线蕉| 欧美香蕉大胸在线视频观看| 色噜噜狠狠狠综合曰曰曰| 欧美另类老女人| 欧美日本高清一区| 国产日韩欧美在线看| 亚洲色图色老头| 色综合久久精品亚洲国产| 日日摸夜夜添一区| 97**国产露脸精品国产| 9.1国产丝袜在线观看| 91高清视频在线免费观看| 欧美性猛交xxxx免费看漫画| 精品视频www| 这里只有精品丝袜| 国产乱肥老妇国产一区二| 亚洲欧美国产另类| 欧美电影第一页|