急!一个数据库还原问题

时间:2022-12-13 11:41:51
早上数据库误操作了,部分数据冲了,想要恢复到指定时间点


1。数据库恢复模式是完整
2。误操作后,做了一个全备,然后再做了一个LOG备份
3。版本SQL SERVER 2005 SP4

问题发生后,做了一次还原,方式是从源数据库恢复,指定时间点,但是报错:
“System.Data.SqlClient.SqlError:无法打开备份设备 D:\abc.bak 。出现操作系统错误2(error not found)。”
疑为很早以前的备份被删除所以未找到。。。

请教一下接下去该如何操作,谢谢

19 个解决方案

#1


当你做全备之后,原有的日志备份顺序链已经被打破了。你的这个操作有误,应该先备份日志尾部,然后还原到误操作之前的时间。但是现在的话只能找到你以前的备份来还原了。

#2


如果有误操作之前有完整备份,可用日志还原的方法

如果之前没做过完整备份,用 log explorer 4.0以上版本可恢复

#3


引用 1 楼  的回复:
当你做全备之后,原有的日志备份顺序链已经被打破了。你的这个操作有误,应该先备份日志尾部,然后还原到误操作之前的时间。但是现在的话只能找到你以前的备份来还原了。

误操作后,我是先从源数据库恢复,但是报了错,这时候也没有其他备份文件,所以做了全备,再做日志备份。
你的意思是,当没有此前的全备文件的时候,也还是先做日志备份,再做全备,是吗?

#4


在误操作前需要有完整备份

再把误删除之后的日志重写,指定时间点

建议楼主用log explorer 4.0以上版本恢复试试,安全

操作和下载在网上可找到

#5


直接用log explorer恢复吧。你只是部分数据,直接log explorer找到误操作语句和被操作的数据,然后恢复回去。

#6


由于你的还原方式有误,估计除了用工具分析日志之外,很难有其他方法了。

#7


引用 2 楼  的回复:
如果有误操作之前有完整备份,可用日志还原的方法

如果之前没做过完整备份,用 log explorer 4.0以上版本可恢复

试了4.1版本,在WINDOWS SERVER 2008上装不上。。。

#8


我也受教了。

#9


引用 6 楼  的回复:
由于你的还原方式有误,估计除了用工具分析日志之外,很难有其他方法了。

我做了一个一摸一样的试验,
完整模式》找不到初时完整备份》误操作》从源数据库还原提示出错》先备份LOG》再全备》先恢复LOG肯定失败》先恢复全备》再恢复LOG提示该LSN太早,也无法恢复

也就是说首先要满足的条件是要有完全备份,在找不到的情况下,之后的还原方式无论有没有误都没有用,接下去我试试LOG EXPLORER

#10


Log Explorer不一定要裝在服務器上的,可以裝在其他機器,遠程去連接SQL Server即可.

#11


学习了,还望楼主把实验的结果发出来

#12


引用 10 楼  的回复:
Log Explorer不一定要裝在服務器上的,可以裝在其他機器,遠程去連接SQL Server即可.

Log Explorer分2个部分,1个部分是client,另一个部分是side of server,好比SQL查询分析器和SQL实例的关系
也就是说,光装client没用,需要在想读取LOG的服务器上安装side of server
----------------------------------
另外试验结果:Log Explorer 不可读取LDF(需要误操作后未做过备份操作才可读取),可读取备份LOG文件(无论是先全备还是先LOG备份)
总结:用Log Explorer确实可恢复,不过windows server 2008我没装上。

#13


看来很多人不是很清楚数据库的还原机制啊!数据库全备份需要早做,否则后悔莫及啊!

#14


可能你已经建好的数据库不存在了,就该早做备份。还原的时候要把数据库文件和日志文件的文件路径选正确,然后在选项中要钩选在数据库上强制还原

#15



完全备份 已经截断日志, 在备份日志  已经没有可备份日志。
在用日志备份还原可能已经不行了

2005 的完全备份已经包含日志 , 你从完全备份还原到及时点 看看行吗

如果不行  , log explore 看看

#16


