自动每日备份数据库

Rus*_*hah 5 sql-server sql-server-2008-r2 sql-server-express

我正在尝试在 SQL Server 2008 R2 中创建数据库的自动/每日备份。我做了一些研究,当我使用 Express 版本时我才知道;这不附带维护计划,我无法自动/每天创建数据库备份。因此,唯一的可能性是我必须使用 TSQL 或创建 Job。我对 SQL Job 了解不多,所以只剩下 T-SQL 了。

任何人都可以向我解释如何使用存储过程在 T-SQL 中自动备份数据库,或者我是否还有其他选项必须这样做。

问候。

Tho*_*ger 10

由于您使用的是 SQL Server Express,因此您必须发挥创意。您没有任何 SQL Server 本地调度工具,您可以使用Task Scheduler,并安排一个日常任务来运行SQLCMD,并使用查询文本来备份您的数据库

我建议创建一个脚本来执行一些字符串操作来为BACKUP DATABASET-SQL生成一个唯一的文件名。

您的脚本可能类似于以下内容:

-- declare the backup filename (with path) without the file extension
declare @DestFile varchar(128) = 'C:\BackupDir\BackupFileName_';

-- get the current date as a nice and sortable string
declare @CurrentDate varchar(64) = '';
set @CurrentDate = replace(convert(varchar(10), getdate(), 111), '/', '');

set @DestFile += @CurrentDate + '.bak';

backup database YourDatabaseName
to disk = @DestFile;
go
Run Code Online (Sandbox Code Playgroud)

将该 T-SQL 保存到脚本文件(例如,C:\YourScriptDir\BackupDatabase.sql)。要使用 SQLCMD 运行此脚本,您可以执行以下操作:

sqlcmd -S YourServerName\YourInstanceName -i C:\YourScriptDir\BackupDatabase.sql
Run Code Online (Sandbox Code Playgroud)

然后只需使用 Task Scheduler 安排它每天运行。这是一个巨大的意大利面解决方法,但这就是您使用免费版本所能获得的。

(以上过程将针对简单恢复模式下的数据库量身定制。如果您是完全恢复,那么您还需要考虑事务日志备份)