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 DATABASE
T-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 安排它每天运行。这是一个巨大的意大利面解决方法,但这就是您使用免费版本所能获得的。
(以上过程将针对简单恢复模式下的数据库量身定制。如果您是完全恢复,那么您还需要考虑事务日志备份)