备份还原机制,就是要一早制定维护方案的,比如定期完整备份和增量备份。
如果不早做备份也行的话,又何必有备份,直接只要还原功能就OK了。
备份还原是一套预险机制,不是用来提供万能后悔药的。
这个教训楼主是吃定了。

#17


怎么你没有做定期备份的方案呢?

#18


05可以用工具恢复 

#19


用英文文件夹,备份名称加.bak

#1


当你做全备之后,原有的日志备份顺序链已经被打破了。你的这个操作有误,应该先备份日志尾部,然后还原到误操作之前的时间。但是现在的话只能找到你以前的备份来还原了。

#2


如果有误操作之前有完整备份,可用日志还原的方法

如果之前没做过完整备份,用 log explorer 4.0以上版本可恢复

#3


引用 1 楼  的回复:
当你做全备之后,原有的日志备份顺序链已经被打破了。你的这个操作有误,应该先备份日志尾部,然后还原到误操作之前的时间。但是现在的话只能找到你以前的备份来还原了。

误操作后,我是先从源数据库恢复,但是报了错,这时候也没有其他备份文件,所以做了全备,再做日志备份。
你的意思是,当没有此前的全备文件的时候,也还是先做日志备份,再做全备,是吗?

#4


在误操作前需要有完整备份

再把误删除之后的日志重写,指定时间点

建议楼主用log explorer 4.0以上版本恢复试试,安全

操作和下载在网上可找到

#5


直接用log explorer恢复吧。你只是部分数据,直接log explorer找到误操作语句和被操作的数据,然后恢复回去。

#6


由于你的还原方式有误,估计除了用工具分析日志之外,很难有其他方法了。

#7


引用 2 楼  的回复:
如果有误操作之前有完整备份,可用日志还原的方法

如果之前没做过完整备份,用 log explorer 4.0以上版本可恢复

试了4.1版本,在WINDOWS SERVER 2008上装不上。。。

#8


我也受教了。

#9


引用 6 楼  的回复:
由于你的还原方式有误,估计除了用工具分析日志之外,很难有其他方法了。

我做了一个一摸一样的试验,
完整模式》找不到初时完整备份》误操作》从源数据库还原提示出错》先备份LOG》再全备》先恢复LOG肯定失败》先恢复全备》再恢复LOG提示该LSN太早,也无法恢复

也就是说首先要满足的条件是要有完全备份,在找不到的情况下,之后的还原方式无论有没有误都没有用,接下去我试试LOG EXPLORER

#10


Log Explorer不一定要裝在服務器上的,可以裝在其他機器,遠程去連接SQL Server即可.

#11


学习了,还望楼主把实验的结果发出来

#12


引用 10 楼  的回复:
Log Explorer不一定要裝在服務器上的,可以裝在其他機器,遠程去連接SQL Server即可.

Log Explorer分2个部分,1个部分是client,另一个部分是side of server,好比SQL查询分析器和SQL实例的关系
也就是说,光装client没用,需要在想读取LOG的服务器上安装side of server
----------------------------------
另外试验结果:Log Explorer 不可读取LDF(需要误操作后未做过备份操作才可读取),可读取备份LOG文件(无论是先全备还是先LOG备份)
总结:用Log Explorer确实可恢复,不过windows server 2008我没装上。

#13


看来很多人不是很清楚数据库的还原机制啊!数据库全备份需要早做,否则后悔莫及啊!

#14


可能你已经建好的数据库不存在了,就该早做备份。还原的时候要把数据库文件和日志文件的文件路径选正确,然后在选项中要钩选在数据库上强制还原

#15



完全备份 已经截断日志, 在备份日志  已经没有可备份日志。
在用日志备份还原可能已经不行了

2005 的完全备份已经包含日志 , 你从完全备份还原到及时点 看看行吗

如果不行  , log explore 看看

#16


备份还原机制,就是要一早制定维护方案的,比如定期完整备份和增量备份。
如果不早做备份也行的话,又何必有备份,直接只要还原功能就OK了。
备份还原是一套预险机制,不是用来提供万能后悔药的。
这个教训楼主是吃定了。

#17


怎么你没有做定期备份的方案呢?

#18


05可以用工具恢复 

#19


用英文文件夹,备份名称加.bak

#20