备份与恢复
通过数据文件和my.cnf备份还原
1.保存原始库的data文件和my.cnf
2.拷贝data文件和my.cnf带初始话好的新库,如果涉及到主备,data/auto.cnf文件不替换
3.给mysql目录授权
chown mysql:msql -R /app/mysql
4.启动数据库
逻辑备份恢复
全备
./mysqldump -uroot -proot1234 --single-transaction --flush-logs --master-data=2 --all-databases > /app/mysql/bak/full/backup_full.sql
执行此命令后,数据目录包含一个新的二进制日志文件,因为该–flush-logs 选项会导致服务器刷新其日志
./mysqladmin -uroot -proot1234 flush-log
增量备份成新的二进制文件,增量内容都在全备和增备的二进制文件中
恢复
先全量恢复
./mysql -uroot -proot1234 < /app/mysql/bak/full/backup_full.sql
再增量恢复
./mysqlbinlog --no-defaults /app/mysql/bak/incr/mysql-bin.000006 /app/mysql/bak/incr/mysql-bin.000007 | ./mysql -uroot -proot1234
要恢复增量后的文件,还可以
./mysqlbinlog --no-defaults /app/mysql/bak/incr/mysql-bin.000008 | ./mysql -uroot -proot1234
xtrabackup的安装部署,实现mysql的备份恢复
1.访问地址https://www.percona.com/downloads/Percona-XtraBackup-2.4/LATEST/
下载percona-xtrabackup-24-2.4.24-1.el7.x86_64.rpm
2.rpm -ivh percona-xtrabackup-24-2.4.24-1.el7.x86_64.rpm 如果报错缺少依赖,要下载对应依赖
3.完全备份
innobackupex --defaults-file=/etc/my.cnf --user=root --password=root1234 /app/mysql/bak/full
4.删除数据目录
rm -rf /app/mysql/data/*
5.还原
innobackupex --apply-log /app/mysql/bak/full/2021-09-16_21-37-41/
Innobackupex --defaults-file=/etc/my.cnf --copy-back /app/mysql/bak/full/2021-09-16_21-37-41/
6.给mysql目录授权
chown mysql:mysql -R /app/mysql/data
7.启动mysql服务
/app/mysql/bin/mysqld_safe
8.增量备份
innobackupex --defaults-file=/etc/my.cnf --user=root --password=root1234 --incremental /app/mysql/bak/incr/ --incremental-basedir=/app/mysql/bak/full/2021-09-16_21-37-41/
9.增量还原
准备一个全备
innobackupex --apply-log --redo-only /app/mysql/bak/full/2021-09-16_21-37-41/
将增量1应用到完全备份
innobackupex --apply-log --redo-only /app/mysql/bak/full/2021-09-16_21-37-41/ --incremental-dir=/app/mysql/bak/incr/2021-09-16_21-40-39/
把所有合在一起的完全备份整体进行一次apply操作,回滚未提交的数据
innobackupex --apply-log /app/mysql/bak/full/2021-09-16_21-37-41/
删除数据目录
rm -rf /app/mysql/data/*
数据库恢复
innobackupex --defaults-file=/etc/my.cnf --copy-back /app/mysql/bak/full/2021-09-16_21-37-41/
10. 给mysql目录授权
chown mysql:mysql -R /app/mysql/data
11. 启动mysql服务
/app/mysql/bin/mysqld_safe