SQL Server 2016 bak文件还原

一、概念

完整备份:备份整个数据库 差异备份:基于上一个完整备份 事务日志备份:基于前一个完备+日志备份(确保还原数据库到某个时间点)

二、还原步骤

前提:准备好备份文件

1. 完整备份还原
    方法一:选择【数据库】–>【还原数据库】 方法二:选择【要还原的数据库】—>【任务】—>【还原】—>【数据库】 1)在还原数据库常规选项中,选择设备,添加你的备份文件,若需要将数据库备份还原为新的数据库,将目标数据库修改为你的新数据库名称 2) 在还原数据库文件选项中,可以修改你还原数据库的存放路径,若修改了,在差异备份注意修改备份路径与当前修改路径一致 3)在还原数据库选项中,若是在原来数据库上进行还原,勾选覆盖现有数据库,还原新数据库可勾可不勾,点击【确定】还原成功即可。 重点:若进行完备后还需进行其他还原,需要选择恢复状态为:RESTORE WITH NORECOVERY)!若无默认选第一个(保持源数据库还原状态视个人情况来选择) PS: 若不慎进行误操作,使得数据库一直处于还原状态,但是又不想继续还原其余备份,RESTORE database dbname with recovery恢复数据库为可访问状态。
2. 差异备份还原

前提:已经进行了完备还原,并且数据库恢复状态是NORECOVERY 1)选择【数据库】—>【任务】—>【还原】—>【文件和文件组】 2)选择源设备,添加差异备份文件 3)选项中选择覆盖现有数据库,完备若修改了还原存储路径,此处记得修改,若后面继续进行其他备份,恢复状态选第二个,否默认选第一个,点击【确定】还原成功即可。 小知识:笔者有遇到一种情况:拷贝服务器上的bak文件还原到本地,差异备份将会报错,具体报错位置在于无法修改数据库文件的路径,即使使用默认路径也无法进行还原,原因未明

后来有大佬告诉我,直接用语句执行比较快~

restore database  from disk=xxxxxxxxx.bak 
with norecovery,stats=5,
move 逻辑文件名 to 还原后数据库数据文件存放路径逻辑文件名.mdf,
move 逻辑文件名_log to 还原后数据库日志文件存放路径逻辑文件名_log.ldf
3. 事务日志备份还原

假如有某数据库每2个小时进行一次日志备份,7点到11点有2个日志备份,要想还原到10点30分的数据,就得先还原7点到9点的日志备份,再还原9点到11点的日志备份。 1)选择【数据库】—>【任务】—>【还原】—>【事务日志】 2)选择源设备,添加日志备份文件 3)选择要还原的具体时间点,点击【确定】 4)若后面继续进行其他备份,恢复状态选第二个,否默认选第一个,点击【确定】,还原成功后数据库便处于可用状态 此文作为学习笔记,如有不对的地方,还望各位提出来,感谢!若能帮到大家不胜荣幸。

经验分享 程序员 微信小程序 职场和发展