【问题标题】:Does merge replication lock subscriber database?合并复制是否锁定订阅者数据库?
【发布时间】:2013-04-26 15:00:47
【问题描述】:

我需要在 2 个数据库之间配置合并复制。这些数据库具有外键完整性,这使得复制不起作用,所以我求助于:

  1. 删除订阅者数据库中的所有 FK,
  2. 复制和
  3. 重新创建 FK。

然而,这会使订阅者数据库容易受到 FK 违规的影响。


所以我的问题是:

  1. 复制过程中是否会锁定订阅者数据库、引发事务并以任何方式使数据库无法使用?
  2. 如果没有,我可以通过 TSQL 手动启动这样的锁吗?
  3. 如果以上都不是可能的,是我遗漏了什么吗?

【问题讨论】:

    标签: sql foreign-keys merge-replication locks


    【解决方案1】:

    不知道复制启动的锁,但在维护期间,您可以将整个数据库设置为 single_user 或 restricted_user。

    ALTER DATABASE SET RESTRICTED_USER 
    

    我推荐第二个,因为它允许所有用户访问数据库,引用:

    db_owner 固定数据库角色和 dbcreator 的成员和 sysadmin 固定服务器角色

    (见此处:http://msdn.microsoft.com/en-us/library/aa933082%28SQL.80%29.aspx

    ,只限制普通用户。它将等到所有常规用户连接完成

    ALTER DATABASE SET RESTRICTED_USER WITH ROLLBACK IMMEDIATE 
    

    将立即终止所有此类连接。这个

    select DATABASEPROPERTYEX ('ocon_reportdb','UserAccess') DATABASEPROPERTYEX_UserAccess
    

    读取当前状态

    更新: 有维护活动,例如由数据库引擎执行的统计信息。使用WITH ROLLBACK IMMEDIATE 也会杀死这些连接,所以要小心

    UPDATE2:规范在受限用户模式下的访问权限

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 2010-10-11
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 2014-10-21
      • 1970-01-01
      相关资源
      最近更新 更多