windows下实现Mysql的本地备份,异地备份

发布时间 2023-11-09 10:39:20作者: 五官一体即忢

两台服务器均为windows服务器

1、开启文件夹共享

开启异地备份服务器下的文件夹共享,实现本地备份的服务器可以访问到异地备份服务器下的指定文件夹

image.png

2、编写备份脚本

该脚本主要实现本地备份数据库脚本后,再将数据库脚本复制到指定服务器的共享文件夹下;

@echo off rem 定义以当前日期,当前时间命名的变量 set "ymd=%date:~,4%%date:~5,2%%date:~8,2%" set "hms=%time:~,2%%time:~3,2%%time:~6,2%" rem 本地备份的服务器IP set host=127.0.0.1 rem 异地备份的服务器IP,备份的目录 set backup_host=10.0.0.133 set backup_directory=10.0.0.161_mysql rem 数据库的端口,用户名,密码,数据库名 set port=3306 set user=strong set password=strong set dbname=istrong_zlytest rem 判断本地备份的服务器和异地备份的服务器下指定文件夹下是否存在以当前日期命名的文件夹 if not exist "H:\Backup\mysql\%ymd%" and not exist "\\%backup_host%\%backup_directory%\%ymd%" ( rem 不存在则在本地,异地创建以当前时间命名的文件夹 md "H:\Backup\mysql\%ymd%" md "\\%backup_host%\%backup_directory%\%ymd%" echo already build directory! rem 备份数据库到本地创建的文件夹下 "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump" -h%host% -u%user% -p%password% -P%port% %dbname% >"H:\Backup\mysql\%ymd%\%dbname%%hms%.sql" echo already backup database! rem 使用xcopy命令把备份文件拷贝到异地备份的服务器下 xcopy /y "H:\Backup\mysql\%ymd%\%dbname%%hms%.sql" "\\10.0.0.133\10.0.0.161_mysql\%ymd%" echo copyto backyphost! )else ( rem 指定文件夹下存在以当前日期命名的文件夹,直接进行备份 "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump" -h%host% -u%user% -p%password% -P%port% %dbname% >"H:\Backup\mysql\%ymd%\%dbname%%hms%.sql" echo already backup database! rem 使用xcopy命令把备份文件拷贝到异地备份的服务器下 xcopy /y "H:\Backup\mysql\%ymd%\%dbname%%hms%.sql" "\\10.0.0.133\10.0.0.161_mysql\%ymd%" echo copyto backyphost! ) pause

3、为备份脚本设置定时任务

配置定时任务,比如每晚11点进行一次备份,选择执行脚本

image.png

4、实现效果

最终可以实现本地备份后,往指定的服务器上传备份文件
image.png