如何把数据库中的数据从日志中恢复到指定时间点状态

wisdom369 2003-09-26 09:52:15
如何把数据库中的数据从日志中恢复到指定时间点状态,不可以用log explorer,因为是远程恢复数据库,只可以用sql脚本,且数据库没有备份,
如果把数据库的备份文件拷贝到另一台机子上,又如何从备份文件中提取日志中指定时间的数据呢
...全文
112 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2003-10-15
  • 打赏
  • 举报
回复
备份方案参考:
http://expert.csdn.net/Expert/topic/2359/2359124.xml?temp=.9630091
wisdom369 2003-09-28
  • 打赏
  • 举报
回复
没人会吗?
yujohny 2003-09-27
  • 打赏
  • 举报
回复
--查看备份信息
RESTORE FILELISTONLY FROM DISK ='C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\db1_backup'

--还原旧的备份
RESTORE DATABASE db2 FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\db1_backup' with replace,norecovery,
move 'db1_Data' to 'C:\Program Files\Microsoft SQL Server\MSSQL\data\db2_data.mdf',
move 'db1_Log' to 'C:\Program Files\Microsoft SQL Server\MSSQL\data\db2_log.ldf'

其中db2_data.mdf和db2_log.ldf是要的还原数据库的位置,db1_Data和db1_Log是要还原数据库的逻辑文件名

--还原数据日志到时间点
restore log db2 from disk='db_log_backup' with stopat='2003/4/22 9:57'
伍子V5 2003-09-27
  • 打赏
  • 举报
回复
要想还原到某个时间点,只有先做了事务日志备份才可以

使用 STOPAT 语法还原到即时点和使用多个设备进行还原
下例将数据库还原到其在 1998 年 4 月 15 日中午 12 点时的状态,并显示涉及多个日志和多个备份设备的还原操作。

RESTORE DATABASE MyNwind
FROM MyNwind_1, MyNwind_2
WITH NORECOVERY
RESTORE LOG MyNwind
FROM MyNwindLog1
WITH NORECOVERY
RESTORE LOG MyNwind
FROM MyNwindLog2
WITH RECOVERY, STOPAT = 'Apr 15, 1998 12:00 AM'

wisdom369 2003-09-27
  • 打赏
  • 举报
回复
谢谢 yujohny(踏网无痕)
前面两步完成都很顺利,就是"还原数据日志到时间点"这一步好像有问题

restore log db2 from disk='db_log_backup' with stopat='2003/9/26 20:48'



还原出来的数据库里的数据和没有还原前的数据是一样的,我备份是采用完全备份的
也就是说db1库的某个表,在'2003/9/26 20:48'这个时间有100条记录,而在做完全备份前只有1条记录,在完成恢复操作后,在恢复库里也只有1条记录
这是怎么回事



litf 2003-09-26
  • 打赏
  • 举报
回复
顶!

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