linux開啓MySQL binlog日誌 並通過binlog文件 恢復mysql 數據庫

開啓MySQL binlog日誌

1、登錄MySQL,查看binlog日誌的狀態

 登錄MySQL後,輸入show variables like '%log_bin%';查看到binlog日誌爲OFF關閉狀態;(我的已經開了)

mysql> show variables like '%log_bin%';
+---------------------------------+---------------------------------+
| Variable_name                   | Value                           |
+---------------------------------+---------------------------------+
| log_bin                         | off                             |
| log_bin_basename                |                                 |
| log_bin_index                   |                                 |
| log_bin_trust_function_creators | OFF                             |
| log_bin_use_v1_row_events       | OFF                             |
| sql_log_bin                     | ON                              |
+---------------------------------+---------------------------------+
6 rows in set (0.00 sec)

mysql>

 

2、開啓MySQL binlog日誌

 退出MySQL,使用vi編輯器修改MySQL的my.cnf配置文件

在my.cnf配置文件中添加如下圖的兩句

[root@localhost /]# vim /opt/mysql/my.cnf


#開啓二進制日誌(默認放到data)
log-bin=mysql-bin

3、重啓MySQL

 

查看/var/lib/mysql目錄下的內容

 使用命令:ls /var/mysql/data

auto.cnf  ib_logfile0  localhost.localdomain.err  mysql             mysql-bin.000002  mysql-bin.000004  oper                test
ibdata1   ib_logfile1  localhost.localdomain.pid  mysql-bin.000001  mysql-bin.000003  mysql-bin.index   performance_schema  zabbix

此時再次進入MySQL,查看binlog日誌的狀態。顯示binlog日誌爲ON開啓狀態

mysql> show variables like '%log_bin%';
+---------------------------------+---------------------------------+
| Variable_name                   | Value                           |
+---------------------------------+---------------------------------+
| log_bin                         | ON                              |
| log_bin_basename                | /var/mysql/data/mysql-bin       |
| log_bin_index                   | /var/mysql/data/mysql-bin.index |
| log_bin_trust_function_creators | OFF                             |
| log_bin_use_v1_row_events       | OFF                             |
| sql_log_bin                     | ON                              |
+---------------------------------+---------------------------------+
6 rows in set (0.00 sec)

binlog文件 恢復mysql 數據庫

介紹

mysqlbinlog命令用法:shell> mysqlbinlog [options] log_file ...

1)  mysqlbinlog 選項示例

常見的選項有以下幾個:

--start-datetime

從二進制日誌中讀取指定等於時間戳或者晚於本地計算機的時間。取值如:="1470733768" 或者="2016-08-09  5:09:28"

示例: 

[root@hcloud ~]# mysqlbinlog --start-datetime="2016-08-09 5:05:27" /var/mysql/data/mysql-bin.000001

--stop-datetime

從二進制日誌中讀取指定小於時間戳或者等於本地計算機的時間  取值和上述一樣

--start-position        

從二進制日誌中讀取指定position 事件位置作爲開始。取值:="2698"

示例:

[root@hcloud ~]# mysqlbinlog --start-position="2698" /var/mysql/data/mysql-bin.000001

--stop-position

從二進制日誌中讀取指定position 事件位置作爲事件截至。取值:="2698"

備份

1)  安裝好mysql後,檢查開啓binlog(上面已給出)

2)  檢查下binlog

mysql> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       613 |
| mysql-bin.000002 |       143 |
| mysql-bin.000003 |      5963 |
| mysql-bin.000004 |      2460 |
+------------------+-----------+
4 rows in set (0.00 sec)

3)  先創建一些原始數據。

4)  備份還原 (完整備份以及還原)

先備份

[root@hcloud ~]# mysqldump -uroot -p Test_DB > /data/mysqlbackup/Test_DB_0809-16:50.sql
Enter password:

中間刪數據

恢復

[root@hcloud ~]# mysql -uroot -p Test_DB < /data/mysqlbackup/Test_DB_0809-16\:50.sql

5)  利用binlog模擬還原

刪數據

利用binlog恢復

a.生成sql文件

mysqlbinlog --stop-position=1709 /var/mysql/data/mysql-bin.000004 > /tmp/binlog.sql

b.sql文件導入

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章