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

(100分)sql server 2005数据库备份与恢复问题
sql server 2005中,在恢复数据库时选择了“使数据库处于只读模式。撤消未提交的事务,但将撤消操作保存在备用文件中,以便能够还原恢复结果。”选项。恢复完成后,数据库处于“备用/只读”状态,如何变成正常状态?
另:请问“备份集过期时间”的作用是什么?
谢谢!

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

------解决方案--------------------
右键制定数据库-属性-选项-状态
将“数据库为只读”设为false
------解决方案--------------------
SQL code
-- 再执行一个下面的语句就好了
RESTORE DATABASE 库名
WITH RECOVERY;

------解决方案--------------------
SQL code
use master    --不能在要还原的数据库下执行
go
RESTORE DATABASE databasename WITH RECOVERY

------解决方案--------------------
引用楼主 a13951845000 的帖子:
另:请问“备份集过期时间”的作用是什么?
谢谢!

------解决方案--------------------
探讨
SQL code
-- 再执行一个下面的语句就好了
RESTORE DATABASE 库名
WITH RECOVERY;



------解决方案--------------------
探讨
首先谢谢各位,恢复数据库的问题已解决。
to orochi_gao :
“即可指定备份集过期并可被其他备份集覆盖的时间”具体体现是什么?

------解决方案--------------------
探讨
首先谢谢各位,恢复数据库的问题已解决。
to orochi_gao :
“即可指定备份集过期并可被其他备份集覆盖的时间”具体体现是什么?

------解决方案--------------------
探讨
to orochi_gao :
谢谢!
系统就会自动删除它备份过期了的备份吗?

------解决方案--------------------
use master go
RESTORE DATABASE 数据库名 WITH RECOVERY
------解决方案--------------------
为什么用这个选项?有什么好处么?直接用recovery或者norecovery呢?
------解决方案--------------------
备份集过期时间——只需要输入特定的天数或者输入某个具体日期(如2009年12月30日),即可指定备份集过期并可被其他备份集覆盖的时间。
 
------解决方案--------------------
SQL Server 2000中存在的许多的备份和恢复特性都同样保留在了SQL Server 2005中,但是有一些新的提高同样值得我们关注。

镜像备份

SQL Server 2005让你可以创建镜像备份。镜像备份允许你为备份文件创建两个或者四个同样的拷贝,以防备其中的某一个集合损坏的情况。镜像具有同样的内容,所以你可以在某个文件被损坏的时候修复这个文件。

假设你有镜像集合1和镜像集合2,两个集合都有完全的备份和事务日志备份。如果镜像集合1的完全备份发生了损坏,你可以通过镜像集合2来进行恢复,然后对镜像集合1持续使用事务日志备份。

在线恢复

你还可以进行在线恢复,但是,不要太激动。从名字上看,似乎是你可以在恢复的同时,完全保持数据库启动、运行和保证用户登录到数据库中——但是实际情况不是的。在线恢复允许你在保持数据库在线的情况下恢复一个离线的文件组。所以你可以保障数据库的大部分在工作,但是你想要恢复的文件组必须是离线的。

注意:要运行这个特性,你必须使用SQL Server 2005企业版,并且主要的文件组不能是离线的。另外,你必须确保你的应用程序你可以使文件组离线,并且仍然可以起作用。通过仔细的计划,这个特性是非常有用的,但是也许很多人不会使用这个功能。

只拷贝备份

我认为一个很有用的特性就是只拷贝备份,它让你可以在备份过程中,在不打乱其他备份文件的顺序的情况下进行拷贝。使用SQL Server 2000的时候,如果你在一天的中间运行了一个特殊的完全备份,为了恢复,你必须使用完全备份和在完全备份之后发生的所有事务日志。这个新的特性允许你创建一个只对备份的拷贝,然后使用正常的完全拷贝来达到恢复的目的。

对于不同的备份,在处理方式上没有任何的改变。对于事务日志备份,你也可以只对备份进行拷贝——同样是不需要打乱其他备份文件的顺序。任何通过这个选项创建的备份都在备份表中标记为copy_only

部分备份

你也许认为部分备份与差别备份一样——但是他们不一样。部分备份是将所有的文件组,除了那些标记为只读的文件组之外(除非是指定的),进行备份。对于只读数据库,只有基本文件组被备份。如果你在只读文件组中有很多的静态数据,那么用这种方式来备份你的数据库就要快得多。

从以前的版本中恢复

SQL Server 2005中有一项保留的完全相同的特性就是从以前的版本中恢复数据库的能力;你可以从SQL 7.0和2000中恢复数据库备份。(然而,仍然没有办法从6.5版本中恢复备份。)

注:不能从早期版本中恢复系统数据库,对于SQL Server 2005也一样。
------解决方案--------------------
WTF! 这玩意手册不是有么?

只有过了这个天数的备份文件才会被覆盖,否则会有提示,默认 0 天,默认没改的话不提示而直接覆盖。
SQL Server 2005 Books Online (November 2008) 原文如下: