Mysql 做了本机,同机房全量备份后,想同时做一份异地备份,考虑异地机房的网络不稳定性,使用 rsync 来同步备份的文件;
同机房异机备份,内网速度快可以使用scp,或者mysqldump备份脚本放在非mysql机器上;
服务器环境: CentOS Linux release 7.7.1908 (Core)
当前是一体机,所以在mysql机器做mysqldump,实际业务中上最好在非mysql机器执行mysqldump做备份;
一. 远程备份服务器,安装rsync:
1、1 使用yum安装:
1、2 查看版本:
1、3 查询配置文件存放的路径
1、4 查看systemd服务管理脚本:
在/lib/systemd/system目录下存在rsyncd.service, 即可以使用systemctl 管理 rsync
1、5 开放服务器公网访问端口,默认使用873,如果修改rsync端口,则开放相应端口;
重中之重
二. 远程备份服务器,配置rsync:
2、1 修改rsyncd.conf配置:
2、2 创建密码文件,rsync认证的用户和密码, 不需要使用useradd真实创建用户:
2、3 修改认证为root的读写权限:
三. 远程备份服务器,启动rsync:
3、1 使用systemctl管理服务:
重启:# systemctl restart rsyncd 查看状态:# systemctl status rsyncd
3、2 查看端口监听状态:
3、3 查看rsync的log,是否正常启动:
四. Mysql服务器,创建备份用户:
3、1 使用mysql的root账号,进入终端:
3、2 创建mysqldump用户,建议和业务数据库用户区分开, GRANT权限可以调整,注意一定不要 GRANT ALL:
五. Mysql服务器,创建备份脚本:
5、1 创建备份脚本,可以根据业务实际情况,修改:
同机房异机备份,内网速度快可以使用scp,或者备份脚本放在非mysql机器上;
a. 如果mysql没有开启binlog,需去掉binlog刷新:–flush-logs –master-data=2
b. user_rsync(at)10.20.30.40::mysql ( 认证用户@远程服务器::模块名 )
c. –include=”.gz” 只同步gz后缀得文件,脚本等其他文件不同步
d. –exclude= 排除目录下所有文件, 注意exclude 必须在 include后面
5、2 修改/opt/mysql_backup.sh脚本可执行:
六. Mysql服务器,测试脚本,添加crontab:
6、1 测试脚本,查看远程备份服务器的文件:
在远程服务器,mysql模块对应的目录,rsync文件传输中是隐藏文件,要使用 ll -la 查看。
6、2 添加定时脚本:
每天03:00,执行一次, 具体根据业务情况,调整脚本执行时间和频率。