MySQL5.7.的备份恢复方案。
Posted jcksb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL5.7.的备份恢复方案。相关的知识,希望对你有一定的参考价值。
系统:Centos 7.4
版本:mysql5.7.24
备份工具:percona xtrabackupd
全量备份
备份命令:innobackupex --defaults-file=$db_cnf --user=$db_user --password=$user_passwd --stream=tar /tmp | gzip >$data_file
恢复命令:
service mysql stop #停止服务
mv /data/database /data/database_`data +%F` #重命名数据库数据目录
mkdir /data/database #新建数据库数据目录
tar -zxvf $data_file -C /data/database #解压备份压缩包到新建数据库数据目录
innobackupex --defaults-file=/etc/my.cnf --apply-log /data/database #恢复
chown -R mysql:mysql /data/database #修改权限
service mysql start #启动服务
优势:恢复时间短,维护成本低。
劣势:占用磁盘空间多,备份时占用资源多。
推荐:适合大多中小型公司。
增量备份
全量+增量备份
命令:innobackupex --defaults-file=$db_cnf --user=$db_user --password=$user_passwd /data/mysqldata/backup/ #一次全量
innobackupex --defaults-file=$db_cnf --user=$db_user --password=$user_passwd --incremental /data/mysqldata/backup_rec --incremental-basedir=/data/mysqldata/backup/$(`data +%F`) #增量第一次
恢复命令:
service mysql stop #停止服务
mv /data/database /data/database_`data +%F` #重命名数据库数据目录
mkdir /data/database #新建数据库数据目录
innobackupex --defaults-file=$db_cnf --apply-log --redo-only /data/mysqldata/backup/$(`data +%F`) #恢复全量
innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /data/mysqldata/backup/$(`data +%F`) --incremental-dir=/data/mysqldata/backup_rec/$(`data +%F`)$1 #恢复第一次增量
innobackupex --defaults-file=/etc/my.cnf --apply-log /data/mysqldata/backup/$(`data +%F`) --incremental-dir=/data/mysqldata/backup_rec/$(`data +%F`)$2 #恢复最后一次增量
innobackupex --defaults-file=$db_cnf --apply-log --redo-only /data/mysqldata/backup/$(`data +%F`) #再执行一次恢复全量
innobackupex --defaults-file=$db_cnf --copy-back /data/mysqldata/backup/$(`data +%F`) #还原备份数据
chown -R mysql:mysql /data/database #修改权限
service mysql start #启动服务
优势:占用空间小,不经常锁表。
劣势:增量备份越多,恢复时间越长,维护成本越高。
推荐:适合大公司。
以上是关于MySQL5.7.的备份恢复方案。的主要内容,如果未能解决你的问题,请参考以下文章
MySQL5.6下使用xtrabackup部分备份恢复到MySQL5.7
Xtrabackup2.4.8备份还原恢复Mysql5.7.19实操
MySQL5.7.18 备份Mysqldump,mysqlpump,xtrabackup,innobackupex 全量,增量备份,数据导入导出