误删分发数据库后Azure SQL托管实例无法禁用复制分发器报错求助
分发器强制禁用操作步骤
- 首先使用拥有sysadmin权限的账号登录目标Azure SQL Managed Instance,切换到
master数据库。 - 执行以下存储过程,跳过依赖校验强制删除分发配置:
-- 先清理分发数据库残留的复制元数据 EXEC sp_removedbreplication 'distribution' GO -- 强制移除分发器,跳过所有检查,忽略已不存在的分发数据库关联 EXEC sp_dropdistributor @no_checks = 1, @ignore_distributor = 1 GO
- 执行完成后验证配置是否清除,运行以下查询,返回结果为空即为清理成功:
SELECT * FROM sys.servers WHERE is_distributor = 1
- 如果仍有残留的发布端配置,可以执行以下命令清理所有用户数据库的复制相关元数据:
EXEC sp_msforeachdb ' IF ''?'' NOT IN (''master'', ''model'', ''msdb'', ''tempdb'') BEGIN USE [?] EXEC sp_removedbreplication END ' GO
注意:以上操作会清除实例上全部复制相关配置,若当前实例还有其他正常运行的复制业务,请提前备份配置并做好业务断流确认,避免影响正常业务。
内容的提问来源于stack exchange,提问作者ashfaq
相关产品推荐
相关产品推荐

