Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 合并复制是否锁定订阅服务器数据库?_Sql_Foreign Keys_Merge Replication_Locks - Fatal编程技术网

Sql 合并复制是否锁定订阅服务器数据库?

Sql 合并复制是否锁定订阅服务器数据库?,sql,foreign-keys,merge-replication,locks,Sql,Foreign Keys,Merge Replication,Locks,我需要在2个数据库之间配置合并复制。这些数据库具有外键完整性,这使得复制无法工作,因此我求助于: 正在删除订阅服务器数据库上的所有FK 复制,以及 重新创建FKs 但是,这会使订阅服务器数据库容易受到FK冲突的影响 因此,我的问题是: 复制是否会锁定订阅服务器数据库,引发事务,并使数据库在复制过程中以任何方式不可用 如果没有,我可以通过TSQL手动启动这样一个锁吗 如果以上任何一项都不可能的话,我有没有遗漏什么 不知道由复制启动的锁,但在维护期间,您可以将整个数据库设置为单用户或受限用户 AL

我需要在2个数据库之间配置合并复制。这些数据库具有外键完整性,这使得复制无法工作,因此我求助于:

  • 正在删除订阅服务器数据库上的所有FK
  • 复制,以及
  • 重新创建FKs 但是,这会使订阅服务器数据库容易受到FK冲突的影响


    因此,我的问题是:

  • 复制是否会锁定订阅服务器数据库,引发事务,并使数据库在复制过程中以任何方式不可用
  • 如果没有,我可以通过TSQL手动启动这样一个锁吗
  • 如果以上任何一项都不可能的话,我有没有遗漏什么

  • 不知道由复制启动的锁,但在维护期间,您可以将整个数据库设置为单用户或受限用户

    ALTER DATABASE SET RESTRICTED_USER 
    
    我推荐第二个,因为它允许以下所有用户访问数据库:

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

    (见此处:)

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

    ALTER DATABASE SET RESTRICTED_USER WITH ROLLBACK IMMEDIATE 
    
    将立即终止所有此类连接。这个

    select DATABASEPROPERTYEX ('ocon_reportdb','UserAccess') DATABASEPROPERTYEX_UserAccess
    
    读取当前状态

    更新: 还有一些维护活动,例如数据库引擎执行的统计。将
    与立即回滚一起使用也会终止这些连接,因此要小心

    更新2:在受限用户模式下具有访问权限的规范