SQL Server 高级技术(一) —— 数据备份与恢复
一、SQL Server 备份和恢复简介
SQL Server 支持的备份方式有四种,分别是完整备份、差异备份、事务日志备份以及文件和文件组备份。SQL Server 支持的恢复方式有三种,分别是完整恢复模式、大容量日志恢复模式和简单恢复模式。
二、SQL Server 数据库备份的 T-SQL 语句
EXEC sp_addumpdevice 'disk','bk_device','D:\db\bk\bk_device.bak'
-- 创建一个名为 bk_device 的备份设备
BACKUP DATABASE demo
TO bk_device -- 备份到设备
WITH DIFFERENTIAL -- 使用差异备份
BACKUP DATABASE demo
TO DISK = 'D:\db\bk\backup.bak'
BACKUP DATABASE demo
FILE = 'demo' -- 备份文件
TO bk_device -- 完整备份
BACKUP DATABASE demo
FILEGROUP = 'static_filegroup' -- 备份文件组
TO bk_device
BACKUP LOG demo -- 备份事务日志
TO bk_device
RESTORE HEADERONLY FROM bk_device -- 查看设备内容
RESTORE VERIFYONLY FROM bk_device -- 查看备份设备是否有误,默认只校验第一个备份集
RESTORE VERIFYONLY
FROM bk_device
WITH FILE = 2
RESTORE VERIFYONLY
FROM DISK = 'D:\db\bk\backup.bak'
二、SQL Server 数据库还原的 T-SQL 语句
还原数据库前的注意事项:
1、检查备份设备或文件,可使用 RESTORE VERIFYONLY 语句。
2、查看数据库是否有其他人正在使用,如果有人正在使用将无法还原数据库。
USE master
RESTORE DATABASE demo
FROM bk_device -- 从设备还原数据库
WITH FILE = 6 -- 使用第 6 个备份集来还原 demo 数据库
RESTORE DATABASE demo
FROM DISK = 'D:\db\bk\backup.bak' -- 从磁盘文件还原数据库
RESTORE DATABASE demo
FROM bk_device
WITH FILE = 1,NORECOVERY -- 还原差异备份
RESTORE LOG demo
FROM bk_device -- 还原日志备份
RESTORE DATABASE demo
FILEGROUP = 'PRIMARY'
FROM bk_device -- 从设备还原文件组
DECLARE @bk_date datetime2
RESTORE DATABASE demo
FROM bk_device,
WITH FILE = 17,NORECOVERY
MOVE 'demo' TO 'D:\new\demo_Data.mdf' -- 将文件还原到新位置
MOVE 'demo_log' TO 'D:\new\demo_log.mdf'
GO
RESTORE LOG demo
FROM bk_device
WITH FILE = 18, STOPAT= SELECT CONVERT(char(11),@bk_date,120)+CONVERT(char(12),@bk_date,114)