数据库数据恢复步骤
1、通过日志恢复SQLSERVER2005数据(也可通过LogExplorer工具查找进行恢复数据)
(A)......通过日志和时间点来恢复数据的前提条件:数据库的故障恢复改为非简单模式,去掉自动关闭和自动收缩两个选项,如果是简单模式:类似下面的语句 *** 作数据就不会记录到日志中:select*intotfrom[表名].【采用LogExplorer工具可以在线 *** 作,通过恢复日志(指定时间点恢复)来恢复数据,必须停止数据库或者再另一个数据库恢复(前提是必须有一个完全备份和日志备份)】
这时为保证数据的完整要将数据库的恢复模式改成“完整.
1.1、这时对数据库事务日志做备份(注意,如果没做个数据库完整备份,是不能做事务日志备份的)
这时新建一个数据库zp(将以前的数据库改名),恢复数据库
这时我们看到,有两个还原的数据库备份,因为我对zp数据库备份了两次,两次的备份的数据文件都一样。这里我们选择最近时间的备份默认在数据库的设置如下:是追加到备份集里,所以会有两个备份。
同时,在”选项“里设置”不回滚“事务,
注意:通过事务日志还原数据库,必须选择"不回滚"事务
确定后:出现下面情况:
这时发现,数据库一直是”正在还原“,这时还原数据库事务日志,
1.2、“常规”里选择时间,(刚删除的时间)
1.3、“选项”里将恢复状态设置为”回滚未提交“事务
确定后,查询数据库,发现数据回来了.
2、无日志的数据恢复
2.1.新建一个同名的数据库
2.2再停掉sqlserver(注意不要分离数据库)
2.3用原数据库的数据文件覆盖掉这个新建的数据库
2.4再重启sqlserver
2.5此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)
2.6完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用
数据库的脚本创建一个新的数据库,并将数据导进去就行了.
USEMASTERSP_CONFIGURE'ALLOWUPDATES',1RECONFIGUREWITHOVERRIDE
UPDATESYSDATABASESSETSTATUS=32768WHERENAME='数据库名'
sp_dboption'数据库名','singleuser','true'
DBCCCHECKDB('数据库名')
updatesysdatabasessetstatus=28wherename='数据库名'
sp_configure'allowupdates',0reconfigurewithoverride
sp_dboption'数据库名','singleuser','false'
遇到损坏或者错误的master数据库是最难解决情况之一。Master数据库包含了SQL Server需要的关键信息。如果master数据库出错,那么SQL Server就不能启动。要在这种情况下还原master数据库,可以按照下面这些步骤来从灾难中恢复过来: 1. 使用\Program Files\Microsoft SQL Server\80\Tools\Binn目录下的rebuidm.exe文件重建master数据库。重建master数据库可以使你的数据库文件完整无缺。经常把数据和日志文件备份到一个单独的目录是个不错的主意。 2. 使用-m参数启动SQL Server,这样可以以单用户模式重新启动SQL Server。 3. 从最近一次已知最好的备份来还原master数据库。 4. 核实master数据库是不是已经成功还原:确认所有数据库都已恢复正常运行。从最近一次已知最好的备份来还原msdb数据库。 5. 以普通模式停止和启动SQL Server。 6. 向生产用户开放数据库。 如果这样做没有效,那么重建master数据库然后附加这个数据库。这也是DBA的任务之一,当然你并不希望经常这样做。如果master数据库出现问题,那么服务器上所有的数据库都会出现问题。 总的来说,恢复时要完成的第一个步骤就是安装一个新的master数据库,使服务器至少能够启动。在此基础上,就可以还原真正的master数据库了。双击了rebuildm.exe之后,将启动rebuild master实用程序,它需要三个参数: ① 要恢复的服务器名称。 ② Master数据库在原来的安装程序中的位置,如果SQL Server的版本为SP2,这个位置应当是安装CD的x86\data目录(在更早的版本中,由于存在程序错误,有可能需要将这个data目录拷贝到硬盘驱动器或者网络驱动器上)。 ③ 服务器的排序规则。 这个重建过程将会重新创建全部四个系统数据库以及Northwind和Pubs,接着对服务器进行配置。整个重建过程大约需要数分钟,如果以前使用service pack对服务器进行了升级,将有可能花费更长时间。 恢复过程的第二个步骤是使用服务器管理或者企业管理器来启动服务器。 依赖于你的安全性配置,企业管理器很有可能没有连接到服务器的权限。重建master数据库将会丢掉除了sa以外的所有用户登录,并把sa的空口令重置为空。如果要调整企业管理器的连接配置,以便作为sa以空口令连接到服务器,可以编辑SQL Server的注册属性。不要担心sa的空口令,因为我们很快就会恢复真正的master数据库。一旦服务器再次运行,你就会发现所有的用户数据库都不见了,因为重建的master数据库没有包含有关这些用户数据库的信息。恢复过程的第三个步骤就是将服务器置于单用户模式,以便还原master数据库。在企业管理器中,要完成以下步骤: ① 选择服务器。 ② 使用右键单击它,并从d出的快捷方式菜单中选择“属性”菜单项,打开“服务器属性”对话框。 ③ 单击“启动参数”按钮。 ④在“参数”文本框中输入-m,然后按下“添加”按钮。 ⑤ 按下“确定”按钮关闭“启动参数”对话框,然后关闭“服务器属性”对话框。 ⑥ 关闭企业管理器。 警告:在SQL Server实例处于单用户模式时,不要使用企业管理器。这样做有可能会锁定该实例,使它进入不能接受其他连接的状态。 ⑦ 使用SQL Server服务器管理器停止并重新启动SQL Server实例。 恢复损坏的master数据库的第四个步骤才是进行真正的还原。因为SQL Server现在处于单用户模式,所以必须使用查询分析器来完成这一步骤。如果试图在企业管理器中还原master数据库,将会产生严重的问题。在查询分析器中进行还原时,需要执行下面的命令: RESTORE DATABASE master FROM DISK=’systembackup’ WITH FILE=1 执行结果如下: The master database has been successfully restored. Shutting down SQL Server. SQL Server is terminating this process. 关闭查询分析器,并使用SQL Server的服务管理器重新启动SQL Server实例。 还原master数据库的最后一步是把在第三个步骤加入的-m启动参数去掉,将SQL Server实例重新置于多用户状态。要修改这个启动参数,可以使用企业管理器的“服务器属性”对话框。 关闭企业管理器,使用SQL Server的服务管理器停止并重新启动SQL Server实例。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)