sql server

进行差异备份还原时 必须先进行完整备份的还原 再进行差异备份的还原

注意:1 差异备份还原中, 如果不进行完整备份的还原 直接进行差异备份的还原会报不到能前滚的事务文件

2 差异备份还原中,如果在进行完整备份还原时 选择的恢复状态是restore with recovery 则在进行差异备份还原时选择restore with recovery 会报错

3	  差异备份还原中,进行完整备份还原时 恢复状态必须选择 restore  with No Recovery

GUI备份

差异备份及还原 正常流程

step 1 完整备份

常规下

右键需要备份的数据库-

选择列表中的任务-

选择任务中的备份-

在弹出的弹出框中指定需要备份的数据库-

备份类型选择完整-

备份集填写备份文件的名称-说明–
在目标中 删除原有的指向路径-

点击添加-选择磁盘中要保存文件的路径–并且设置文件名加后缀.bak

选项

在可靠性中选择 备份后验证完整性

点击确定进行备份

step 2 差异备份

常规下

右键需要备份的数据库-

选择列表中的任务-

选择任务中的备份-

在弹出的弹出框中指定需要备份的数据库-

备份类型选择差异-

备份集填写备份文件的名称-说明–
在目标中 删除原有的指向路径-

点击添加-选择磁盘中要保存文件的路径–并且设置文件名加后缀.bak

选项

在可靠性中选择 备份后验证完整性

点击确定进行备份

step 3 进行完整备份的还原

常规

右键需要还原的数据库-

选择任务-选择·还原-选择数据库-

选择要还原的目标数据库(可以自定义数据库名 则新建数据库)-

还原的源选择 设备-

备份介质选择文件-找到之前备份好的完整备份文件点击确定

勾选刚才添加进来的文件

选项

还原选项中勾选覆盖现有数据库

恢复状态勾选 restore with norecovery

点击确定回复成功

step 4 进行差异备份的还原

常规

右键需要还原的数据库-

选择任务-选择·还原-文件和文件组

选择要还原的目标数据库

还原的源选择 设备-

备份介质选择文件-找到之前备份好的差异备份文件点击确定

勾选添加进来的差异文件

选项

恢复状态

restore with recovery

点击确定

恢复成功!

完整备份加还原流程

step 1 完整备份

常规下

右键需要备份的数据库-

选择列表中的任务-

选择任务中的备份-

在弹出的弹出框中指定需要备份的数据库-

备份类型选择完整-

备份集填写备份文件的名称-说明–
在目标中 删除原有的指向路径-

点击添加-选择磁盘中要保存文件的路径–并且设置文件名加后缀.bak

选项

在可靠性中选择 备份后验证完整性

点击确定进行备份

step2 进行完整备份的还原

常规

右键需要还原的数据库-

选择任务-选择·还原-选择数据库-

选择要还原的目标数据库(可以自定义数据库名 则新建数据库)-

还原的源选择 设备-

备份介质选择文件-找到之前备份好的完整备份文件点击确定

勾选刚才添加进来的文件

选项

还原选项中勾选覆盖现有数据库

恢复状态勾选 restore with recovery

点击确定回复成功

命令行备份

完整备份

备份

USE [master];
GO
BACKUP DATABASE [SQLTestDB]
TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\SQLTestDB.bak' 
WITH NOFORMAT, NOINIT,
NAME = N'SQLTestDB-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10;
GO

还原

USE [master];
GO
RESTORE DATABASE [SQLTestDB] 
FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\SQLTestDB.bak' WITH  FILE = 1, NOUNLOAD, STATS = 5;
GO