sql server数据库还原到任意时间点(适用新手学习)
对于许多新手来说,如果不小心对数据库进行误操作,往往会感觉到仿佛天塌下来一
样。如果在日常工作出现这样的情况,绝对不能慌张,要静下心下来寻找问题的解决办法,
不能病急乱投医,胡乱操作。如果有数据管理员,一定要及时联系数据管理员让他们处理。
如果没有,也可以按本文介绍的方法去处理,这种方法的前提条件:
之前有完整的备份
上次备份到现在为止没有进行日志删除工作(除非删除时进行了日志备份)
为了保证操作的工作能顺利进行还需要进行一下工作
处理之前一定要做好数据及其日志的备份
按本文的介绍进行演练一遍,保证自己已经掌握了该方法,再进行生产数据库的
还原工作
一、创建测试数据库
use master
CREATE DATABASE TestDB
ON
( NAME='TestDB',
FILENAME='D:\database\TestDB.mdf' --数据库文件存放的路径
)
二、创建测试表
USE TestDB
CREATE TABLE T_Employees
(
EmpID VARCHAR(20) NOT null,
EmpName VARCHAR(20) null,
ChargID VARCHAR(20) null
PRIMARY KEY ( EmpID )
)
三、插入测试数据
insert into T_Employees values
('1001','王明',NULL),
('1002','李怡',NULL),
('1003','张劲松','1001'),
('1004','张明新','1001'),
('1005','王路','1001'),
('1006','李丽','1003'),
('1007','张倩','1003'),
('1008','李丹','1004'),
('1009','秦鑫','1004'),
('1010','张鹭','1004')
四、操作过程
操作记录过程
--2018-11-06 21:49
update T_Employees set EmpName='李佳怡' where EmpID='1002'
--2018-11-06 21:51
update T_Employees set ChargID='1004' where EmpID='1008'
--2018-11-06 21:53
insert into T_Employees values ('1000','魏伟',NULL)
--2018-11-06 21:56
delete T_Employees
--该语句操作错误,本来打算删除EmpID='1009'的记录
五、备份数据库
分离数据库,在硬盘中找到实体文件*.mdf,*.ldf文件,并拷贝出来,如图所示:
如果没有选中删除连接,可能会报如下错误信息:
分离成功后对数据库和日志文件进行备份(对于新手有必要拷到其他盘符中)
ctrl+v ctrl+c后
备份完成后,再附加数据
返回如下界面,按确定按钮,数据库附件成功
六、备份日志
备份数据库日志,操作如图
七、删除数据库(也可以直接到第八步)
备份数据库日志后,可以直接删除数据库。
八、还原数据库
用以前完整备份的数据库备份文件还原
【常规】页设置如下:
【选项】页设置如下: