Open felix-cao opened 5 years ago
每周一的凌晨2点执行如下脚本
0 2 * * 1 ansible-playbook /home/git/prod.yml
下载地址, 请选择 Percona XtraBackup 2.4.6
及以上的版本,安装介绍请参见 官网文档,
安装:
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install percona-xtrabackup-24
使用 xbstream
命令将备份文件解包到目标目录。
xbstream -x -C /home/data < ./test.xb
/home/data
为目标目录。./test.xb
为备份文件。qpress
工具cd /home/software
wget http://www.quicklz.com/qpress-11-linux-x64.tar
tar -xvf qpress-11-linux-x64.tar -C /usr/local/bin
source /etc/profile
wget
下载提示错误,您可至 quicklz 下载 qpress
工具到本地后,再将 qpress
工具上传至 Linux
云服务器,
.qp
文件使用如下命令将目标目录下所有以 .qp
结尾的文件都解压出来。
xtrabackup --decompress --target-dir=./data --remove-original
./data
为之前存储备份文件的目标目录 xtrabackup
默认在解压缩时不删除原始的压缩文件,若需解压完删除原始的压缩文件,可在上面的命令中加上--remove-original
参数。Percona Xtrabackup
在2.4.6
及以上版本中才支持--remove-original
选项。xtrabackup --prepare --target-dir=./data
执行后若结果中包含如下输出,则表示 prepare
成功。
service mysql stop
xtrabackup --copy-back --target-dir=./data --datadir=/usr/local/mysql/var/
chown -R mysql:mysql /usr/local/mysql/var/
本文出自《实战-MySQL定时全量备份(1)》
引言
在产品上线之后,我们的数据是相当重要的,容不得半点闪失,应该做好万全的准备,搞不好哪一天被黑客入侵或者恶意删除,那就 gg 了。所以要对我们的线上数据库定时做全量备份与增量备份。例如:每天做一次增量备份,每周做一次全量备份。以下所涉及的操作系统为
centos7
。GitHub 地址:
全量备份
如上一段代码所示,其功能是将
test
数据库全量备份。其中MySQL
用户名为:root
密码为:123456
备份的文件路径为:/home
(当然这个路径也是可以按照个人意愿修改的。) 备份的文件名为:backup.sql
参数--flush-logs
:使用一个新的日志文件来记录接下来的日志 参数--lock-all-tables
:锁定所有数据库以下为我使用的数据库备份脚本文件:
脚本文件功能不是很复杂,首先是各种变量赋值。然后备份数据库,接着是进入到备份文件所在的目录,再将备份文件压缩。其中倒数第三行是使用 nodejs 将备份的数据库文件上传到七牛云中,这里就不在过多的阐述了,与本文主题不符,想看具体实现可以查看 GitHub 源码。其中相应的变量改成自己的值即可拿过来使用。
恢复全量备份
或者
嗯,回复全量备份也就这样两句,似乎不用多说什么了。对了,在恢复全量备份之后,要将全量备份之后的增量备份也恢复回数据库中。
定时备份
输入如下命令,进入 crontab 定时任务编辑界面:
添加如下命令,其意思为, 每分钟执行一次备份脚本:
每五分钟执行 :
每小时执行:
每天执行:
每周执行:
每月执行:
每年执行:
关于 crontab 命令的格式说明如下: