解锁SQL Server备份之力:T-SQL脚本的魔力

尽管使用SSMS GUI对一个或两个数据库进行备份可能是个不错的选择,但在面对大量数据库或对备份结果有特定要求时(比如在文件名中包含日期/时间),T-SQL脚本可以成为应对重复性任务的得力工具。

在下文中,我将分享一些用于执行基本数据库备份和更高级任务的SQL Server数据库备份脚本。

使用 T-SQL 备份实例所有数据库的脚本

当您需要备份 SQL Server 的所有数据库时,一个合适的 T-SQL 脚本可以大大减轻您的负担。有了它,您不需要指定您要备份的数据库,只需要排除您不想备份的(比如系统数据库)。创建的备份文件将自动命名为数据库名称加日期。

下面是一个例子:

                DECLARE @name VARCHAR(50) -- 数据库名
                DECLARE @path VARCHAR(256) -- 备份文件路径
                DECLARE @fileName VARCHAR(256) -- 备份文件名
                DECLARE @fileDate VARCHAR(20) -- 用于文件名
                
                -- 指定数据库备份目录 eg 'D:\backup/'
                SET @path = 'backuppath'
                
                -- 指定文件名格式
                SELECT @fileDate = CONVERT(VARCHAR(20), GETDATE(), 112) + '_' + REPLACE(CONVERT(VARCHAR(20), GETDATE(), 108), ':', '')
                
                DECLARE db_cursor CURSOR READ_ONLY FOR
                SELECT name
                FROM master.sys.databases
                WHERE name NOT IN ('master', 'model', 'msdb', '临时数据库') -- 排除这些数据库
                AND state = 0 -- 数据库在线
                AND is_in_standby = 0 -- 数据库不是只读日志传送
                
                OPEN db_cursor
                FETCH NEXT FROM db_cursor INTO @name
                
                WHILE @@FETCH_STATUS = 0
                BEGIN
                    SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
                    BACKUP DATABASE @name TO DISK = @fileName
                
                    FETCH NEXT FROM db_cursor INTO @name
                END
                
                CLOSE db_cursor
                DEALLOCATE db_cursor
                    

如何设置自动化SQL Server数据库备份脚本

拥有SQL Server备份数据库脚本后,您可以随时执行它。然而,如果您需要频繁执行它,建议的方式是利用SQL Server代理自动执行MSSQL备份脚本。

“注意:”此功能仅适用于非Express版本。如果您是SQL Express用户,请尝试使用用于备份SQL数据库的批处理文件

1. 右键点击“SQL Server代理”,选择“新建” > “作业”

确保SQL Server代理 已启用,否则,请右键单击它并选择“开始”

新工作

2. 在“新建作业”窗口的“常规”选项卡中,输入作业的名称和描述。

3. 单击“步骤”选项卡,单击“新建...”并为其“命名“步骤”,然后将备份脚本复制到“命令”部分并单击“确定”

输入命令

4. 移动到计划选项卡,您可以单击“新建”设置自动执行脚本的计划。

创建时间表

5. 然后,单击“确定”创建作业。如果没有问题,您可以在“SQL Server代理” > “作业”下找到新作业。它会在您设置的时间自动执行操作,但您也可以右键单击它并选择“作业开始步骤”立即执行。

“注意”:如果要在不更改脚本的情况下更改存储备份的目标路径,可以在备份之前指定一个逻辑SQL Server中的备份设备,然后在要更改它时重新定义它。

轻松备份 SQL 数据库的强大替代方案

一旦您拥有了有效的脚本,SQL Server数据库备份工作就会变得轻松得多。然而,这种方法仍然存在一些限制:

  • 自动化备份任务不是很方便。
  • 脚本中的任何小错误都会导致操作失败。
  • 您仍然需要一个还原脚本来还原SQL Server的数据库

为了弥补这些不足,可以使用SQL数据库备份软件,如傲梅企业备份旗舰版. 操作非常简单,具有同时备份多个数据库、定时自动备份、恢复多个数据库等功能。

下载180天免费试用版试用:

数据库是企业最重要的资产之一,包含大量的重要数据,以及业务逻辑和关键性能参数。 因此,数据库备份是维持企业生产力和业务连续性的关键步骤之一。 备份是指将原始数据库数据复制到另一个地方,目的是在原始数据库系统出现故障或其他问题时快速恢复数据。

如何创建 Microsoft SQL Server 的备份

Microsoft SQL Server 备份的先决条件:

  • 安装傲梅企业备份旗舰版的电脑
  • 安装了 Microsoft SQL Server 的计算机
  • 用于存储备份文件的本地磁盘或网络共享

1. 在服务器机器上运行傲梅企业备份旗舰版,点击 左侧菜单栏的“ 源设备”,然后选择设备类型“ Microsoft SQL ”。

微软SQL

2. 单击“ 添加 Microsoft SQL ”,然后选择“ 下载代理程序” “复制链接” 来下载并安装傲梅企业备份旗舰版代理到安装了 SQL数据库的计算机。 

然后,切换到“ 已安装代理 ”,选择要备份的设备,并 确认

添加设备

3. 点击“ 图标”-->“ 身份验证 ”以验证数据库实例。

SQL验证

4. 您可以选择“ Windows 身份验证 ”或“ SQL 身份验证 ”。 输入凭据并单击“ 验证 ”。

选择认证方式

5. 单击 左侧菜单栏上的“ 备份任务”,选择“ 备份任务 ”。 点击“ 创建新任务 ”,打开任务创建页面。

6. 选择备份类型为“ Microsoft SQL 备份 ”。

备份类型

7. 设置“ 任务名称 ”。 它将有一个默认名称。 您可以编辑任务的名称。

8. 选择“ 设备名称 ”。 将列出您添加的数据库实例。

然后您可以选择一个或多个数据库实例进行备份。

选择数据库

9. 选择“ 目标 ”保存备份。

选择目标

您可以选择本地或网络路径。

添加的存储 :它将列出所有添加的备份目标。 您可以选择备份目标而无需再次添加。

添加新的本地存储 :它将列出安装了傲梅企业备份旗舰版的计算机的本地目录,然后您可以选择一个位置作为备份目标。

添加新的网络存储 :您可以输入网络路径(如:192.168.1.1\data),然后填写要添加的网络路径的用户名和密码。 之后,您可以继续选择网络路径的文件夹作为备份目标。

提示 :您还可以在中添加和管理目标位置。

选择备份目标

10. 设置计划备份。

计划备份可帮助您自动定期备份数据库。 激活此选项后,您可以让傲梅备份自动运行备份,而不必担心某一天的备份未执行。

一般情况下,计划设置是默认启用的。 您可以根据需要更改计划,或禁用它。 。

11. 单击“ 开始备份 ”创建备份任务并执行备份。

总结

相较于SSMS GUI,SQL Server备份脚本允许进行一些更复杂和自定义的备份操作。然而,如果您对T-SQL命令不熟悉,或者想要更直观地进行备份和恢复,您也可以考虑使用傲梅企业备份网络版,这是一款集中数据管理的解决方案。

该解决方案不仅适用于本地计算机,还适用于局域网内的所有台式机、笔记本电脑、工作站和服务器。因此,您可以方便地集中安排备份,并且将SQL数据库恢复到另一台服务器,随心所欲。