前一篇文章《windows服务器应用系统自动备份策略》讲到了mysql数据库本地备份策略,如果觉得备份到服务器上不够安全,防止服务器意外硬件损坏致使备份也丢失。那么可以采取异地备份,网上很多windows服务器异地备份的教程都是通过搭建ftp或者共享存储实现取回,其实完全可以通过调整mysqldump参数实现(mysqldump是mysql自带的逻辑备份工具)。具体步骤如下:
一、任意找一台与服务器网络互通的终端,服务器端我们需要进行两项操作:
1.将服务器防火墙添加入站规则开放3306端口;
2.登录服务器数据库,新建一个远程用户,假设用户名administrator,密码123456,主机名172.16.1.52,生成密码留空,全局权限勾选全选,执行。
图1创建mysql远程账户
二、在终端上需要进行四个操作:
1.如果终端没安装mysql,则从服务器mysql安装目录下拷贝mysqldump.exe文件到终端D盘;如果已经安装了mysql则定位到mysql安装路径下的bin目录中,就会发现有mysqldump.exe文件。
2.编写备份批处理脚本,注意端口号前参数是大写P,且中间没有空格。如果安装了mysql需要把代码中的D:mysqldump替换为mysql安装目录bin下的mysqldump.exe绝对路径即可。
@echo offset "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"D:mysqldump --opt -uadministrator -p123456 -h172.16.1.52 -P3306 phpems > D:/db_backup/db_%Ymd%.sql@echo on
3.新建备份文件夹db_backup;
4.创建周期计划任务,指定脚本路径,定好备份周期;
至此,数据库远程备份就设置好了。可以测试运行一下周期计划任务,就会发现D盘db_backup目录下已经将远程数据库备份到了该终端。
经验总结
1.服务器崩溃只要把数据库时时备份好,就不会有什么问题,出了问题一键导入还原数据库即可;
2.根据应用系统使用频率和重要程度设置备份频率,以便恢复到最近时间点的数据;
3.检查测试备份数据库的有效性,试着在测试机恢复数据库看看是否完整。
4.定期清理旧数据库备份文件,以免过多占用磁盘空间致使新备份无法写入。
5.如果是公网服务器,只需要将服务器远程用户IP和终端自动备份脚本的IP更换为终端的固定公网IP。