跳到主要内容

SQL备份数据库(BACKUP DATABASE)

提示
  1. 备份数据库语句BACKUP DATABASE语句在SQL中用于创建数据库的备份,可以指定备份文件的存储路径。
  2. 备份类型:SQL中有三种备份类型,包括完整备份(备份整个数据库)、差异备份(仅备份自上次完整备份后的更改)和事务日志备份(捕获所有自上次备份以来对数据库所做的更改)。
  3. 恢复数据库:使用RESTORE DATABASE命令可以从备份文件中恢复数据库,需要指定备份文件的存储路径。

在 SQL 中,BACKUP DATABASE 语句用于创建数据库备份。

示例

- 将数据库备份到指定路径
BACKUP DATABASE my_db
TO DISK = 'C:\my_db_backup.bak';

这里,SQL 命令在 C 盘内创建了名为 my_db_backup.bakmy_db 数据库的备份文件。

SQL 中的备份类型

SQL 中有三种类型的备份。它们是:

  • 完整备份
  • 差异备份
  • 事务日志(T-log)备份

完整备份

完整备份是对 SQL 服务器数据库的完整备份。

其语法是:

BACKUP DATABASE 数据库名
TO 媒介 = '路径\文件名';

这里,

  • 数据库名 是要备份的数据库名称
  • 媒介 指的是存储媒介,如磁盘、磁带或 URL
  • 路径 指的是备份文件应存储的文件夹
  • 文件名 是给备份文件的名称

例如,

- 将数据库备份到指定路径
BACKUP DATABASE my_db
TO DISK = 'C:\my_db_backup.bak';

这里,SQL 命令在 C 盘内创建了名为 my_db_backup.bakmy_db 数据库的备份文件。

注意: 通常习惯上使用 .bak 文件扩展名作为数据库备份文件的扩展名,但这并非强制性的。

差异备份

在 SQL 中,你还可以仅备份与上次完整备份相比的新更改,方法是使用 WITH DIFFERENTIAL 命令。例如,

-- 备份数据库的更改
BACKUP DATABASE my_db
TO DISK = 'C:\my_db_backup.bak'
WITH DIFFERENTIAL;

这里,SQL 命令只将新更改追加到之前的备份文件中。因此,这个命令可能工作得更快。

事务日志备份

事务日志备份会捕获自上次事务日志备份或数据库创建以来对数据库所做的所有更改。

它允许你创建数据库的时间点备份,并在发生故障时提供恢复数据库到特定时间点的方法。

其语法是,

BACKUP LOG 数据库名
TO 媒介 = '路径\文件名';

例如,

-- 将数据库日志备份到指定路径
BACKUP LOG my_db
TO DISK = 'C:\my_db_backup.bak';

从备份恢复数据库

要将备份文件恢复到数据库管理系统,我们可以使用 RESTORE DATABASE 命令。例如,

-- 从指定路径恢复数据库
RESTORE DATABASE my_db
FROM DISK = 'C:\my_db_backup.bak';

这里,SQL 命令将 my_db_backup.bak 文件恢复到名为 my_db 的数据库。