什么是数据库备份语句 BACKUP DATABASE TO DISK

BACKUP DATABASE TO DISK 是 SQL Server 提供的一条 T-SQL 语句,用于将数据库备份到指定的磁盘位置。这是 SQL Server 中最常用的备份方法之一,可以创建完整备份、差异备份或事务日志备份。

通过此语句,你可以将数据库的当前状态保存到一个 .bak 文件中,以便在需要时恢复。以下是语法格式和使用示例:

语法格式

                                BACKUP DATABASE [数据库名称]
                                TO DISK = '文件路径和文件名'
                                WITH [备份选项];
                                

其中:

  • 数据库名称:需要备份的目标数据库名称。
  • 文件路径和文件名:指定备份文件的存储路径和名称,例如 C:\Backups\MyDatabase.bak。
  • 备份选项:可以指定额外的选项,如是否压缩备份、是否覆盖现有文件等。

常用备份类型

SQL Server 支持以下几种备份类型:

  • 完整备份:备份整个数据库,包括所有数据和日志。
  • 差异备份:仅备份自上次完整备份以来发生更改的数据。
  • 事务日志备份:备份事务日志,用于支持数据库的点时间恢复。

使用 BACKUP DATABASE 脚本执行高级操作

以上介绍的是 T-SQL 备份命令的基础应用,但在实际工作中,我们也可以通过更复杂的 BACKUP DATABASE 脚本来实现一些高级操作,从而满足多样化的备份需求。

在备份文件中添加日期

如果希望在备份文件的名称中包含当前日期,以便更方便地管理备份文件,可以使用以下脚本:

DECLARE @FileName varchar(1000);
SELECT @FileName = 'C:\Backups\Databasename_' + CONVERT(varchar(8), GETDATE(), 112) + '.bak';
BACKUP DATABASE [databasename] TO DISK = @FileName;

该脚本会将备份文件保存到指定路径,并自动在文件名中添加当前日期。例如:Databasename_20241206.bak

对多个数据库执行备份

如果需要同时备份多个数据库,可以扩展脚本,使用循环或指定多个数据库名称。具体实现方式可以参考备份 SQL 数据库(文件名带日期)的详细说明。

自动化备份任务

对于需要定期备份的场景,可以将 T-SQL 脚本配置为 SQL Server 代理作业的一个步骤,并设置计划任务,实现全自动化。以下是自动化备份的基本步骤:

  1. 在 SQL Server Management Studio (SSMS) 中启用 SQL Server 代理。
  2. 创建一个新作业,添加备份脚本作为作业的步骤。
  3. 设置备份计划,例如每天凌晨 1 点运行。

配置完成后,SQL Server 将按计划自动运行脚本并生成备份文件,节省手动操作时间。

示例配置

以下是 SQL Server 代理作业配置界面的示例截图:

SQL Server 代理作业配置示例

从命令行运行 BACKUP DATABASE TO DISK

除了通过 SQL Server Management Studio (SSMS) 执行备份外,您还可以使用命令行工具 sqlcmd 来直接运行 BACKUP DATABASE TO DISK 命令。此方法特别适用于需要快速备份或自动化任务的场景。

如何使用命令行备份数据库

按下 Win + R,输入 cmd 并按回车,打开命令提示符。在窗口中运行以下命令:

创建完整备份到磁盘:

sqlcmd -E -S Server\Instance -Q "BACKUP DATABASE DatabaseName TO DISK = 'FilePath'"

完整备份示例

创建差异备份到磁盘:

sqlcmd -E -S Server\Instance -Q "BACKUP DATABASE DatabaseName TO DISK = 'FilePath' WITH DIFFERENTIAL"

差异备份示例

创建事务日志备份到磁盘:

sqlcmd -E -S Server\Instance -Q "BACKUP LOG DatabaseName TO DISK = 'FilePath' WITH NORECOVERY"

日志备份示例

自动化备份任务

如果您需要频繁执行备份,可以通过创建批处理文件来简化流程。以下是实现自动化的步骤:

步骤 1:创建批处理文件

使用文本编辑器编写以下内容,并将其保存为 BackupDatabase.bat

@echo off
sqlcmd -E -S Server\Instance -Q "BACKUP DATABASE DatabaseName TO DISK = 'C:\Backups\DatabaseName.bak'"
echo Backup Completed!
pause

步骤 2:通过任务计划程序自动运行

打开 Windows 任务计划程序,按照以下步骤设置任务:

  1. 点击“创建任务”。
  2. 在“操作”选项卡中,添加运行 BackupDatabase.bat 的操作。
  3. 在“触发器”选项卡中,设置任务运行的时间和频率。
  4. 保存设置后,您的数据库备份将根据计划自动执行。

通过这种方式,您可以轻松实现自动化备份,省去手动操作的麻烦。

不用命令的方式,轻松实现数据库的备份!

使用BACKUP DATABASE TO DISK命令进行SQL Server备份的优点是简单、灵活,但如果要进行更高级的操作,如备份所有数据库、自动备份数据库等,操作会比较复杂。

另外,由于T-SQL命令是手动输入的,可能会出现一些小错误导致操作失败,需要花时间进行故障排除。

有了这些考虑,你可以考虑使用傲梅企业备份网络版自动备份 MSSQL 数据库。如果为您提供了一个简单的界面,只需单击一下即可完成所有操作。此外,作为集中式备份解决方案,它使您能够备份和还原网络上的所有 SQL Server。

要使用它,您可以在计算机上下载并安装傲梅企业备份网络版。这是一个180天的免费试用期:

然后,在所有要备份的客户端计算机上安装代理。您可以启动企业备份网络版,切换到"计算机"选项卡,然后选择手动或远程“安装客户端程序”

*远程安装的客户端程序将由中央机自动控制,但如果您选择手动方式,您仍然需要对其进行请求控制 。

安装客户端程序

之后,您可以转到“任务选项”卡并根据需要创建“新任务”。选项包括文件、系统、分区、磁盘和 SQL Server。这里选择SQL Server Backup开始。

sql服务器备份

如您所见,设置窗口分为3个步骤,您只需按照它完成备份即可:

“第一步:”点击“+添加计算机,”检测到有SQL实例的受控计算机,选择一台进行备份。

添加电脑

“第二步:”点击“+添加,”根据选择的计算机指定源数据。您可以一次选择多个数据库甚至实例。

选择数据库

第 3 步:单击复选框,然后在弹出窗口中单击“添加存储”。然后您可以输入网络共享或 NAS 的路径,并选择其中的一个文件夹作为目的地。

选择路径

您可以在下面看到另外两个可用选项:

“设置:”您可以在此处使用密码加密备份、启用电子邮件通知或选择压缩级别。

设置

“计划:”它为您提供了每天/每周/每月自动执行数据库备份的选项。在高级选项卡中,您还可以选择执行完整备份或差异备份。

日程

完成所有设置后,就可以“开始备份了”。您可以创建任务并立即执行,也可以只创建任务并稍后执行备份。

所有创建的任务都可以在“任务”选项卡下进行管理。您可以单击“备份”以手动运行它,或单击“高级”以编辑、恢复或删除它。

管理高级任务

结论

SQL Server 提供了强大的数据库备份命令,可以高效地完成多种类型的备份任务。然而,如果您希望以更加直观和便捷的方式执行这些操作,傲梅企业备份网络版是一个值得考虑的解决方案。

借助该软件,您不仅可以轻松实现自动备份,还可以备份整个实例的所有 SQL 数据库。同时,作为一款企业级端点备份工具,它还支持创建和集中管理多台客户端计算机的备份任务,为您的数据安全提供全面保障。