- 爱易网页
- 
                            MSSQL教程
- 请问下MSSQLSERVER数据库恢复有关问题,多谢 
日期:2014-05-18  浏览次数:20584 次 
                    
                        
                         请教下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命令将媒体集重新划分,但原备份集中的数据