MySQL的增量備份與恢復

MySQL增量備份與恢復

  • 增量備份:只備份那些在上次完全備份或者增量備份後被修改的文件纔會被備份。

  • 優點:沒有重複數據,備份量不大,時間短。

  • 缺點:需要上一次完全備份及完全備份之後所有的增量備份才能恢復,而且對所有增量備份進行逐個反推恢復,操作較爲繁瑣。

一、增量備份

1、編輯MySQL配置文件,開啓二進制功能

vim /etc/my.cnf

 log-bin=mysql-bing        #添加二進制日誌文件

systemctl restart mysql.service

  • 服務重啓之後會在/use/local/mysql/data目錄下生成一個空的二進制日誌文件;

MySQL的增量備份與恢復

2、創建以基本數據庫

mysql -u root -p #進入MySQL

create database client; #創建一個名爲client的庫

use client; #使用數據庫

create table info (name varchar(10),score decimal(5.2)); #創建表

insert into info (name,score) values ('zhangsan',88); #插入內容

insert into info (name,score) values ('lisi',88);

quit #退出MySQL

3、備份數據庫,並生成新的二進制日誌文件;

mysqldump -u root -p client test > /opt/client.sql

mysqladmin -u root -p flush-logs

  • 數據庫中的內容會生成到第一個二進制日誌文件中,除此之外還會生成一個空的二進制日誌文件;

MySQL的增量備份與恢復

4、在數據庫中添加新的內容,並生成新的二進制日誌文件;

mysql -u root -p

use client

insert into info (name,score) values ('test01',88);

quit #退出MySQL

mysqladmin -u root -p flush-logs

  • 數據庫中新添加的內容會生成到第二個二進制日誌文件,同時生成一個空的二進制日誌文件;

MySQL的增量備份與恢復

二、恢復

1、刪除表,並進行完全備份恢復操作;

mysql -u root -p ;

use client;

drop tables test;

quit;

mysql -u root -p client < /opt/client.sql

2、使用二進制日誌文件進行恢復操作;

mysqlbinlog --no-defaults /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p

MySQL的增量備份與恢復

三、基於時間點與位置的恢復

1、插入兩條數據內容,並刪除一條數據,模擬操作失誤;

mysql -u root -p

use client

insert into info (name,score) values ('test01',88);

delete from test where name='lisi';

insert into info (name,score) values ('test02',88);

quit

2、生成二進制日誌文件,刪除表,並進行完全備份恢復操作;

mysqladmin -u root -p flush-logs

mysql -u root -p ;

use client;

drop tables test;

quit

mysql -u root -p client < /opt/client.sql

MySQL的增量備份與恢復

3、按時間點進行恢復(跳過誤操作時間);

mysqlbinlog --no-defaults --stop-datetime='18-07-06 10:39:23' /usr/local/mysql/data/mysql-bin.000003 | mysql -u root -p

mysqlbinlog --no-defaults--start-datetime='18-07-06 10:39:33' /usr/local/mysql/data/mysql-bin.000003 | mysql -u root -p

MySQL的增量備份與恢復

4、按位置進行恢復(跳過錯誤的位置);

mysqlbinlog --no-defaults --stop-position='1151' /usr/local/mysql/data/mysql-bin.000003 | mysql -u root -p

mysqlbinlog --no-defaults--start-position='1226' /usr/local/mysql/data/mysql-bin.000003 | mysql -u root -p

MySQL的增量備份與恢復

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