国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Mysql - MySQL中Binary Log二進(jìn)制日志文件的基本操作命令小結(jié)

MySQL中Binary Log二進(jìn)制日志文件的基本操作命令小結(jié)

2020-05-25 15:47OrangeHolic Mysql

這篇文章主要介紹了MySQL中Binary Log二進(jìn)制日志文件的基本操作小結(jié),包括利用二進(jìn)制日志恢復(fù)數(shù)據(jù)的方法,需要的朋友可以參考下

MySQL Binary Log也就是常說的bin-log, ,是mysql執(zhí)行改動(dòng)產(chǎn)生的二進(jìn)制日志文件,其主要作用有兩個(gè):
* 數(shù)據(jù)回復(fù)
* 主從數(shù)據(jù)庫。用于slave端執(zhí)行增刪改,保持與master同步。

1.開啟binary log功能

     需要修改mysql的配置文件,本篇的實(shí)驗(yàn)環(huán)境是win7,配置文件為mysql安裝目錄\MySQL Server 5.1下的my.ini,添加一句log_bin = mysql_bin即可 

?
1
2
3
4
5
6
7
8
9
eg:
[mysqld]
  ......
  log_bin = mysql_bin
  ......
log_bin是生成的bin-log的文件名,后綴則是6位數(shù)字的編碼,從000001開始,按照上面的配置,生成的文件則為:
  mysql_bin.000001
  mysql_bin.000002
  ......

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

MySQL中Binary Log二進(jìn)制日志文件的基本操作命令小結(jié)

2.查看產(chǎn)生的binary log

   bin-log因?yàn)槭嵌M(jìn)制文件,不能通過記事本等編輯器直接打開查看,mysql提供兩種方式查看方式,在介紹之前,我們先對(duì)數(shù)據(jù)庫進(jìn)行一下增刪改的操作,否則log里邊數(shù)據(jù)有點(diǎn)空。 

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

(測(cè)試前我已經(jīng)建表) 

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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存在那個(gè)文件中,從上面可以看出這2條log皆存在與mysql_bin.000001文件中。
  • Pos:log在bin-log中的開始位置
  • Event_type:log的類型信息
  • Server_id:可以查看配置中的server_id,表示log是那個(gè)服務(wù)器產(chǎn)生
  • End_log_pos:log在bin-log中的結(jié)束位置
  • Info:log的一些備注信息,可以直觀的看出進(jìn)行了什么操作

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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*/;

雖然排版有點(diǎn)亂,但從圖中我們可以得到更多信息,如時(shí)間戳,自增的偏移,是否自動(dòng)提交事務(wù)等信息。如下圖為從中提取的一部分。

MySQL中Binary Log二進(jìn)制日志文件的基本操作命令小結(jié)

3.利用bin_log恢復(fù)數(shù)據(jù)

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

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

      亦可導(dǎo)出為sql文件,再導(dǎo)入至數(shù)據(jù)庫中: 

?
1
2
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).指定開始\結(jié)束位置,從上面的查看產(chǎn)生的binary log我們可以知道某個(gè)log的開始到結(jié)束的位置,我們可以在恢復(fù)的過程中指定回復(fù)從A位置到B位置的log.需要用下面兩個(gè)參數(shù)來指定: 

?
1
2
--start-positon="50" //指定從50位置開始
--stop-postion="100"//指定到100位置結(jié)束

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

MySQL中Binary Log二進(jìn)制日志文件的基本操作命令小結(jié)

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

MySQL中Binary Log二進(jìn)制日志文件的基本操作命令小結(jié)

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

MySQL中Binary Log二進(jìn)制日志文件的基本操作命令小結(jié)

4.binary log相關(guān)變量和參數(shù)

命令行參數(shù)

  --log-bin [=file_name]

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

  --log-bin-index[=file]

  設(shè)置此參數(shù)是指定二進(jìn)制索引文件的路徑與名稱。

  --max_binlog_size

 Binlog最大值,最大和默認(rèn)值是1GB,該設(shè)置并不能嚴(yán)格控制Binlog的大小,尤其是Binlog比較靠近最大值而又遇到一個(gè)比較大事務(wù)時(shí),

為了保證事務(wù)的完整性,不可能做切換日志的動(dòng)作,只能將該事務(wù)的所有SQL都記錄進(jìn)當(dāng)前日志,直到事務(wù)結(jié)束。

  --binlog-do-db=db_name

  此參數(shù)表示只記錄指定數(shù)據(jù)庫的二進(jìn)制日志

  --binlog-ignore-db=db_name

  此參數(shù)表示不記錄指定的數(shù)據(jù)庫的二進(jìn)制日志

系統(tǒng)變量

  log_bin

  binlog_cache_size

  此參數(shù)表示binlog使用的內(nèi)存大小,可以通過狀態(tài)變量binlog_cache_use和binlog_cache_disk_use來幫助測(cè)試。

  max_binlog_cache_size

  此參數(shù)表示binlog使用的內(nèi)存最大的尺寸

  binlog_cache_use

  使用二進(jìn)制日志緩存的事務(wù)數(shù)量

  binlog_cache_disk_use

  使用二進(jìn)制日志緩存但超過binlog_cache_size值并使用臨時(shí)文件來保存事務(wù)中的語句的事務(wù)數(shù)量。

  binlog_do_db

  binlog_ignore_db

  sync_binlog

  這個(gè)參數(shù)直接影響mysql的性能和完整性。

  sync_binlog=0:

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

  sync_binlog=0,在進(jìn)行n次事務(wù)提交以后,Mysql將執(zhí)行一次fsync之類的磁盤同步指令,通知文件系統(tǒng)將Binlog文件緩存刷新到磁盤。

  Mysql中默認(rèn)的設(shè)置是sync_binlog=0,即不做任何強(qiáng)制性的磁盤刷新指令,這時(shí)性能是最好的,但風(fēng)險(xiǎn)也是最大的。一旦系統(tǒng)Crash,在文件系統(tǒng)緩存中的所有Binlog信息都會(huì)丟失。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 999国产在线 | 精品一区av| 我不卡一区 | 黄网页在线观看 | 成人影院在线观看 | 在线播放视频一区 | 日本不卡一区二区三区在线观看 | 久久久久久久久久久久一区二区 | 欧美a级成人淫片免费看 | 国产精品区二区三区日本 | 色播视频网站 | 综合久久亚洲 | 综合婷婷| 国产精品福利91 | a级毛片黄 | 国产欧美精品一区二区三区 | 亚洲一区二区三区高清 | 精品国产一区二区三区日日嗨 | 成人毛片在线观看视频 | a在线看| 国产精品成人av | www.涩涩视频 | 成人在线精品 | 日韩色区 | 91精品国产综合久久香蕉922 | 性做久久久| 999一个人免费看ww | 91麻豆蜜桃一区二区三区 | 久久精品二区 | 精品久久久久久久久久久 | 午夜久久久久久久久久一区二区 | 国产精品丝袜视频 | 精品国产乱码久久久久久牛牛 | 亚洲国产精品一区二区三区 | 九色在线观看 | 高清久久 | 精品美女久久久 | 在线观看一区二区视频 | 午夜色电影 | 最近日韩中文字幕 | 国产精品亚洲第一区在线暖暖韩国 |