You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL托管实例禁用Service Broker报错:涉及镜像或可用性组

问题:SQL托管实例禁用Service Broker失败

执行以下命令尝试禁用Service Broker:

ALTER database segenresourcedb 
    SET DISABLE_BROKER with rollback immediate;

收到错误提示:

Msg 1468, Level 16, State 1, Line 11
The operation cannot be performed on database "SegenResourceDB" because it is involved in a database mirroring session or an availability group. Some operations are not allowed on a database that is participating in a database mirroring session or in an availability group.

Msg 5069, Level 16, State 1, Line 11
ALTER DATABASE statement failed.

实例为标准层,已检查镜像相关表无数据,但错误依然存在,需成功禁用Service Broker。


解决方案
  • 验证数据库关联状态
    先通过系统视图确认数据库是否真的属于可用性组或镜像会话:

    -- 检查数据库镜像及AG状态
    SELECT name, mirroring_state_desc, is_in_availability_group
    FROM sys.databases
    WHERE name = 'SegenResourceDB';
    
    -- 检查AG集群中的数据库关联
    SELECT d.database_name, ag.name AS availability_group_name
    FROM sys.availability_databases_cluster d
    JOIN sys.availability_groups ag ON d.group_id = ag.group_id
    WHERE d.database_name = 'SegenResourceDB';
    

    若结果显示is_in_availability_group为1,或在AG集群查询中存在记录,说明数据库确实关联了可用性组。

  • 移除可用性组关联
    如果数据库属于某个可用性组,先执行移除操作:

    ALTER AVAILABILITY GROUP [你的可用性组名称] REMOVE DATABASE [SegenResourceDB];
    

    执行后再次运行第一步的查询,确认数据库已脱离AG。

  • 重新执行禁用Service Broker命令
    确认数据库无AG/镜像关联后,重新执行:

    ALTER DATABASE SegenResourceDB SET DISABLE_BROKER WITH ROLLBACK IMMEDIATE;
    
  • 处理残留元数据问题
    若查询未发现关联但仍报错,尝试切换到单用户模式操作:

    ALTER DATABASE SegenResourceDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    ALTER DATABASE SegenResourceDB SET DISABLE_BROKER;
    ALTER DATABASE SegenResourceDB SET MULTI_USER;
    

内容的提问来源于stack exchange,提问作者Anoop Agarwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 14:19:59