在 SQL 中,`BACKUP DATABASE` 语句用于创建数据库备份。
示例
–- backup database to the given path
BACKUP DATABASE my_db
TO DISK = 'C:\my_db_backup.bak';
这里,SQL 命令在 **C** 盘中创建了一个名为 `my_db_backup.bak` 的 `my_db` 数据库备份文件。
SQL 中的备份类型
SQL 中有三种备份类型。它们是
- 完整备份
- 差异备份
- 事务日志 (T-log) 备份
完整备份
完整备份是对 SQL Server 数据库的完整备份。
其语法为
BACKUP DATABASE database_name
TO medium = 'path\file_name';
这里,
- `database_name` 是要备份的数据库的名称
- `medium` 指的是存储介质,例如磁盘、磁带或 URL
- `path` 指的是备份文件应存储的文件夹
- `file_name` 是赋予备份文件的名称
例如,
–- backup database to the given path
BACKUP DATABASE my_db
TO DISK = 'C:\my_db_backup.bak';
这里,SQL 命令在 **C** 盘中创建了一个 `my_db` 数据库的备份文件(名为 `my_db_backup.bak`)。
注意: 使用 **.bak** 文件扩展名作为数据库备份文件是常见的惯例,但这并非强制性。
差异备份
在 SQL 中,您还可以使用 `WITH DIFFERENTIAL` 命令仅备份相对于上次完整备份的新更改。例如,
-- backup the changes made to the database
BACKUP DATABASE my_db
TO DISK = 'C:\my_db_backup.bak'
WITH DIFFERENTIAL;
这里,SQL 命令仅将新更改追加到先前的备份文件中。因此,此命令可能执行得更快。
事务日志备份
事务日志备份捕获自上次事务日志备份或数据库创建以来对数据库所做的所有更改。
它允许您创建数据库的时间点备份,并提供了一种在发生故障时将数据库恢复到特定时间点的方法。
其语法是:
BACKUP LOG database_name
TO medium = 'path\filename';
例如,
-- backup database log to the given path
BACKUP LOG my_db
TO DISK = 'C:\my_db_backup.bak';
从备份还原数据库
要将备份文件还原到数据库管理系统,我们可以使用 `RESTORE DATABASE` 命令。例如,
-- restore database from given path
RESTORE DATABASE my_db
FROM DISK = 'C:\my_db_backup.bak';
这里,SQL 命令将 `my_db_backup.bak` 文件还原到名为 `my_db` 的数据库。