MYSQL数据库增量备份与恢复步骤
一、一般恢复
第一步:修改数据库用户密码
mysqladmin -uroot -p ‘’ password ’123.com’
第二步:开启二进制日志功能
vim /etc/my.cnf
log-bin=/usr/local/mysql/mysql-bin
ls -l /usr/local/mysql/mysql-bin.*
第三步:添加数据库、表、并录入信息。
mysql -uroot -p
enter password:123.com加粗样式
mysql> create database t288;
mysql>use t288;
mysql>create table huamingce(id char(10)not null,name char(10),sex char(10),address char(20),tel char(20));
mysql>insert into huamingce values(‘001’,’zhangsan’,‘man’,‘1-1-1’,‘1111’);
mysql>insert into huamingce values(‘002’,’lisi’,‘woman’,‘2-2-2’,‘2222’);
mysql>select * from t288.huamingce;
第三步:进行一次完全备份
mkdir -p /backup/mysql_bak/ (创建备份文件夹
List item
mysql_bak)
mysqldump -uroot -p t288 huamingce > /backup/mysql_bak/t288_huamingce.sql
ls /backup/mysql_bak/
mysqladmin -uroot -p flush_logs (创建新的二进制日志文件)
ls -l /usr/local/mysql/mysql-bin.* (查看新的志文件是否创建成功)
第四步:对huamingce表录入新的数据记录
mysql>insert into huamingce values(‘003’,’wangwu’,‘man’,‘3-3-3’,‘3333’);
mysql>insert into huamingce values(‘004’,’sunliu’,‘woman’,‘4-4-4’,‘4444’);
mysql>update t288.huamingce set 学号=’007’ where name=‘sunliu’;
mysql>select * from t288.huamingce;
mysqladmin -uroot -p flush_logs
ls -l /usr/local/mysql/mysql-bin.* (查看新的志文件是否创建成功)
第五步:将二进制文件拷贝到/backup/mysql_bak/
cp /usr/local/mysql/mysql-bin.000002 /backup/mysql_bak/
ls /backup/mysql_bak/
第六步:模拟误操作删除huamingce表
mysql -uroot -p -e ‘drop table t288.huamingce;’
mysql -uroot -p -e ‘select * from t288.huamingce;’
第七步:先进行完全恢复,再进行增量恢复
mysql -uroot -p t288 < /backup/mysql_bak/t288_huamingce.sql
mysql -uroot -p -e ‘select * from t288.huamingce;’
mysqlbinlog /backup/mysql_bak/ mysql-bin.000002 | mysql -uroot -p
mysql -uroot -p -e ‘select * from t288.huamingce;’
第八步:重启mysqld服务。
syatemctl start mysqld
二、基于位置的恢复
第六步:模拟误操作删除huamingce表
mysql -uroot -p -e ‘drop table t288.huamingce;’
mysql -uroot -p -e ‘select * from t288.huamingce;’
第七步:先进行完全恢复,再进行增量恢复
mysql -uroot -p t288 < /backup/mysql_bak/t288_huamingce.sql
mysql -uroot -p -e ‘select * from t288.huamingce;’
通过查看二进制日志文件确定恢复的位置和时间点。
mysqlbinlog --no-defaults /backup/mysql_bak/ mysql-bin.000002
mysqlbinlog --no-defaults –stop-position=’459’ /backup/mysql_bak/ mysql-bin.000002 | mysql -uroot -p
mysql -uroot -p -e ‘select * from t288.huamingce;’
第八步:重启mysqld服务。
syatemctl start mysqld
三、基于时间点的恢复
第六步:模拟误操作删除huamingce表
mysql -uroot -p -e ‘drop table t288.huamingce;’
mysql -uroot -p -e ‘select * from t288.huamingce;’
第七步:先进行完全恢复,再进行增量恢复
mysql -uroot -p t288 < /backup/mysql_bak/t288_huamingce.sql
mysql -uroot -p -e ‘select * from t288.huamingce;’
通过查看二进制日志文件确定恢复的位置和时间点。
mysqlbinlog --no-defaults /backup/mysql_bak/ mysql-bin.000002
mysqlbinlog --no-defaults –start-datetimes=’2020-04-15 15:30:50’ /backup/mysql_bak/ mysql-bin.000002 | mysql -uroot -p
mysql -uroot -p -e ‘select * from t288.huamingce;’
第八步:重启mysqld服务。