SQLServer无法启动解决方案(错误9003)分享解决方案

SQLServer无法启动解决方案(错误9003)分享解决方案
先谈环境

客户环境:Windows2003企业版SP2 32位SQL2005企业版32位SP4
自己的电脑环境:Windows7 SP1 32位SQL2005个人开发者版本32
我的笔记本电脑名称:乔
客户机计算机的名称:HS

客户机侧主数据库的大小:几个MB
业务系统是一个WinForm系统
客户机的环境是单机系统不使用域。
网络环境:客户的网速比较慢,远程协助使用时间比较卡。
为什么我要解释我自己的笔记本电脑的环境请继续耐心地观察它。

检查

打开SQL Server配置管理器首先启动SQLServer,发现SQLServer启动不了

于是我打开Windows事件日志,发现以下错误

复制代码代码如下所示:
SQLServer错误9003:LSN无效(无效的日志扫描数)
日志扫描次数(2806:120:1)传递到日志扫描操作在database'master'is无效。
此错误可能指示数据损坏,或者日志文件(Ldf)不匹配的数据文件(.mdf)。
如果在复制期间发生此错误,请重新创建发行版。否则,如果该问题在启动过程中出错,请从备份中恢复
所以我在电脑和百度上犯了这个错误
这篇文章搜索:SQL Server错误9003:LSN无效(无效的日志扫描次数),该数据库修复
本文的数据库用户数据库使用重建日志,DBCC CHECKDB来解决问题
令人遗憾的是,客户端损坏了主数据库。

头脑风暴
作为一个优秀的数据库工程师,一定要快速了解哪些方法能解决当前的客户问题。
这些方法的优点和缺点是什么因为延迟一秒钟会给客户造成更多的损失,客户的业务系统不能正常运行,后果可想而知。
从以下几个方面,我做出了选择
网速很慢,在客户端计算机上编写SQL语句并不方便。
业务系统是一个WinForm系统

选择:前任项目经理教我的方式,SQL Server无法启动
随着新安装的SQLServer数据库代替客户的数据库
此方法有以下缺点

(1)您使用的数据库版本必须与客户相同。
(2)不可能sqlserver2012 master数据库的客户
(3)服务器触发器、证书、链接服务器、登录用户和其他信息将丢失。

为什么他们有这些缺点,你可以看看下面的文章
在SQL Server 2008中引入服务SID

复制代码代码如下所示:
{服务SID的引入
NT服务 MSSQL $ Katmai,NT服务 SQLAgent Katmai美元和NT服务 ClusSvc实际上是对应于服务SID的名字
服务SID的引入是为了解决多个服务可能带来的服务帐户的潜在安全风险。
如果IIS使用网络服务帐户,其他服务也可以使用网络服务帐户。
为了使IIS连接到SQL Server,我们可以使用网络服务作为SQL服务器的登录,但这是不安全的。
因为其他服务也可以访问SQLServer,如果它们是以网络服务作为帐户启动的话。
为了解决这个问题,在SQL Server 2008 Windows Server 2008和以后,
我们有SID的概念,因此不同的服务,即使服务启动帐户是相同的,它们的SID也是不同的。
由于登录用户的机制发生了改变,在SQLServer2008,所以你使用的数据库版本不视客户为好。
但是,即使是相同的,也有一个缺点,客户的登录用户最初是以下方式
复制代码代码如下所示:
内置管理员
管理员
HS sqlserver2005msfteuser HS MSSQLServer美元美元
HS sqlserver2005mssqluser HS MSSQLServer美元美元
HS sqlserver2005sqlagentuser HS MSSQLServer美元美元
但是如果我把自己的主数据库给客户,它就会变成下面的
如果客户的业务系统是一个B/S系统,则将使用IIS,或者客户的环境是一个域环境。
登录SQLServer需要使用Windows登录验证SQL登录验证,所以这样做是很麻烦的
另一个为自己的电脑是个人开发者,客户是一个企业版,但它已经做过,并没有什么错。

开始实施

医疗事故已经结束,而且已经开始了。

第一步:首先将所有sqlserverd用户数据库在自己的笔记本电脑。

删除一些用户没有安装,在安装时,只要保持默认的登录用户,停止自己的电脑的SQL服务,复制master.mdf和mastlog.ldf,并发送给客户。

第二步:使用远程协助,将主数据库master.mdf文件在客户端的计算机master22.mdf

的mastlog.ldf更名mastlog22.ldf

然后将发送的主数据库放入数据文件夹中。

第三步:启动SQLServer,因为当时有没有截图,没有截图,这个时候你可以发现SQLServer已成功启动。

第四步:将我们的企业库

第五步:删除原有的业务数据库的用户gxhtsyrain

第六步:新登录用户gxhtsyrain和地图业务库

第七步:禁用SA用户

因为msdb数据库不更换,维修计划不丢失
错误日志

我看着SQL错误日志,发现以下错误

数据库中的master无法启用服务中介,因为主人不一样的MSDB Service Broker相同。

NT权限系统登录失败

因为我们没有使用服务代理技术,这是不可忽视的数据库msdb可以忽略服务代理

和NT权限系统登录失败,在SQL Server 2008中的服务SID介绍

复制代码代码如下所示:
但我们不能认为这些SID的帐户,你可以很容易地删除其他登录像NT权限系统。

有些应用程序,如VSS作者、Windows自动更新等,仍然需要用服务启动帐户。
如果客户有一个SQLServer备份系统数据库的备份

我会这样做的:

第一步:首先,在自己的笔记本电脑上备份主数据库。

步骤二:把客户的master.bak到您的计算机

第三步:恢复客户的master.bak自身SQLServer

第四步:停止SQL服务和复制master.mdf和mastlog.ldf给客户

第五步:在客户端的计算机master22.mdf重命名数据库master.mdf文件,和mastlog.ldf文件更名为mastlog22.ldf

第六步:然后将发送的主数据库放入数据文件夹中

第七步:启动SQLServer

总结

除了用户数据库的备份之外,系统数据库的备份也是非常重要的。
我们需要备份的两个数据库master和msdb
当时我们部署业务系统时,没有备份系统数据库,但实际上它是一本背后的教科书。
我的方法是基于我们的业务系统,使用SQLServer维护计划的能力上面的解决方案。
如果你经常使用SQLServer数据库的相关技术,也许我的解决方案是不是最好的。
我也希望你能提出你的观点和意见,或者你使用的方法比我的更快更好。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部