用于自动备份的批处理文件

Batch file for auto backup

我有一台服务器,我在其中 运行 安装了一个 SQL Server Express DB 和一个 Azure blob,我每天早上上传 SQL 服务器的备份。

现在,我已经能够通过 SQL 查询 + 批处理文件的组合来自动执行备份,并且我已将其安排到我的任务计划程序中,每晚 运行 [=25] =],但我还想将备份副本从服务器移动到 Azure 存储。

我已经在任务计划程序中尝试过批处理文件:

echo off
copy "Z:\Backup\SQLBackup\" "C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\Backup\DailyStep_bck.bak"

但它本身并不能工作,只有我 运行 手动才能工作。 每天当前副本都应该替换旧副本,我现在不需要保留旧备份。

我也试过 robocopy 但还是不行...有人能告诉我我错过了什么吗?

任务是运行以管理员身份使用“运行无论管理员是否登录”选项。

感谢您的帮助。

我将解决方案总结如下。

Windows 任务计划程序无权访问已装载的 Azure 文件共享驱动器。所以我们需要使用路径 https://[Azure_account].file.core.windows.net/storage/Backup 来访问 Azure 文件共享。另外,如果要实现auto-upload,可以使用azcopy.

例如

  1. Create a sas token for the file share

  2. 脚本

azcopy copy 'C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\Backup*.bak' 'https://[Azure_account].file.core.windows.net/storage/Backup/SQLBackup/[backup_file].bak?<sas token>
  1. 创建计划任务

详情请参考 and here