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

SQL Server 2017事务复制禁用后保留复制表数据的方法咨询

在SQL Server 2017中禁用事务复制并保留订阅端数据的操作建议

前置准备

  • 确认复制同步状态正常,无未完成事务。可在发布服务器执行以下命令检查:
    EXEC sp_replmonitorhelppublication @publisher = '你的发布服务器名', @publication = '目标发布名';
    
  • 备份订阅端Database2,确保数据安全(虽然操作不会删除用户数据,但备份是稳妥的前置步骤)。
  • 禁用SQL Server代理中与该复制相关的同步作业,避免操作过程中触发同步。

订阅端(Database2)操作:解除复制关联但保留用户对象

在Database2所在服务器执行脚本,清除复制相关系统对象,保留用户表、数据、键等:

USE Database2;
EXEC sp_subscription_cleanup 
    @publisher = '发布服务器名', 
    @publisher_db = 'Database1', 
    @publication = '目标发布名';

发布端与分发端清理

删除对应发布

在发布服务器执行:

USE Database1;
EXEC sp_droppublication @publication = '目标发布名';

清理分发端(可选)

如果该分发服务器仅服务于本次复制,可执行以下命令删除分发数据库和分发配置:

USE master;
-- 删除分发数据库
EXEC sp_dropdistributiondb @database = '你的分发数据库名';
-- 删除分发服务器配置
EXEC sp_dropdistributor @no_checks = 1;

若分发服务器还有其他复制任务,跳过此步骤即可。

后续验证

  • 检查Database2中的用户表、数据、主键、外键等对象是否完整。
  • 确认订阅端系统表(如MSreplication_subscriptions)已被清除,复制相关后台进程不再运行。

关键注意事项

  • 禁止使用SSMS图形界面的“删除订阅并删除订阅数据库中的对象”选项,该操作会直接删除订阅端的用户表和数据。
  • 操作全程确保无其他进程修改Database2中的复制表,避免数据不一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:42:08