SQL server数据异地备份到OSS

匿名 (未验证) 提交于 2019-12-02 23:30:02

背景需求:

某部门需要将windows机器上的SQL server数据做一个异地备份,经过对现有的软硬件资源评估,决定使用阿里云的OSS存储

方法:利用SQLserver自带的维护计划做指定数据库的备份,通过bat批量执行脚本将备份文件上传到OSS---->(所需环境:python、osscmd、winrar)

问题:bat批执行脚本无法识别 * 这个正则匹配符,导致不能由每天的日期去识别备份文件。

解决方法:通过维护计划制定备份目录,每天备份后,上传到OSS后再将其删除

脚本如下:

@echo off rem mail:baiyufeideyouxiang@163.com set MON=%date:~0,4%%date:~5,2% set DATE=%date:~0,4%%date:~5,2%%date:~8,2% set TIME=%date%-%time% set LOGDIR=G:\back_oss\data_back set DIR=G:\back_oss\data_back echo "%TIME% 开始执行完毕!">>%LOGDIR%\backup-oss.log set NAME=某部备份 set DIRNAME=AIS20180831000315 set PY=G:\back_oss\software\python27\python.exe set OSSCMD=G:\back_oss\software\OSS_PYTHON_API\osscmd set RAR=G:\back_oss\software\winrar\WinRAR.exe set BUCKET=oss://basebackup/ set ID=------ set KEY=------ set HOST=oss-cn-hangzhou.aliyuncs.com   set FILE=AIS20180831000315 %RAR% a -k -r -s -m1 %DIR%%DATE%-%FILE%.rar %DIR%\%FILE% set TIME= set TIME=%date%-%time% echo "%TIME% %FILE% 压缩文件执行完毕!">>%LOGDIR%\backup-oss.log %PY% %OSSCMD% mkdir %BUCKET%%NAME%/%MON --id=%ID% --key=%KEY% --host=%HOST% %PY% %OSSCMD% mp %DIR%%DATE%-%FILE%.rar %BUCKET%%NAME%/%MON%/%DATE%-%FILE%.rar --id=%ID% --key=%KEY% --host=%HOST% --thread_num=30 if errorlevel 1 (      %PY% %OSSCMD% mp %DIR%%DATE%-%FILE%.rar %BUCKET%%NAME%/%MON%/%DATE%-%FILE%.rar --id=%ID% --key=%KEY% --host=%HOST% --thread_num=30 ) else (     set TIME=         set TIME=%date%-%time%         echo "%TIME% %FILE% 上传文件执行完毕!">>%LOGDIR%\backup-oss.log ) del %DIR%%DATE%-%FILE%.rar set TIME= set TIME=%date%-%time% echo "%TIME% %FILE% 删除文件执行完毕!">>%LOGDIR%\backup-oss.log  set FILE= set FILE=AIS20180831000316 %RAR% a -k -r -s -m1 %DIR%%DATE%-%FILE%.rar %DIR%\%FILE% set TIME= set TIME=%date%-%time% echo "%TIME% %FILE% 压缩文件执行完毕!">>%LOGDIR%\backup-oss.log %PY% %OSSCMD% mkdir %BUCKET%%NAME%/%MON% --id=%ID% --key=%KEY% --host=%HOST% %PY% %OSSCMD% mp %DIR%%DATE%-%FILE%.rar %BUCKET%%NAME%/%MON%/%DATE%-%FILE%.rar --id=%ID% --key=%KEY% --host=%HOST% set TIME= set TIME=%date%-%time% echo "%TIME% %FILE% 上传文件执行完毕!">>%LOGDIR%\backup-oss.log del %DIR%%DATE%-%FILE%.rar set TIME= set TIME=%date%-%time% echo "%TIME% %FILE% 删除文件执行完毕!">>%LOGDIR%\backup-oss.log echo "-----------%TIME% 执行完毕!---------">>%LOGDIR%\backup-oss.log

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!