Mr. Roshan Asked: 2021-01-28 02:12:22 +0800 CST2021-01-28 02:12:22 +0800 CST 2021-01-28 02:12:22 +0800 CST 升级期间,数据库引发异常 9002,严重性 17,状态 1。使用异常编号确定原因 772 我正在尝试在我的 Windows Server 机器上将SQL Server 2014更新到Service Pack 3。从 Windows 更新功能更新后,我无法启动 SQL Server 服务和 SQL Server 代理服务。 我已经检查了相同的错误日志,它显示以下 2 条消息。 由于“CHECKPOINT”,数据库“master”的事务日志已满。 升级期间,数据库引发异常 9002,严重性 17,状态 1。使用异常编号确定原因。 sql-server sharepoint 3 个回答 Voted J.D. 2021-01-28T04:44:35+08:002021-01-28T04:44:35+08:00 您正在运行哪个版本的 SQL Server?此 StackExchange是否有助于解决任何问题? 异常 9002基本上意味着您的事务日志已满,可能与master数据库有关,与您的第一个错误有关。 在 SQL 服务脱机的情况下,最快的解决方案可能是在事务日志所在的驱动器中腾出更多可用空间,master以便它可以根据需要充分增长文件,这样您就可以启动服务,然后更好地进行故障排除,例如的备份,master因此它会缩小事务日志文件。您需要释放的空间量很难确定(并且取决于为master数据库设置的增长因子),但可能与其现有日志大小相等(因此如果需要它可以加倍)是一个好的开始。 在您在评论中发布的其他详细信息之后(顺便说一下,您应该将它们放在原始问题中)我想知道您是否可能有一个损坏的master数据库。无论如何,这个StackExchange 答案可能对您非常有用。特别是如果您可以执行步骤 #3 或 #4: 将 master 恢复到另一个实例并复制其文件 重建系统数据库 但是从 #2 开始(尝试以单用户模式启动实例),然后按顺序执行上述答案。 Ronaldo 2021-01-28T06:04:17+08:002021-01-28T06:04:17+08:00 尝试在另一个实例上恢复有问题的 master 以调整日志文件的大小: 重命名原始主数据库.mdf和.ldf文件并复制它们(我们不想让事情变得更糟); 将复制的文件附加到不同的 SQL Server 实例以检查该数据库的状态: USE [master]; CREATE DATABASE [master2] ON ( FILENAME = N'C:\BackupSQL\master2.mdf' ), ( FILENAME = N'C:\BackupSQL\mastlog2.ldf' ) FOR ATTACH; 调整日志文件的大小: ALTER DATABASE master2 MODIFY FILE (NAME = mastlog, MAXSIZE = UNLIMITED, SIZE = 50MB); 分离master2数据库并将.mdf和.ldf文件粘贴回原始位置(记住保留原始文件.mdf和.ldf 文件使用不同的名称,不要删除它们,因为如果这不起作用,可能需要它们)并重命名新的作为master.mdf和 mastlog.ldf。 现在尝试启动 SQL Server 服务。 Best Answer Mr. Roshan 2021-02-02T01:32:32+08:002021-02-02T01:32:32+08:00 错误 9002:- 感谢@Ronaldo和@JD 我已通过使用以下操作解决了该问题。 如果主文件事务日志已满,请执行以下步骤:- 您必须设置另一个运行完全相同的版本和构建的 SQL 实例。 创建数据库master2 停止 SQL 服务并转到 .mdf 和 .ldf 文件位置“ C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA ”。 删除 master2.mdf 和 master2_log.ldf 文件。 获取与事务日志相关的问题的 master.mdf 和 mastlog.ldf 文件。将这两个文件重命名如下: 一个。master.mdf -> master2.mdf 湾。mastlog.ldf -> master2_log.ldf 再次启动 SQL 服务并从 SSMS 连接到数据库。 您可以看到 master2 数据库的状态显示为恢复挂起 常见步骤:- 使 master2 数据库脱机 从“C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA”中删除或重命名 master2.ldf 文件 执行以下命令,将再次重建事务日志文件。 ALTER DATABASE master2 REBUILD LOG ON (NAME= logicalname, FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\master2_log.ldf') 拿master2数据库上线 执行以下命令 `ALTER DATABASE master2 SET MULTI_USER` 我们将运行下面的 DBCC CHECKDB 命令,以便在重建 SQL 事务日志文件后检查数据库的物理一致性 `DBCC CHECKDB (master2)` 在此之后将 master2.mdf 和 master2_Log.ldf 文件替换为您的原始 Sql 服务器实例(将文件重命名回原始名称)并立即尝试连接。
您正在运行哪个版本的 SQL Server?此 StackExchange是否有助于解决任何问题?
异常 9002基本上意味着您的事务日志已满,可能与
master
数据库有关,与您的第一个错误有关。在 SQL 服务脱机的情况下,最快的解决方案可能是在事务日志所在的驱动器中腾出更多可用空间,
master
以便它可以根据需要充分增长文件,这样您就可以启动服务,然后更好地进行故障排除,例如的备份,master
因此它会缩小事务日志文件。您需要释放的空间量很难确定(并且取决于为master
数据库设置的增长因子),但可能与其现有日志大小相等(因此如果需要它可以加倍)是一个好的开始。在您在评论中发布的其他详细信息之后(顺便说一下,您应该将它们放在原始问题中)我想知道您是否可能有一个损坏的
master
数据库。无论如何,这个StackExchange 答案可能对您非常有用。特别是如果您可以执行步骤 #3 或 #4:但是从 #2 开始(尝试以单用户模式启动实例),然后按顺序执行上述答案。
尝试在另一个实例上恢复有问题的 master 以调整日志文件的大小:
重命名原始主数据库
.mdf
和.ldf
文件并复制它们(我们不想让事情变得更糟);将复制的文件附加到不同的 SQL Server 实例以检查该数据库的状态:
调整日志文件的大小:
分离master2数据库并将
.mdf
和.ldf
文件粘贴回原始位置(记住保留原始文件.mdf
和.ldf
文件使用不同的名称,不要删除它们,因为如果这不起作用,可能需要它们)并重命名新的作为master.mdf
和mastlog.ldf
。现在尝试启动 SQL Server 服务。
错误 9002:-
感谢@Ronaldo和@JD
我已通过使用以下操作解决了该问题。
如果主文件事务日志已满,请执行以下步骤:-
您必须设置另一个运行完全相同的版本和构建的 SQL 实例。
创建数据库master2
停止 SQL 服务并转到 .mdf 和 .ldf 文件位置“ C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA ”。
删除 master2.mdf 和 master2_log.ldf 文件。
获取与事务日志相关的问题的 master.mdf 和 mastlog.ldf 文件。将这两个文件重命名如下:
一个。master.mdf -> master2.mdf
湾。mastlog.ldf -> master2_log.ldf
再次启动 SQL 服务并从 SSMS 连接到数据库。
您可以看到 master2 数据库的状态显示为恢复挂起
常见步骤:-
从“C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA”中删除或重命名 master2.ldf 文件
执行以下命令,将再次重建事务日志文件。
ALTER DATABASE master2 REBUILD LOG ON (NAME= logicalname, FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\master2_log.ldf')
拿master2数据库上线
执行以下命令