master库损坏如何恢复

master库损坏如何恢复,第1张

关于master数据库: master 数据库记录 SQL Server 系统的所有系统级别信息.它记录所有的登录帐户和系统配置设置. master 数据库是这样一个数据库.它记录所有其它的数据库.其中包括数据库文件的位置. master 数据库记录 SQL Server 的初始化信息.它始终有一个可用的最新 master 数据库备份. 也就是说这个数据库损失或丢失的话.你的SQLSERVER根本就没法启动了.那么我们看看正常的修复方法. 一:重建master数据库【SQL Server 2005 】 版本中更改了使用 Setup 命令重新生成 master 数据库的用法。 在"浏览文件夹"对话框中.选择 SQL Server 2000 光盘上或用于安装 SQL Server 2000 的共享网络目录中的 \Data 文件夹.然后单击"确定"按钮. 单击"设置"按钮.在"排序规则设置"对话框中.验证或更改用于 Master 数据库或其它数据库的设置. 最初.显示的是默认排序规则设置.但这些设置有可能与安装期间选择的排序规则不匹配.可以选择与安装期间使用的排序规则相同的设置.也可以选择新的排序规则设置.完成后单击"确定"按钮. 在"重建 Master"对话框中单击"重建"按钮以启动进程. 重建 Master 实用工具重新安装 master 数据库. 说明:若要继续.则可能需要终止正在运行的服务器.按照上述方法执行后.SQL服务能正常启动. 重建数据库后.启动SQL Server服务.用系统数据库的备份恢复数据库.通常恢复顺序为master->msdb->model.恢复master的备份时要注意:必须在single user模式下进行.有以下几种方法: 进入单用户模式: 1:可以在命令行模式下输入sqlservr -c -f -m或者输入sqlservr -m 其中:-c 可以缩短启动时间.SQL Server 不作为Windows NT的服务启动 -f 用最小配置启动SQL Server -m 单用户模式启动SQL Server 2:可以在控制面板-服务-MSSQLServer的启动参数中输入-c -f -m或者输入-m.点击开始 3:还有一种更灵活的启动方法:用存在注册表里的启动参数启动 在MSSQLServer项下添加项SingleUser.具体内容如下所示: HKEY_LOCAL_MACHINE \Software \Microsoft \MSSQLServer \SingleUser \Parameters SQLArg0:REG_SZ:-dC:\MSSQL7\DATA\MASTER.DAT SQLArg1:REG_SZ:-eC:\MSSQL7\LOG\ERRORLOG SQLArg2:REG_SZ:-lC:\MSSQL7\DATA\MASTLOG.DAT SQLArg3:REG_SZ:-m 在命令行下输入SQLServr -c -sSingleUser.注意:必须是在命令行下进入单用户模式后启动 Query Analyzer执行语句: RESTORE DATABASE master form disk=''''c:\(具体的备份文件名)

在网上搜索了一下,发现了一篇介绍比较详细的,而且也确实解决了这一问题(我在VM上测试过可以),特将其全文转贴如下:

关于系统数据库的恢复总结如下:

在SQL Server数据库中,系统信息存储在系统数据库中,主要的系统数据库包括:

master-从整体上控制用户数据库和SQL Server *** 作,在创建了任何用户定义的对象后,都要备份它

model-为新数据库提供模版和原型

msdb-包含了有关作业、报警及 *** 作员等信息

如果包含系统数据库的介质变了,那么必须重建系统数据库,如果你仍然可以启动SQL Server服务,则可以通过RESTORE语句从系统数据库的备份中恢复数据库。

如果master坏了,不能启动系统,可以按照下面步骤进行恢复

1.重建系统数据库 运行c:/mssql7/binn/rebuildm.exe,按照提示进行即可,

过程中需要系统数据库样本的路径,可在安装光盘中找到;

2 重建系统数据库后,启动SQL Server服务,用系统数据库的备份恢复数据库

就行了通常恢复顺序为master->msdb->model

在恢复master的备份时要注意:必须在单用户(single user)模式下进行

a.进入单用户模式的方法:

1.在命令行模式下输入sqlservr -c -f -m或者输入sqlservr -m

其中:-c 可以缩短启动时间,SQL Server 不作为Windows NT的服务启动

-f 用最小配置启动SQL Server

-m 单用户模式启动SQL Server

2.可以在控制面板-服务-MSSQLServer的启动参数中输入-c -f -m或者输入-m,点击开始

3.进行master数据库的恢复

a.直接进入查询分析器,有个提示不要理会它

输入恢复语句进行数据库恢复:

RESTORE DATABASE master from disk='c:/具体的备份文件名'

b.或者用这个,在命令提示符下输入,注意大小写

使用"windows身份验证"的,输入:isql /E

使用"sql server和windows身份验证"的,输入:isql /U"用户名" /P"密码"

然后在出现的提示符下输入(注意1>,2>是提示符):

首先先和大家讲一讲SQL

Server恢复master数据库方法,具体步骤如下

第一步:复制model.mdf、mastlog.ldf、model.mdf、modellog.ldf、msdbdata.mdf、msdblog.ldf文件。

从X:\Program

Files\Microsoft

SQL

Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\Templates

至X:\Program

Files\Microsoft

SQL

Server\MSSQL10.MSSQLSERVER\MSSQL\DATA

注:以上“X:\Program

Files\Microsoft

SQL

Server”为SQL

Server的安装目录。以下的“C:\Program

Files\Microsoft

SQL

Server”为系统盘下的目录

第二步:定位并执行安装命令

1.

首先找到安装命令:C:\Program

Files\Microsoft

SQL

Server\100\Setup

Bootstrap\Release\setup.exe

2.

执行命令

如果只是Windows身份验证模式,只需要如下语法即可:

复制代码

代码如下:setup

/ACTION=REBUILDDATABASE

/QUIET

/INSTANCENAME=<instance

name>

/SQLSYSADMINACCOUNTS=<accounts>

如果是复合身份验证模式,则需要使用/SAPWD参数提供sa的密码:

复制代码

代码如下:setup

/ACTION=REBUILDDATABASE

/QUIET

/INSTANCENAME=<instance

name>

/SQLSYSADMINACCOUNTS=<accounts>

/SAPWD=<sa

password>

我安装时设置的是复合认证模式,SQL

Server系统管理员帐号是administrators组,sa密码是123456。并且就一个默认实例:MSSQLSERVER。

所以在命令行执行如下命令:

复制代码

代码如下:setup

/ACTION=REBUILDDATABASE

/QUIET

/INSTANCENAME=MSSQLSERVER

/SQLSYSADMINACCOUNTS=administrators

/SAPWD=123456

第三步:执行完毕后没有任何提示信息(不管成功与否),但是可以马上在C:\Program

Files\Microsoft

SQL

Server\100\Setup

Bootstrap\Log\Summary.txt中查看安装日志。

最后,在Sql

Server

Configuration

Manager中启动SQL

Server服务成功。

在处理过程中出现了这种情况SQL恢复数据库又该怎么办?只有mdf文件时,应当如何进行恢复,即有log文件的数据库如何恢复

SQL恢复数据库具体实现步骤:

1、新建一个同名数据库。

2、停止数据库服务,覆盖新建的数据库主文件(小技巧:最好放在同一个磁盘里面,把新建的数据库主文件删掉或移开,再把要恢复的数据库主文件剪切过去,这样就可以节省时间。)

3、启动数据库服务,数据库变为置疑或可疑状态。然后在查询分析器中运行:

alter

database

无日志文件的数据库名称

set

emergency

设置为紧急状态。

4、再运行:

alter

database

无日志文件的数据库名称

set

single_user

或者:

Sp_dboption

'无日志文件的数据库名称',

'single

user',

'true'

设置为单用户模式。

5、检查并重建日志文件,运行:

dbcc

checkdb('无日志文件的数据库名称',REPAIR_ALLOW_DATA_LOSS)

这个时间比较长。耐心等待!如果有错误提示,再运行:

dbcc

checkdb('无日志文件的数据库名称',REPAIR_REBUILD)

进行修复。如果没有错误,可以跳过。

6、恢复成多用户模式

alter

database

无日志文件的数据库名称

set

multi_user

或者:

Sp_dboption

'无日志文件的数据库名称',

'single

user',

'false'

刷新数据库,你就可以看到已经修复好的数据库了。

以上就是为大家分享的SQL恢复数据库方法,希望对大家恢复数据库有所帮助。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6751621.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存