#我的第二十六堂云计算课# #开源数据库MySQL DBA运维实战 第5章 备份(二)#

第5章 备份(二)

一、实战案例1(percona-xtrabackup):
1-1、完全备份流程:
(1)连接数据库,开始备份:innobackupex --user=root --password=‘[email protected]’ /xtrabackup/full
(2)查看备份目录。数据库,配置文件,日志文件:ls /xtrabackup/full/
(3)ls /xtrabackup/full/2020-08-29_14-16-36/
(4)观看二进制日志位置:cat /xtrabackup/full/2020-08-29_14-16-36/xtrabackup_binlog_info
例图:
#我的第二十六堂云计算课# #开源数据库MySQL DBA运维实战 第5章 备份(二)#
1-2、完全恢复流程:
(1)停止数据库:systemctl stop mysqld
(2)清理环境(模拟损坏):
rm -rf /var/lib/mysql/*
rm -rf /var/log/mysqld.log
(3)生成回滚日志:innobackupex --apply-log /xtrabackup/full/2020-08-29_14-16-36/
(4)恢复文件:innobackupex --copy-back /xtrabackup/full/2020-08-29_14-16-36/
(5)登陆验证:
ls /var/lib/mysql
chown -R mysql.mysql /var/lib/mysql
systemctl start mysqld
mysql -uroot -p’[email protected]
例图:
#我的第二十六堂云计算课# #开源数据库MySQL DBA运维实战 第5章 备份(二)#
#我的第二十六堂云计算课# #开源数据库MySQL DBA运维实战 第5章 备份(二)#
#我的第二十六堂云计算课# #开源数据库MySQL DBA运维实战 第5章 备份(二)#
#我的第二十六堂云计算课# #开源数据库MySQL DBA运维实战 第5章 备份(二)#
2-1、增量备份流程:
1、准备工作(使用指定的数据库):
mysql> create database testdb;
mysql> use testdb;
mysql> create table test(id int);
mysql> insert into test values (1);
mysql> select * from test;
例图:
#我的第二十六堂云计算课# #开源数据库MySQL DBA运维实战 第5章 备份(二)#
2、完整备份:周一:
rm -rf /xtrabackup/*
date 09010000 //时间建议靠后设置。
innobackupex --user=root --password=‘[email protected]’ /xtrabackup
ll /xtrabackup/
例图:
#我的第二十六堂云计算课# #开源数据库MySQL DBA运维实战 第5章 备份(二)#
3、增量备份:周二:
date 09020000 //更新时间
mysql -uroot -p’[email protected]’ -e ‘insert into testdb.test values (2)’ //在testdb库的test表中加入2
mysql -uroot -p’[email protected]’ -e ‘select * from testdb.test’ //查看testdb库的test表
innobackupex --user=root --password=‘[email protected]’ --incremental /xtrabackup/ --incremental-basedir=/xtrabackup/2020-09-01_00-00-09 //basedir基于周一的备份,会生成一个今天的。
ls /xtrabackup/
例图:
#我的第二十六堂云计算课# #开源数据库MySQL DBA运维实战 第5章 备份(二)#
#我的第二十六堂云计算课# #开源数据库MySQL DBA运维实战 第5章 备份(二)#
4、增量备份:周三:
date 09030000 //更新时间
mysql -uroot -p’[email protected]’ -e ‘insert into testdb.test values (3)’ //在testdb库的test表中加入3
innobackupex --user=root --password=‘[email protected]’ --incremental /xtrabackup/ --incremental-basedir=/xtrabackup/2020-09-02_00-01-21 //basedir基于周二的备份,会生成一个今天的。
ls /xtrabackup/
例图:
#我的第二十六堂云计算课# #开源数据库MySQL DBA运维实战 第5章 备份(二)#
#我的第二十六堂云计算课# #开源数据库MySQL DBA运维实战 第5章 备份(二)#
2-2 、增量恢复流程:
1、停止数据库: systemctl stop mysqld
2、 清理环境:rm -rf /var/lib/mysql/*
3、周一:innobackupex --apply-log --redo-only /xtrabackup/2020-09-01_00-00-09 //回滚合并
4、周二: innobackupex --apply-log --redo-only /xtrabackup/2020-09-01_00-00-09 --incremental-dir=/xtrabackup/2020-09-02_00-01-21
5、恢复:
innobackupex --copy-back /xtrabackup/2020-09-01_00-00-09
chown -R mysql.mysql /var/lib/mysql
systemctl start mysqld
例图:
#我的第二十六堂云计算课# #开源数据库MySQL DBA运维实战 第5章 备份(二)#
6、若想恢复周三,如何操作?操作如下:
systemctl stop mysqld
innobackupex --apply-log --redo-only /xtrabackup/2020-09-01_00-00-09 --incremental-dir=/xtrabackup/2020-09-03_00-00-39

rm -rf /var/lib/mysql/*

innobackupex --copy-back /xtrabackup/2020-09-01_00-00-09
chown -R mysql.mysql /var/lib/mysql
systemctl start mysqld
mysql -uroot -p’[email protected]’ -e ‘select * from testdb.test’
例图:
#我的第二十六堂云计算课# #开源数据库MySQL DBA运维实战 第5章 备份(二)#