某次关机重启后,lonele数据库实例无法访问,查看发现相应的服务(MSSQL$LONELE2、SQLAgent$LONELE2)无法启动。
---------------------------
服务
---------------------------
Windows 无法启动 SQLAgent$LONELE2 服务(位于 本地计算机 上)。
错误 1068: 依赖服务或组无法启动。
---------------------------
确定
---------------------------
以及
服务
---------------------------
本地计算机 上的 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系统库等文章。