簡介
增量備份是指在一次全備份或上一次增量備份后,以后每次的備份只需備份與前一次相比增加或者被修改的文件。這就意味著,第一次增量備份的對象是進行全備后所產生的增加和修改的文件;第二次增量備份的對象是進行第一次增量備份后所產生的增加和修改的文件,如此類推。
目的
解決完全備份中時間長、恢復慢的問題,采取了增量備份
特點
優:無重復數據,備份量不大,時間短
缺:需要上次完全備份及完全備份后的增量備份才能恢復,需對增量備份逐個反復恢復,操作繁瑣
實現方式
通過mysql的二進制日志間接實現增量備份:
二進制日志保存了所有更新或可能更新的數據
二進制日志在mysql啟動時開始記錄,且會重新創建新的日志文件
需定時執行flush logs方法重新創建日志,生成二進制文件序列
實驗環境:
安裝了mysql5.7數據庫的一臺centos7虛擬機
操作過程:
一、增量備份
1、在配置文件中添加二進制日志
vim /etc/my.cnf
[mysqld] #在此模塊下添加
log-bin=mysql-bin #二進制日志
2、重啟服務,并查看二進制日志
systemctl restart mysqld.service
cd /usr/local/mysql/data/
mysqlbinlog --no-defaults mysql-bin.000001

3、在數據庫自由創建數據庫、表,作為實驗模板

4、對school數據庫進行完全備份
mysqldump -uroot -pabc123 school > /opt/school.sql
5、刷新日志,生成新的日志,注意:之前數據庫的操作寫入編號為000001的日志中,新生成的000002的日志為空
mysqladmin -uroot -pabc123 flush-logs #刷新日志
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000001 #查看000001日志
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 #查看000002日志
#--base64-output=decode-rows -v:避免文件中亂碼,前面的查看命令也可以使用


6、新添加mysql數據庫操作,然后刷新日志,進行增量備份
use school;
mysql>indert into info (id,name,score) values (3,'aaa',78);
mysql>delete from info where name='tom'; #誤操作
mysql> insert into info (id,name,score) values (4,'bbb',64);
mysqladmin -uroot -pabc123 flush-logs #刷新日志,生成000003
新聞熱點
疑難解答