msde2000的关于无法访问lonle实例的master数据库恢复

发布时间 2024-01-06 18:07:50作者: geyee

某次关机重启后,lonele数据库实例无法访问,查看发现相应的服务(MSSQL$LONELE2、SQLAgent$LONELE2)无法启动。

---------------------------
服务
---------------------------
Windows 无法启动 SQLAgent$LONELE2 服务(位于 本地计算机 上)。



错误 1068: 依赖服务或组无法启动。


---------------------------
确定   
---------------------------

SQLAgent error

以及

服务
---------------------------
本地计算机 上的 MSSQL$LONELE2 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。
---------------------------
确定   
---------------------------

使用 type "C:\Program Files\Microsoft SQL Server\MSSQL$LONELE2\LOG\ERRORLOG"查看日志

 C:\Program Files\Microsoft SQL Server\MSSQL$LONELE2\LOG> type .\ERRORLOG
2024-01-06 11:24:06.48 server    Microsoft SQL Server  2000 - 8.00.760 (Intel X86)
        Dec 17 2002 14:22:05
        Copyright (c) 1988-2003 Microsoft Corporation
        Desktop Engine on Windows NT 6.2 (Build 9200: )

2024-01-06 11:24:06.48 server    Copyright (C) 1988-2002 Microsoft Corporation.
2024-01-06 11:24:06.48 server    保留所有权利。
2024-01-06 11:24:06.48 server    服务器进程 ID 是 1504。
2024-01-06 11:24:06.49 server    将 SQL Server 消息记录在文件“C:\Program Files\Microsoft SQL Server\MSSQL$LONELE2\LOG\ERRORLOG”中。
2024-01-06 11:24:06.49 server    SQL Server 正在以优先级“normal”(已检测到 1 CPU)启动。
2024-01-06 11:24:07.09 server    已为 thread 模式处理而配置了 SQL Server。
2024-01-06 11:24:07.09 server    使用 dynamic 锁分配。[500] 锁块,[1000] 锁所有者块。
2024-01-06 11:24:07.15 spid3     启动数据库“master”。
2024-01-06 11:24:07.15 spid3     ex_raise2: Exception raised, major=34, minor=56, severity=21, attempting to create symptom dump
2024-01-06 11:24:07.16 spid3     Using 'dbghelp.dll' version '4.0.5'
*Dump thread - spid = 3, PSS = 0x1a4a6098, EC = 0x1a4a63c0
*
* User initiated stack dump.  This is not a server exception dump.
*
*Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL$LONELE2\log\SQLDump0031.txt
* *******************************************************************************
*
* BEGIN STACK DUMP:
*   01/06/24 11:24:07 spid 3
*
* ex_raise2: Exception raised, major=34, minor=56, severity=21
*
*
*
*  MODULE                          BASE      END       SIZE
* sqlservr                       00400000  00B2CFFF  0072d000
* ntdll                          77100000  7729EFFF  0019f000
* KERNEL32                       75A30000  75ACAFFF  0009b000
* KERNELBASE                     74CB0000  74EE6FFF  00237000
* ADVAPI32                       75AD0000  75B4BFFF  0007c000
* msvcrt                         76490000  7654EFFF  000bf000
* sechost                        76410000  76485FFF  00076000
* RPCRT4                         756A0000  75765FFF  000c6000
* USER32                         76F70000  770E6FFF  00177000
* win32u                         74C70000  74C8CFFF  0001d000
* GDI32                          75BB0000  75BD2FFF  00023000
* gdi32full                      74B20000  74C02FFF  000e3000
* msvcp_win                      74A10000  74A8AFFF  0007b000
* ucrtbase                       747F0000  7490FFFF  00120000
* OPENDS60                       41060000  41065FFF  00006000
* UMS                            41070000  4107CFFF  0000d000
* SQLSORT                        42AE0000  42B6FFFF  00090000
* MSVCIRT                        68E10000  68E23FFF  00014000
* apphelp                        722E0000  7237FFFF  000a0000
* IMM32                          76CA0000  76CC5FFF  00026000
* sqlevn70                       41080000  41086FFF  00007000
* NETAPI32                       024F0000  02503FFF  00014000
* NETUTILS                       02510000  0251AFFF  0000b000
* LOGONCLI                       02520000  02551FFF  00032000
* SAMCLI                         02560000  02574FFF  00015000
* SSNETLIB                       02A90000  02AA4FFF  00015000
* WS2_32                         02AB0000  02B12FFF  00063000
* WSOCK32                        02B20000  02B27FFF  00008000
* dbghelp                        02B60000  02C14FFF  000b5000
* VERSION                        00C00000  00C07FFF  00008000
*
*        Edi: 1A4A63C0: 1A4A6098  1A4A63C4  1A4A63C4  1A4A63CC  1A4A63CC  1A4A6030
*        Esi: 00ABB8E8:
*        Eax: 00000000:
*        Ebx: 1A4A6098: 01000003  00000000  00000000  00000000  00000000  00000000
*        Ecx: 0280DA58: 00000000  0001003F  00000000  00000000  00000000  00000000
*        Edx: 77192850: 24A48DC3  00000000  0024A48D  90000000  0824548D  CCC32ECD
*        Eip: 0087A90E: 4D830088  75FFFFFC  0875FF0C  E8E04D8B  0000002D  64F04D8B
*        Ebp: 0280DA3C: 0280E25C  0087C41F  1A4A6098  0280E5E4  00000000  1A4A63C0
*      SegCs: 0000001B:
*     EFlags: 00010246: 04C80000  04C80000  00040000  E0000000  0980000F  FFFF7722
*        Esp: 0280DA10: 1A4A63C0  00ABB8E8  1A4A6098  0280DA58  1A4A6000  0280DA10
*      SegSs: 00000023:
* *******************************************************************************
* -------------------------------------------------------------------------------
* Short Stack Dump
* 0087A90E Module(sqlservr+0047A90E) (GetOSErrString+00003BDB)
* 0087C41F Module(sqlservr+0047C41F) (GetOSErrString+000056EC)
* 00931A0C Module(sqlservr+00531A0C) (CDStream::DumpBytesHex+000AA1B5)
* 00488507 Module(sqlservr+00088507)
* 0084C9FC Module(sqlservr+0044C9FC) (CDStream::operator=+00055C64)
* 0085E474 Module(sqlservr+0045E474) (CDStream::operator=+000676DC)
* 0050BFD1 Module(sqlservr+0010BFD1)
* 005100FF Module(sqlservr+001100FF)
* 0050F152 Module(sqlservr+0010F152)
* 0051869B Module(sqlservr+0011869B)
* 00518066 Module(sqlservr+00118066)
* 41074698 Module(UMS+00004698) (UmsThreadScheduler::~UmsThreadScheduler+00000198)
* 542868FF Module(UNKNOWN+00000000)
* -------------------------------------------------------------------------------
2024-01-06 11:24:07.21 spid3     错误: 3456,严重度: 21,状态: 1。
2024-01-06 11:24:07.21 spid3     ex_raise2: Exception raised, major=34, minor=56, severity=25, attempting to create symptom dump
2024-01-06 11:24:07.23 spid3     Using 'dbghelp.dll' version '4.0.5'
*Dump thread - spid = 3, PSS = 0x1a4a6098, EC = 0x1a4a63c0
*
* User initiated stack dump.  This is not a server exception dump.
*
*Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL$LONELE2\log\SQLDump0032.txt
* *******************************************************************************
*
* BEGIN STACK DUMP:
*   01/06/24 11:24:07 spid 3
*
* ex_raise2: Exception raised, major=34, minor=56, severity=25
*
*
*
*  MODULE                          BASE      END       SIZE
* sqlservr                       00400000  00B2CFFF  0072d000
* ntdll                          77100000  7729EFFF  0019f000
* KERNEL32                       75A30000  75ACAFFF  0009b000
* KERNELBASE                     74CB0000  74EE6FFF  00237000
* ADVAPI32                       75AD0000  75B4BFFF  0007c000
* msvcrt                         76490000  7654EFFF  000bf000
* sechost                        76410000  76485FFF  00076000
* RPCRT4                         756A0000  75765FFF  000c6000
* USER32                         76F70000  770E6FFF  00177000
* win32u                         74C70000  74C8CFFF  0001d000
* GDI32                          75BB0000  75BD2FFF  00023000
* gdi32full                      74B20000  74C02FFF  000e3000
* msvcp_win                      74A10000  74A8AFFF  0007b000
* ucrtbase                       747F0000  7490FFFF  00120000
* OPENDS60                       41060000  41065FFF  00006000
* UMS                            41070000  4107CFFF  0000d000
* SQLSORT                        42AE0000  42B6FFFF  00090000
* MSVCIRT                        68E10000  68E23FFF  00014000
* apphelp                        722E0000  7237FFFF  000a0000
* IMM32                          76CA0000  76CC5FFF  00026000
* sqlevn70                       41080000  41086FFF  00007000
* NETAPI32                       024F0000  02503FFF  00014000
* NETUTILS                       02510000  0251AFFF  0000b000
* LOGONCLI                       02520000  02551FFF  00032000
* SAMCLI                         02560000  02574FFF  00015000
* SSNETLIB                       02A90000  02AA4FFF  00015000
* WS2_32                         02AB0000  02B12FFF  00063000
* WSOCK32                        02B20000  02B27FFF  00008000
* SSNMPN70                       02C20000  02C25FFF  00006000
* dbghelp                        02B60000  02C14FFF  000b5000
* VERSION                        00C00000  00C07FFF  00008000
*
*        Edi: 1A4A63C0: 1A4A6098  1A4A63C4  1A4A63C4  1A4A63CC  1A4A63CC  1A4A6030
*        Esi: 00ABB8E8:
*        Eax: 00000000:
*        Ebx: 1A4A6098: 01000003  00000000  00000000  00000000  00000000  00000000
*        Ecx: 0280CDF0: 00000000  0001003F  00000000  00000000  00000000  00000000
*        Edx: 77192850: 24A48DC3  00000000  0024A48D  90000000  0824548D  CCC32ECD
*        Eip: 0087A90E: 4D830088  75FFFFFC  0875FF0C  E8E04D8B  0000002D  64F04D8B
*        Ebp: 0280CDD4: 0280D5F4  0087C41F  1A4A6098  0280D97C  00000000  1A4A63C0
*      SegCs: 0000001B:
*     EFlags: 00010246: 04C80000  04C80000  00040000  E0000000  0980000F  FFFF7722
*        Esp: 0280CDA8: 1A4A63C0  00ABB8E8  1A4A6098  0280CDF0  1A4A6000  0280CDA8
*      SegSs: 00000023:
* *******************************************************************************
* -------------------------------------------------------------------------------
* Short Stack Dump
* 0087A90E Module(sqlservr+0047A90E) (GetOSErrString+00003BDB)
* 0087C41F Module(sqlservr+0047C41F) (GetOSErrString+000056EC)
* 00931A0C Module(sqlservr+00531A0C) (CDStream::DumpBytesHex+000AA1B5)
* 00931CD9 Module(sqlservr+00531CD9) (CDStream::DumpBytesHex+000AA482)
* 0085E68F Module(sqlservr+0045E68F) (CDStream::operator=+000678F7)
* 0050BFD1 Module(sqlservr+0010BFD1)
* 005100FF Module(sqlservr+001100FF)
* 0050F152 Module(sqlservr+0010F152)
* 0051869B Module(sqlservr+0011869B)
* 00518066 Module(sqlservr+00118066)
* 41074698 Module(UMS+00004698) (UmsThreadScheduler::~UmsThreadScheduler+00000198)
* 542868FF Module(UNKNOWN+00000000)
* -------------------------------------------------------------------------------
2024-01-06 11:24:07.26 spid3     错误: 3313,严重度: 21,状态: 2。
2024-01-06 11:24:07.26 spid3     错误: 2775,严重度: 16,状态: 1。
2024-01-06 11:24:07.26 spid3     Log dump failed.
2024-01-06 11:24:07.26 spid3     无法恢复 master 数据库。正在退出。
PS C:\Program Files\Microsoft SQL Server\MSSQL$LONELE2\LOG>



