事务复制到同一服务器实例上的数据库

And*_*the 5 sql-server sql-server-2012 transactional-replication

我们有一个 SQL Server 2012 实例,其中包含一个包含许多产品线数据的数据库。

我们正在寻找一种方法将这些数据的子集放入同一实例上的另一个数据库中。

这不一定是连续的,因为我们正在寻找方法来轻松导出我们可以发送给供应商的子集备份(我们有一家公司将这些数据加载到他们自己的 sql server 中以生产我们的产品)出售,自然是巨大的,我们希望将其缩减到他们经常使用的产品线)或用于加载 SQLite DB 以用于离线应用程序。

ProductDB - 所有产品线数据的超集。

ProductLine1DB - 结构与ProductDB相同的子集,但数据仅与产品线 1 相关。

ProductLine2DB - 结构与ProductDB相同的子集,但数据仅与产品线 2 相关。

这可以每晚、每周、根据我们需要的频率进行,但不能连续复制。

我们不想添加分发服务器甚至额外的订阅服务器。我们希望复制发生在同一台服务器上,而订阅者数据库在同一台服务器上。

这是事务复制的好选择吗?

为什么或者为什么不?

我们显然有其他选择来加载这些数据,但似乎使用事务复制之类的东西可能是一个很好的例子。我听说它功能强大,但在未进行最佳设置时容易出现问题。

注意: 我不是 DBA,只是一名开发人员,但我们目前正在寻找新的 DBA,我们中的一些人正在临时接管这样的职责。

Kin*_*hah 3

这是事务复制的良好候选者吗?

我会使用SSIS 增量加载数据(如果数据集太大),或者每天晚上(或任何时候)新鲜加载数据(如果数据较少)。

这样您就不必创建任何发布、分发数据库或订阅。

当您对主数据库进行升级时,尤其是更改架构时,易于管理。

另一种选择是使用BCP OUT 和 BULK INSERT IN。如果你愿意的话,我有一个脚本可以帮助你。确保调整脚本以使用 where 子句过滤掉您需要的数据:-)

注意:不要误会我的意思,因为我没有告诉你,你不能使用 T-Rep,但我认为它并不完全适合你的情况。您可以使用更好的工具来满足您的场景。