SQL Server远程定时备份数据库脚本分享

介绍

SQL Server是一种非常流行的关系型数据库管理系统,因其可靠性和稳定性被广泛应用。定期备份数据库是维护系统正常运行所必需的一个环节。本文将介绍如何使用Transact-SQL脚本实现SQL Server的定时备份。

使用Transact-SQL脚本实现SQL Server的定时备份

步骤一:创建一个备份计划

在SQL Server Management Studio(SSMS)中打开“SQL Server代理”,右键单击“维护计划”并选择“新建维护计划…”,如下图所示:

![image1.png](https://cdn.luogu.com.cn/upload/image_hosting/g8wdq1uu.png)

在弹出的对话框中,填写必需的信息,例如计划的名称、调度和重复信息。

步骤二:指定要备份的数据库

选中“备份数据库”选项卡,单击“添加”按钮并选择要备份的数据库,如下图所示:

![image2.png](https://cdn.luogu.com.cn/upload/image_hosting/4mplkblp.png)

步骤三:配置备份选项

在“备份选项”选项卡中可以配置一些备份选项,例如备份类型、备份的文件位置和备份完成后是否验证备份,如下图所示:

![image3.png](https://cdn.luogu.com.cn/upload/image_hosting/iwyo3umn.png)

步骤四:生成Transact-SQL脚本

完成备份计划的配置后,单击“确定”即可保存备份计划。然后在“SQL Server代理”中右键单击该备份计划并选择“脚本”→“生成新建的Transact-SQL脚本”,如下图所示:

![image4.png](https://cdn.luogu.com.cn/upload/image_hosting/6gorvh2f.png)

将生成的Transact-SQL脚本保存到本地。

步骤五:修改Transact-SQL脚本

将生成的Transact-SQL脚本打开并修改,使其符合要求。例如:

1. 指定备份文件的路径和文件名。

2. 添加“WITH INIT”选项以覆盖已有备份。

3. 添加时间戳以便管理备份文件。

例如下面的脚本:

BACKUP DATABASE [TestDatabase] TO  DISK = N'C:\Backups\TestDatabase.bak' WITH NOFORMAT, 

INIT, NAME = N'TestDatabase-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10

GO

可以修改为下面的脚本:

DECLARE @fileName NVARCHAR(255)

DECLARE @path NVARCHAR(255)

DECLARE @fileDate NVARCHAR(20)

SET @path = 'C:\Backups\'

SET @fileDate = REPLACE(CONVERT(VARCHAR(20), GETDATE(), 110), '-', '_')

SET @fileName = @path + 'TestDatabase_' + @fileDate + '.bak'

BACKUP DATABASE [TestDatabase] TO DISK = @fileName WITH NOFORMAT, INIT,

NAME = N'TestDatabase-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10

GO

步骤六:创建SQL Server代理任务

将修改后的Transact-SQL脚本保存到一个文件中,然后在“SQL Server代理”中创建一个新的“SQL Server代理任务”,并将该脚本作为该任务的“Transact-SQL脚本”步骤,如下图所示:

![image5.png](https://cdn.luogu.com.cn/upload/image_hosting/fdb8ks3u.png)

步骤七:添加调度

在新创建的代理任务中,单击右键并选择“属性”,添加一个调度以指定备份重复的时间和日期,如下图所示:

![image6.png](https://cdn.luogu.com.cn/upload/image_hosting/ynv85d5o.png)

至此,我们已经完成了定时备份数据库的所有步骤。

总结

本文介绍了如何使用Transact-SQL脚本实现SQL Server的定时备份。首先通过SSMS创建一个备份计划,然后生成Transact-SQL脚本并根据需要修改该脚本,最后通过SQL Server代理任务来执行备份计划。这样就可以确保数据库定期备份并保持数据的可恢复性。

数据库标签