删除包含式AG后无法登录SQL Server实例,请求技术支持
配置包含式可用性组(AG)中途终止操作,随后删除了该AG及相关数据库和备份。当前SQL Server配置管理器中已启用Always On高可用性,但无法通过SSMS登录实例,报错信息如下:
Could not find database ID 0. Database may not be activated yet or may be in transition. Reissue the query once the database is available. If you do not think this error is due to a database that is transitioning its state and this error continues to occur, contact your primary support provider. Please have available for review the Microsoft SQL Server error log and any additional information relevant to the circumstances when the error occurred.
已执行所有HADR相关动态管理视图(DMV),仅[sys].[availability_replicas]返回replica_id,其余字段均为空。
select * from [sys].[availability_replicas]
select * from sys.dm_hadr_ag_threads select * from sys.dm_hadr_auto_page_repair select * from sys.dm_hadr_automatic_seeding select * from sys.dm_hadr_availability_group_states select * from sys.dm_hadr_availability_replica_cluster_nodes select * from sys.dm_hadr_availability_replica_cluster_states select * from sys.dm_hadr_availability_replica_states select * from sys.dm_hadr_cluster select * from sys.dm_hadr_cluster_members select * from sys.dm_hadr_cluster_networks select * from sys.dm_hadr_database_replica_cluster_states select * from sys.dm_hadr_database_replica_states select * from sys.dm_hadr_db_threads select * from sys.dm_hadr_instance_node_map select * from sys.dm_hadr_name_id_map select * from sys.dm_hadr_physical_seeding_stats select * from sys.dm_tcp_listener_states select * from [sys].[availability_replicas]
查看SQL Server错误日志
找到SQL Server安装目录下的LOG文件夹,打开最新的错误日志文件,查找与HADR、数据库ID 0相关的错误细节,确认是否存在残留的AG配置元数据或未释放的资源。清理残留的AG元数据
- 以管理员身份打开命令提示符,停止并启动SQL Server实例到单用户模式:
net stop MSSQLSERVER net start MSSQLSERVER /m"SQLCMD" - 使用sqlcmd连接目标实例:
sqlcmd -S <你的实例名称> -E - 在sqlcmd会话中执行删除残留副本记录的语句(替换
<返回的replica_id>为实际查询到的ID):DELETE FROM [sys].[availability_replicas] WHERE replica_id = '<返回的replica_id>'; GO - 退出sqlcmd,重启SQL Server服务:
net stop MSSQLSERVER net start MSSQLSERVER
- 以管理员身份打开命令提示符,停止并启动SQL Server实例到单用户模式:
重置Always On高可用性配置
打开SQL Server配置管理器,找到对应的SQL Server服务,右键选择「属性」,切换到「Always On高可用性」选项卡,取消勾选「启用Always On可用性组」,点击确定并等待服务重启。重启完成后,再次勾选该选项并重启服务。验证登录状态
服务重启完成后,尝试通过SSMS登录实例,检查报错是否消除。若问题仍存在,再次查看错误日志排查其他潜在问题。
内容的提问来源于stack exchange,提问作者Mars

