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实例。
1.修改数据库为紧急模式 ALTER DATABASE jd13dafa SET EMERGENCY
2.
使数据库变为单用户模式 ALTER DATABASE jd13dafa SET SINGLE_USER
3.
修复数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象错误。当您指定“REPAIR_ALLOW_DATA_LOSS”作为DBCC CHECKDB命令参数,该程序将检查和修复报告的错误。但是,这些修复可能会导致一些数据丢失。 DBCC CheckDB (jd13dafa , REPAIR_ALLOW_DATA_LOSS)
4.
使数据库变回为多用户模式 ALTER DATABASE jd13dafa SET MULTI_USER
sql 2008和sql 2012的区别为:版本不同、数据压缩不同、加密不同。
一、版本不同
1、sql 2008:sql 2008包含企业版(Enterprise)、标准版(Standard)、专业版(Developer)。
2、sql 2012:sql 2012包含企业版(Enterprise)、标准版(Standard)、专业版(Developer)、商业智能版(Business Intelligence)。
二、数据压缩不同
1、sql 2008:sql 2008没有数据压缩,基于策略的管理和集成全文检索功能。。
2、sql 2012:sql 2012具有数据压缩,基于策略的管理和集成全文检索功能。
三、加密不同
1、sql 2008:sql 2008需要改动应用程序对整个数据库、数据文件和日志文件进行加密。
2、sql 2012:sql 2012可以对整个数据库、数据文件和日志文件进行加密,而不需要改动应用程序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)