1 停止SqlServer服务,编辑文本增删字符以破坏以下3个系统数据库master、msdb、model。
(破坏前先做好备份!)
2 接下来服务也启动不了!看来只能重建系统数据库了!
3 现在重建:找到文件SqlServer安装盘中或解压文件中setup.exe的位置。以管理员运行命令行进入到setup.exe所在目录
4 指定连接到数据库实例的几个重要参数,执行以下命令重新生成系统数据库。
Setup /QUIET/ACTION=REBUILDDATABASE/INSTANCENAME=InstanceName/SQLSYSADMINACCOUNTS=accounts[/ SAPWD= StrongPassword ] [/SQLCOLLATION=CollationName]
我的参数如下:
Setup /QUIET/ACTION=REBUILDDATABASE/INSTANCENAME=MSSQLSERVER/SQLSYSADMINACCOUNTS=1card1-pc\1card1/SAPWD=123456/SQLCOLLATION=Chinese_PRC_CI_AS
在安装程序完成系统数据库重新生成后,它将返回到命令提示符,而且不显示任何消息
参数名称 | 说明 |
/QUIET 或 /Q | 指定在没有任何用户界面的情况下运行安装程序。 |
/ACTION=REBUILDDATABASE | 指定安装程序将重新创建系统数据库。 |
/INSTANCENAME=实例名称 | 是 SQL Server 实例的名称。 对于默认实例,请输入 MSSQLSERVER。 对于命名实例,请以server_name\instance_name 格式输入其名称。 |
/SQLSYSADMINACCOUNTS=帐户 | 指定要添加到 sysadmin 固定服务器角色中的 Windows 组或单个帐户。 指定多个帐户时,请用空格将帐户隔开。 例如,请输入 BUILTIN\Administrators MyDomain\MyUser。 当您指定在帐户名称内包含空格的帐户时,用双引号将该帐户引起来。 例如,输入 "NT AUTHORITY\SYSTEM"。 |
[ /SAPWD=强密码 ] | 指定 SQL Serversa 帐户的密码。 如果实例使用混合身份验证(SQL Server 和 Windows 身份验证)模式,则此参数是必需的。 sa 帐户是一个广为人知的 SQL Server 帐户,并且经常成为恶意用户的攻击目标。 因此,为 sa 登录名使用强密码非常重要。 不要为 Windows 身份验证模式指定此参数。 |
[ /SQLCOLLATION=排序规则名称 ] | 指定新的服务器级排序规则。 此参数可选。 如果没有指定,则使用服务器的当前排序规则。 更改服务器级排序规则不会更改现有用户数据库的排序规则。 默认情况下,所有新创建的用户数据库都将使用新排序规则。 |
5 查看日志C:\Program Files (x86)\Microsoft SQL Server\100\Setup Bootstrap\Log\Summary.txt,里面记录了系统一些安装信息。在看4个系统数据库,它们刚刚已经重新生成了。
6 现在启动SqlServer服务,SqlServer代理服务。能正常启动了!打开ssms管理界面,终于可以进来了,不过所有信息都被初始化了!
能启动就好办了,剩下的就是继续还原系统数据库master、msdb、model。