由于有其他系统存在同样实例的msde2000,可以通过替换程序路径(如C:\Program Files\Microsoft SQL Server\MSSQL$LONELE2\Data)中的master.mdf及mastlog.ldf文件来解决(先将正常的数据库服务关闭,再拷贝文件)。注意访问父目录获取访问权限,以及拷贝替换文件时,可以先复制到临时的非管理员权限可访问的文件夹,再剪切替换。当然也可以提前备份原出故障的两个文件以待后续研究。替换的文件需要和原系统同样位数(x86或x64),以及数据库的版本也相同。最后可用dbcc checkdb检测master数据库是否无误。另外,其他实例可能不见了,还得重新附加。完事再用ssms备份一遍master数据库。
如果有安装其他高版本的sql server express,也可以利用高版本的sqlcmd命令而非osql进行备份操作。
sqlcmd
1> backup database master to disk='c:\master_x86.bak'
2> go
已处理 1896 页,这些页属于数据库 'master' 的文件 'master'(位于文件 1 上)。
已处理 1 页,这些页属于数据库 'master' 的文件 'mastlog'(位于文件 1 上)。
BACKUP DATABASE 操作成功地处理了 1897 页,花费了 0.142 秒(109.387 MB/秒)。
1>

更多可能注意的事项可以参考如何正确恢复SQLSERVER的master系统库等文章。