【问题标题】:Is there any way to safely stop/resume database replication programmatically?有没有办法以编程方式安全地停止/恢复数据库复制?
【发布时间】:2013-11-11 12:11:12
【问题描述】:

我正在使用 SQL Server 2008 R2。我想知道是否有办法从 C# 代码以编程方式安全地停止/恢复数据库复制。你有什么建议吗? “安全”是指订阅者数据库必须保持一致状态。

【问题讨论】:

  • 根据定义,停止复制将使订阅者与发布者失去一致性。你能解释一下你想要做什么吗?
  • @Curt 好吧,我需要对副本执行一些长时间运行的查询,关键是我希望在此期间停止复制过程。查询的性质不允许在一个数据库状态上执行其中的一些,而在另一个数据库状态上执行其余的(某些表可以通过运行复制来更改)。

标签: c# sql sql-server-2008-r2 replication


【解决方案1】:

这可以通过复制管理对象 (RMO) 来完成。

RMO 允许通过 Microsoft.SqlServer.Replication 命名空间以编程方式控制复制。

查看Replication Management Object Concepts 以开始使用。

请记住,RMO 已被弃用,并且可能会在 SQL Server 的未来版本中被删除。我创建了一个Microsoft Connect item 来请求 Microsoft 重新考虑弃用 RMO API。如果你觉得它很重要,请投票。

以编程方式控制复制的推荐替代品是 T-SQL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-16
    • 2017-07-27
    • 1970-01-01
    • 2021-09-23
    • 1970-01-01
    相关资源
    最近更新 更多