0

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

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

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


所以我的问题是:

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

1 回答 1

0

不知道复制启动的锁,但是在维护期间,您可以将整个数据库设置为 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

读取当前状态

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

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

于 2013-05-08T10:07:37.870 回答