SQL数据库还原到某个时间点

上传人:206****923 文档编号:37506728 上传时间:2018-04-17 格式:DOCX 页数:3 大小:52.14KB
返回 下载 相关 举报
SQL数据库还原到某个时间点_第1页
第1页 / 共3页
SQL数据库还原到某个时间点_第2页
第2页 / 共3页
SQL数据库还原到某个时间点_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《SQL数据库还原到某个时间点》由会员分享,可在线阅读,更多相关《SQL数据库还原到某个时间点(3页珍藏版)》请在金锄头文库上搜索。

1、将将 SQLSQL 数据库还原到某个时间点数据库还原到某个时间点前提条件: 1、 完全备份的数据库要早于数据库还原到某个时间点的备份 2、 时间点处的日志要进行完整备份db2 中可以使得数据库回复到指定的时间点,sql server 数据库的恢复模型设置为完全模 式即 recovery model 为 full 或者 bulk copy 的时候,是可以从日志来恢复数据库的。实 际上日志中记录的一条一条的 transact sql 语句,恢复数据库的时候会 redo 这些 sql 语 句。 前提条件:mybbs 是数据库 test 中的一个表, 数据库 test 的 recovery model

2、 为 full。而 auto close,auto shrink 两个选项未选中。 数据库 test 的 data files 和 log files 均为默认的自动增长状态。 例子: A 2004/10/13,16:00 进行数据库备份,backup database test to disk=d:db1600.bak with format B 2004/10/14,13:00 对数据库进行了 update,delete 等操作; C 2004/10/15,18:00 使用 delete mybbs where id300 时,语句误写成 delete mybbs,因 而删除了表 mybb

3、s 中的所有数据。 现在在 c 点,c 点对数据库进行了误操作,我们希望数据库能够恢复到 c 之前的状态,比如 恢复到 10 月 15 日 17:50 分的状态。 要恢复数据库 b 点,使用的是 a 点备分的数据库 1600.bak;而使用的日志备分是最新的备 分 1820.log。因而进行如下操作: 一、一、完整备份数据库前,使数据库的恢复模式修改为完整恢复模式。完整备份数据库前,使数据库的恢复模式修改为完整恢复模式。 因为只有使用完整备份的数据库、日志才能恢复到某个时间点。使用 ALTER DATABASE 数据库名 SET RECOVERY FULL 将数据库设置为使用完整恢复模式。具体

4、语 句如下:Alter database test Set recovery full; 二、二、恢复过程的第一步是执行尾日志备份恢复过程的第一步是执行尾日志备份: 在发现问题时10 月 15 日 18:00,对数据库的日志进行完整备份。使用 with format 参数,具体语句如下: Backup database test to disk= d:1820.bak with format backup log test to disk=d:1820.logs with format *日志文件进行完整备份*三、三、最近日期的一个完整的数据库备份(这些文件通常使用最近日期的一个完整的数据库备

5、份(这些文件通常使用.bak.bak 为扩展名)为扩展名) ;你需要恢复;你需要恢复 这个完整的数据库备份。这个完整的数据库备份。 此例中就是恢复 10 月 13 日进行的数据库完整备份1600.bak。使用 with norecovery 参数,具体语句如下: restore database test from disk=d:db1600.bak with norecovery,replace 四、四、使用尾日志备份恢复数据库到某个时间点。使用尾日志备份恢复数据库到某个时间点。 此例中就是: 使用日志备份1820.bak 恢复数据库到 10 月 15 日 17:50 分。使用 with r

6、ecovery,stopat 参数,具体语句如下: restore log test from disk=d:1820.logs with recovery,stopat=10/15/2004 17:50 PM上面的三条 transact sql 语句的对应过程: 1.恢复数据库到 a 点; 2.执行 a-b 之间的 log 记录,把数据库恢复到 b 点.这样就恢复数据库到了指定的时间点。如果恢复不成功,可能的原因是:1.未使用正确的 备分数据库;2.数据库选项选中了 auto shrink.注意:NORECOVERY:告诉 SQL Server 你没有完成恢复数据库的过程,随后会出现恢复文件

7、。当 数据库处于这种状态时,数据库还不能使用,因而不允许建立连接。 RECOVERY:告诉 SQL Server 你已经完成数据库恢复过程,数据库即将准备就绪。这是默 认选项,也是最常用的选项。 STANDBY:告诉 SQL Server 当前数据库还未为完成恢复做好准备,随后可以使用日志文 件进行恢复。如果必要,你可以使用这个选项为恢复数据库建立连接。但是,如果当前 不存在连接,将来的事务日志只能应用于数据库。 一旦你使用 NORECOVERY 选项恢复了完整备份,你可以开始应用事务日志备份或差异备份出现的问题: 1、 还原过程中出现“restore log 异常终止” ,然后,数据库图标旁

8、边出现“正在还原” 。 解决方法:确定还原完毕,可以使用下面的语句; Restore database 数据库名 with recovery; 2、 还原过程中出现“因为数据库正在使用,所以无法获得对数据库的独占访问权。 ”或者 出现如图的提示解决方法:第一种方法, 关闭 SQL Server 服务,然后,重启 SQL Server 服务第二种方法,执行下面的 SQL 语句ALTER DATABASE datebase SET OFFLINE WITH ROLLBACK IMMEDIATE方法二方法二使用使用 LOGLOG ExplorerExplorer FileFile 用解压缩密码解开后,压缩包里也有一个注册机的打开 log explorer file=attach log file-选择服务器和登陆方式-connect- 选择数据库-attach-左面对话框中 browse-view log-就可以看到 log 记录了想恢复的话: 右键 log 记录 undo transation-选择保存文件名和路径-然后打开该文件 到查询分析器里执行 T-sql 代码就可以了例如 如果 log 是 delete table where .的话,生成的文件代码就是 insert table .

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号