当前位置:Gxlcms > 数据库问题 > SQLServer Always On FCI 集群节点同时占用资源及可疑状态修复

SQLServer Always On FCI 集群节点同时占用资源及可疑状态修复

时间:2021-07-01 10:21:17 帮助过:19人阅读


基本原因如下:

Troubleshooting Error 3313, 3314, 3414, or 3456 (SQL Server)

How to troubleshoot Error 9004 in SQL Server

由于msdb日志备份引起的(发现msdb数据文件有 60+GB!)


现在集群有问题了,相互占用资源,心跳没起作用。连接数据库内部查看节点能正常连接到其中一个。

select * from sys.dm_os_cluster_nodes
SELECT * FROM fn_virtualservernodes();
技术分享

更重要的是:因为存储是共享的,系统数据库和用户数据库都共享!


两个节点用共享存储,按理说数据是一致的。为了使集群能恢复正常状态,打算转移集群。重启服务器比较好,不用逐个转移,使其自动所有资源转移。


重启之后!!


msdb 正常了!!


但是有 3 个用户数据库出现了 “可疑”!!


没办法,出现了就只能修复吧!!设置 “紧急” 模式修复,设置“单用户”,结果设置都产生死锁,无法执行!

设置单用户模式后很难恢复多用户模式,似乎不断有进程来执行!

干脆把集群另一个节点服务器(虚拟机)关闭了!进来还是一样的错误。

再接着不用集群连接,到节点服务器执行,还是一样!!

再以专用管理员DAC 启动服务,看谁还能连接!进来后老提示另一个用户在运行,此时设置数据库为多用户模式也不行!

好!再更改端口,重启mssql服务,看谁还连接!结果没人抢了!可疑进行操作也不会死锁,也没其他人操作,此时可以进行修复了!

两个较小(60GB和1GB)的数据库没问题;DBCC checkdb 修复过程中,有一个170GB的数据库修复至tempdb空间不足!修复了部分,且停止了。

但很快,因有些数据库文件都在同一磁盘,磁盘空间不足了!!使mssql服务自动停止!

好吧!删除一些数据库dump/log文件,启动服务分离一些不重要的数据库,把它移走(可能不再用了),移出共享盘。

什么!权限不够,本地管理员都无法移动文件!再逐个将数据文件的权限添加给本地管理员!

空间够业务用了,但是还有一个数据库没有修复!!再把临时数据库移到本地磁盘,才进行DBCC checkdb修复!

修复完成后把 tempdb 改回共享存储位置,并设置小一些!

此集群节点上修复完成!!!

但是,数据可能有丢失,集群还未敢恢复。

ALTER DATABASE dbname SET EMERGENCY 
GO
ALTER DATABASE dbname SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
ALTER DATABASE dbname SET SINGLE_USER 
GO
DBCC CheckDB (dbname , REPAIR_ALLOW_DATA_LOSS) 
GO
--after then:
ALTER DATABASE dbname SET MULTI_USER 
GO




SQLServer Always On FCI 集群节点同时占用资源及可疑状态修复

标签:无法   日志记录   enter   data   nod   tac   监控   for   iat   

人气教程排行