断电导致mssql标准库损坏的修复帖子

https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/rebuild-system-databases?redirectedfrom=MSDN&view=sql-server-ver16

 

一、概述

如果您丢失了 SA 密码,您可能认为唯一的选择是重新安装 SQL Server 并重新附加所有用户数据库。但是,SQL Server 提供了一种更好的灾难恢复方法,可以将对象和数据保留在 master 数据库中。只需在单用户模式下启动 SQL Server,您就可以使用 OSQL 命令轻松恢复 SA 密码。

二、方法步骤

2.1 方法一:单用户模式下的恢复

STEP1:以单用户模式启动 SQL Server

  1. 打开 SQL Server 配置管理器。
  2. 找到恢复 SA 密码所需的 SQL Server 实例。
  3. 停止 SQL Server 实例。
  4. 右键单击实例并选择属性。
  5. 单击高级选项卡,并添加-m;到启动参数的开头。
  6. 单击“确定”并启动实例。

STEP2:恢复 SQL Server SA 密码

  1. 打开提升的命令提示符并输入命令: osql -S myServer\instanceName -E 将 myServer\instanceName 替换为计算机的名称和要连接的 SQL Server 实例。
  2. 在接下来的提示中,输入以下命令: 1> alter login sa enable2> go1> sp_password NULL,'new_password','sa'2> go1> quit
  3. 停止 SQL Server 实例。
  4. 从启动参数字段中删除 -m 选项,然后启动 SQL Server 服务。

命令行添加用户(SQL 2000及2008可用):
sp_addlogin '登录名','密码';
go
sp_adduser '登录名','用户名','db_owner'(组名);
go
sp_addsrvrolemember '用户名','sysadmin' (角色名);
go
-----------------------------------------------------------------------------------------------------------
SQL 2008可用
create login 登录名 with password = '密码';
create user 用户名 for login 登录名 with default_schema=dbo;
exec sp_addsrvrolemember @loginame = N'登录名', @rolename = N'sysadmin'(角色);
go

 

 

参考帖子:
https://www.csdn.net/tags/MtTaMg4sNjQ1ODc3LWJsb2cO0O0O.html

 


今天开机后,启动sqlserver 数据库时,提示 启动失败,事件查看 显示错误 3417

搜索 之后,找到一系列 办法,例如 ,右击 数据库文件属性高级。。。。等等,都失败

也搜到 有用 rebuildm.exe的,但据说2005已废除此用法,改为 安装盘中的 setup.exe 参数命令 重新生成 ,如下:


载入sql server 2005安装镜像,在cmd里cd到光盘目录中的 setup.exe目录(有的就在光盘 根目录,有的在tools)输入重新生成的脚本,

这个时候没有界面弹出,过一会看到sql server 2005安装目录下MSSQL.1\MSSQL\Data下的master数据库已经重新生成过了,重新启动 服务就可以了,安装的脚本为:


start /wait setup.exe /qn INSTANCENAME=XXX REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=XX

INSTANCENAME就是实例名(系统服务列表,sqlserver 服务后面小括号中的名字), SAPWD是密码

 

 

 

参考帖子:https://blog.csdn.net/yihuajack/article/details/124874417

参考帖子: https://blog.51cto.com/u_15338523/3592728
1: 从备份还原master数据库

 

还原master数据库的前提是你的master有做备份。千万谨记,master也必须备份。很多时候,有些人备份时会忽略这些系统数据库。 一般master、msdb备份是必须的。

 

2: 复制master数据库模板

如果你没有master备份,那么退而求次,选择从安装目录的Templates拷贝master数据库文件到对应的目录。如果你SQL SERVER安装在C盘,没有修改过安装路径,那么可能就是C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\Templates

 

3:重建master数据库

 

找到SQL Server 2008的安装介质(插入光盘或拷贝介质到对应目录),在命令窗口将目录更改为setup.exe文件所在目录,然后运行下面命令(具体结合实际情况修改相关参数)

setup.exe
1.
/QUIET
1.
登录后复制
/ACTION=REBUILDDATABASE
1.
/INSTANCENAME=instance_name
1.
/SQLSYSADMINACCOUNTS= accounts
1.
[/SAPWD=password]
1.
[/SQLCOLLATION=collation_name]
1.
当然有很多细节,如果数据库安装后打过补丁,做过升级,可能需要重新应用这些补丁。具体参考博客?“How to Rebuild System Databases in SQL Server 2008”。
-----------------------------------
https://blog.51cto.com/u_15338523/3592728

 

posted @ 2022-06-27 17:38  liangyuwen  阅读(125)  评论(0编辑  收藏  举报