当我尝试登录到我的实例时出现错误消息。这发生在我在配置中间停止了包含AG之后。然后愚蠢地删除了我的数据库和备份。现在,当在配置管理器中启用始终处于高可用性时,它不会让我登录到SSMS中的实例。它告诉我下面的错误。请你帮忙好吗
错误消息"无法找到数据库ID 0"。数据库可能尚未激活或正在转换中。一旦数据库可用,就重新发出查询。如果您认为此错误不是由于数据库正在转换其状态而继续发生此错误,请联系您的主要支持提供商。
请查阅Microsoft SQL Server错误日志以及与错误发生时相关的任何其他信息。'所以我已经运行了下面所有的dmv。唯一返回的信息是replica_id,其他信息都是null
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]
我在另一个有同样问题的人那里遇到了类似的问题。
他们最终通过cmd成功连接到SQL Server实例并删除可用性组来解决这个问题。
我的猜测是,有一个特定的连接保存在SSMS中,试图连接到CAG(包含可用性组)成员的特定数据库,这就是为什么SQL Server试图启动到CAG(部分配置)的连接。
SSMS中保存的连接很可能是AG侦听器的连接,或者是它的"初始目录"。被配置为CAG成员的数据库。
一旦它们通过CMD连接,它们连接到实例和另一个默认数据库(可能是"master"),这就是为什么SQL没有尝试启动到CAG的连接。
换句话说:仔细检查SSMS中保存的连接,并确保没有连接到AG侦听器,也不是数据库,该数据库是/曾经是AG的成员.
连接成功后,删除可用性组(再一次).