Kis*_*mar 0 sql-server scripting
我使用的是 SQL Server Express 版本,因此没有备份计划功能,我想使用 bat 脚本进行数据库备份,并创建一个每天运行的调度程序。我已经创建了 .bat 文件,但需要在备份文件末尾放置时间戳,例如 test_13_April_2017。
cd "C:\Program Files\Microsoft SQL Server\110\Tools\Binn"
SqlCmd -S SERVER02 -Q "Backup Database testdb To Disk='C:\backup\testdb.bak'"
Run Code Online (Sandbox Code Playgroud)
有没有办法在每个数据库备份结束时给出时间戳。
我建议您查看一些免费提供的备份代码。我推荐以下两个可能的选项,因为它们都适用于 SQL Server Express Edition。
您可以将 Ola 的代码安装在服务器上的数据库中(例如,“DBA”实用程序数据库中),然后通过执行存储过程来备份数据库。存储过程负责在文件名中添加日期/时间戳,还可以负责清理旧备份(等等)。
然后,您可以使用 PowerShell(或 cmd 文件)调用 Invoke-SqlCmd(或 sqlcmd),以使用正确的参数简单地调用过程。
电源外壳:
Invoke-SqlCmd -ServerInstance SERVER02 -Database DBA -Query "EXEC dbo.BackupDatabase @Databases='testdb'"
Run Code Online (Sandbox Code Playgroud)
命令:
SqlCmd -S SERVER02 -Q "EXEC DBA.dbo.BackupDatabase @Databases='testdb'"
Run Code Online (Sandbox Code Playgroud)
该模块包括一个简单的Backup-DbaDatabase命令,该命令将执行备份并在文件名中包含日期/时间戳。与 Ola 的程序相比,此方法的花哨功能更少,但如果您不需要花哨的功能,这个简单的解决方案可能正是您所需要的。
Backup-DbaDatabase -SqlInstance SERVER02 -Databases testdb -Type Full -BackupDirectory \server2\backups
Run Code Online (Sandbox Code Playgroud)