開啓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文件導入