Sql server 如何处理此复制场景?
假设有一些数据库:p、S1、S2、S3等 p(publisher)有一些表需要在S1、S2和S3(订阅服务器)上复制(克隆和同步)。这些表的副本将是只读的。此外,副本将被S1、S2、S3等中的一些其他表引用(通过外键) 比如说,Sql server 如何处理此复制场景?,sql-server,database,replication,database-replication,transactional-replication,Sql Server,Database,Replication,Database Replication,Transactional Replication,假设有一些数据库:p、S1、S2、S3等 p(publisher)有一些表需要在S1、S2和S3(订阅服务器)上复制(克隆和同步)。这些表的副本将是只读的。此外,副本将被S1、S2、S3等中的一些其他表引用(通过外键) 比如说, P有表P.O1和P.O2。S1将有S1.O1\u副本、S1.O2\u副本和S1.OTHER,其中S1.OTHER引用S1.O1\u副本 根据您的经验,在这种情况下使用(据我所知,这是一种基于日志的复制)是否合适?还是我应该更好地使用?尽管如此,我认为触发器可能需要在
- P有表P.O1和P.O2。S1将有S1.O1\u副本、S1.O2\u副本和S1.OTHER,其中S1.OTHER引用S1.O1\u副本
谢谢:)您可以为此使用事务复制。我将给出的警告都涉及初始化或重新初始化订阅者。添加文章时,默认行为是在订阅服务器上删除对象。如果有外键指向已复制表的表,则删除操作将失败。你当然可以解决这个问题,但这是需要注意的 还有一件事:我喜欢将订阅的数据库视为只读数据库,因为它减少了我的备份需求(即,如果数据库发生问题,我会创建一个新数据库并重新订阅,而不是恢复订阅的备份)。在订阅服务器上存储新数据时,您不会有这样的奢侈。谢谢:)正如您所说,有一些方法可以避免在添加新文章后重新初始化快照:,等等。我希望您不介意,在接受答案之前,我想听听其他一些意见。