日期:2014-05-18  浏览次数:20477 次

请教下MSSQLSERVER数据库恢复问题,谢谢
请教下:

  MSSQLSERVER数据库在没有备份的情况下,能否恢复到某个时间点的数据;

  我的程序在运行过程意外的删掉了数据库里的重要数据,删除前没有备份,现在有没有什么办法恢复数据,怎么操作。

  谢谢各位了



------解决方案--------------------

SQL备份 
--------------- 
1、SQL数据库恢复模型 
-------------------------------------------------------

--------------- 
1)完全恢复模型 
----------------- 
(1)备份时要备份数据库的数据文件和日志文件 
(2)还原时使用数据库的备份的数据文件副本和全部日志信息来

恢复数据库。 
(3)能还原全部数据,并可以将数据库恢复到任意指定的时刻。 
(4)为保证实现即时点恢复,对数据库的所有*作都将完整地记入

日志,这样,日志占用空间较大,对性能也有所影响。 
------------------ 
(2)大容量日志记录恢复模型 
------------------ 
(1)备份时要备份数据库的数据文件和日志文件 
(2)还原时使用数据库的备份的数据文件副本和全部日志信息来

恢复数据库。 
(3)日志中不记录*作细节(如select into、create index等)

,而只记录*作的最终结果,因此占用日志空间小。 
(4)只支持将数据库还原到事务日志备份的时刻,而不支持即时

点恢复,因此可能产生数据丢失。 
------------------- 
(3)简单恢复模型 
------------------- 
(1)备份时只备份数据文件,还原时也用备份的数据文件恢复数

据库。 
(2)只能将数据恢复到数据文件备份的时刻,可能产生最多的数

据丢失。 
(3)不适于生产系统和大规模*作环境下选用。 
----------------------------------------- 
alter database d1 set recovery simple --设置数据库恢

复模型 
alter database d1 set recovery bulk_logged 
alter database d1 set recovery full 
-------------------------------------------------------

--------------- 
2、备份设备 
-------------------------------------------------------

--------------- 
1)物理设备 
--------------------------- 
disk:支持本地磁盘或者网络备份 
tape:支持磁带机备份 
name pipe:支持第三方备份软件 
--------------------------- 
2)逻辑设备 
--------------------------- 
永久备份文件:可以重复使用,应该在备份前创建。 
临时备份文件:用于一次性备份,在备份时创建。 
------------------------------------------------- 
exec sp_addumpdevice 'disk','bak2','e:\back_device

\bak2.bak' --创建永久磁盘备份设备 
exec sp_addumpdevice 'disk','bak3','e:\back_device

\bak3.bak' 
-------------------------------------------------------

--------------- 
exec sp_addumpdevice 'disk','bak4','\\sv2\backup

\bak4.bak' --创建网络永久磁盘备份设备 
exec sp_addumpdevice 'disk','bak5','\\sv2\backup

\bak5.bak' 
-------------------------------------------------------

--------------- 
exec sp_dropdevice 'bak5' --删除备份设备 
-------------------------------------------------------

--------------- 
backup database d3 to bak3 --将数据库备份到备份设备 
backup database d4 to bak4 
-------------------------------------------------------

--------------- 
restore headeronly from bak2 --查看备份设备中的内容 
-------------------------------------------------------

--------------- 
backup database d3 to disk='e:\back_file\d3.bak' --将

数据库备份到临时备份文件 
backup database d4 to disk='e:\back_file\d4.bak' 
-------------------------------------------------------

--------------- 
restore database d3 from bak3 --从备份设备还原

数据库
restore database d4 from disk='e:\back_file\d4.bak' --从

备份文件还原数据库 
-------------------------------------------------------

--------------- 
3、使用多个备份文件存储备份 
-------------------------------------------------------

--------------- 
1)SQL可同时向多个备份文件进行写*作。如果把这些文件放到多

个磁带机或磁盘中,则可提高备份速度。 
2)这多个备份文件必须用同业型的媒体,并放到一个媒体集中。 
3)媒体集中的文件必须同时使用,而不能单独使用。 
4)可以通过format命令将媒体集重新划分,但原备份集中的数据