合并复制锁定订阅者数据库



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

  1. 删除用户数据库中的所有FKs,
  2. 复制,
  3. 重建fk。

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


我的问题是:

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

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

ALTER DATABASE SET RESTRICTED_USER 

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

db_owner的成员固定了数据库角色和dbcreatorSysadmin固定服务器角色

(参见: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: specs to have access in restricted_user-mode

最新更新