还原数据库:教你完全还原数据库来源: 发布时间:星期五, 2008年9月26日 浏览:166次 评论:0
权限
如果不存在要还原的数据库,则用户必须有CREATEDATABASE权限才能执行RESTORE。如果存在该数据库,则RESTORE权限默认授予sysadmin和dbcreator固定服务器角色成员以及该数据库的所有者(dbo)。 RESTORE权限被授予那些成员资格信息始终可由服务器使用的角色。因为只有在固定数据库可以访问且没有损坏时(在执行RESTORE时并不会总是这样)才能检查固定数据库角色成员资格,所以db_owner固定数据库角色成员没有RESTORE权限。 此外,用户可以为媒体集、备份集或两者指定密码。如果为媒体集指定了密码,则用户若只是适当的固定服务器和数据库角色成员还不足以执行备份。用户还必须提供媒体密码才能执行这些操作。同样,除非在还原命令中指定正确的媒体集密码和备份集密码,否则不能执行还原操作。 在BACKUP语句中,定义备份集密码和媒体集密码为可选功能。使用密码可防止利用SQLServer2000工具未经授权地执行还原操作和在媒体中添加备份集,但是,密码不能防止通过FORMAT选项重写媒体。 因此,尽管使用密码对防止利用SQLServer工具未经授权地访问媒体内容有帮助,但密码不能防止媒体内容被破坏。密码不能完全防止未经授权地访问媒体内容,原因在于备份集中的数据没有加密,理论上可以被专为此目的创建的程序所检查。对于安全性至关重要的场合,防止未经授权的个人访问媒体非常重要。 指定密码时不限定使用者的做法是错误的。 说明所有的示例均假定已执行了完整数据库备份。 A.还原完整数据库 说明MyNwind数据库仅供举例说明。 下例显示还原完整数据库备份。 RESTOREDATABASEMyNwind FROMMyNwind_1 B.还原完整数据库备份和差异备份 下例还原完整数据库备份后还原差异备份。另外,下例还说明如何还原媒体上的另一个备份集。差异备份追加到包含完整数据库备份的备份设备上。 RESTOREDATABASEMyNwind FROMMyNwind_1 WITHNORECOVERY RESTOREDATABASEMyNwind FROMMyNwind_1 WITHFILE=2 C.使用RESTART语法还原数据库 下例使用RESTART选项重新启动因服务器电源故障而中断的RESTORE操作。 --ThisdatabaseRESTOREhaltedprematurelyduetopowerfailure. RESTOREDATABASEMyNwind FROMMyNwind_1 --HereistheRESTORERESTARToperation. RESTOREDATABASEMyNwind FROMMyNwind_1WITHRESTART D.还原数据库并移动文件 下例还原完整数据库和事务日志,并将已还原的数据库移动到C:\\ProgramFiles\\MicrosoftSQLServer\\MSSQL\\Data目录下。[Page] RESTOREDATABASEMyNwind
FROMMyNwind_1 WITHNORECOVERY, MOVE\'MyNwind\'TO\'c:\\ProgramFiles\\MicrosoftSQLServer\\ MSSQL\\Data\\NewNwind.mdf\',
MOVE\'MyNwindLog1\'TO\'c:\\ProgramFiles\\MicrosoftSQLServer\\ MSSQL\\Data\\NewNwind.ldf\' RESTORELOGMyNwind FROMMyNwindLog1 WITHRECOVERY E.使用BACKUP和RESTORE创建数据库的复本 下例显示使用BACKUP和RESTORE语句创建Northwind数据库的复本。MOVE语句使数据和日志文件还原到指定的位置。RESTOREFILELISTONLY语句用于确定待还原数据库内的文件数及名称。该数据库的新复本称为TestDB。有关更多信息,请参见RESTOREFILELISTONLY。 BACKUPDATABASENorthwind TODISK=\'c:\\Northwind.bak\' RESTOREFILELISTONLY FROMDISK=\'c:\\Northwind.bak\' RESTOREDATABASETestDB FROMDISK=\'c:\\Northwind.bak\' WITHMOVE\'Northwind\'TO\'c:\\test\\testdb.mdf\', MOVE\'Northwind_log\'TO\'c:\\test\\testdb.ldf\' GO F.使用STOPAT语法还原到即时点和使用多个设备进行还原 下例将数据库还原到其在1998年4月15日中午12点时的状态,并显示涉及多个日志和多个备份设备的还原操作。 RESTOREDATABASEMyNwind
FROMMyNwind_1,MyNwind_2 WITHNORECOVERY RESTORELOGMyNwind FROMMyNwindLog1 WITHNORECOVERY RESTORELOGMyNwind 0
相关文章
读者评论
发表评论 |