【问题标题】:Best way to syncing two different database同步两个不同数据库的最佳方法
【发布时间】:2020-02-17 18:06:16
【问题描述】:

我有两个数据库(SQL Server),一个数据库有 250 万条记录,另一个是空的,我想将数据从第一个数据库传输到第二个数据库,之后每次更改第一个数据库时,第二个数据库必须同步。而且我们必须以离线方式使用 excel 文件进行操作(它们之间没有在线方式),谁能告诉我这样做的指南吗?

【问题讨论】:

  • 关于这个主题的文章很多。女士:docs.microsoft.com/en-us/sql/relational-databases/replication/…。第三方:toptal.com/sql/…
  • 第二个数据库是只读的?或者它也会更新?你是说他们之间没有在线同步的可能性,对吧?好像您需要在 U 盘中携带更改?可能最简单的方法是在另一个上创建备份和恢复。
  • @CetinBasoz 第二个数据库也必须更新。是的,没有在线方式,我们将第一个数据库导出到 excel 文件,然后在第二个数据库中从 excel 文件导入,现在我们在第一个数据库中有近 300 万条记录将通过这个 excel 文件传输。我们担心服务器负载过重,第一次读取 300 万条记录以插入第二个数据库,每次读取 300 万条记录以从 excel 文件更新
  • 300万插入真的不是问题,使用SqlBulkCopy可以在一分钟或更短的时间内完成。您的问题的其余部分是无法理解的(您将如何处理冲突,在两个站点上编辑的数据......)。
  • 检查 SQL Server 文档中的 Change_Tracking。这可能会对您有所帮助。

标签: sql sql-server database database-administration


【解决方案1】:

只有一种开箱即用的脱机复制解决方案,即不需要从分发者到发布者、从订阅者到分发者或从分发者到订阅者的网络连接。

Snapshot ReplicationAlternate Snapshot Location。您拍摄已发布表的快照,将快照以某种方式复制到订阅者可见的位置,然后从新位置应用快照。

【讨论】:

    【解决方案2】:

    有不同的方法可以做到这一点,但我认为最简单的可能是复制,您可以使用事务复制或快照复制。

    https://docs.microsoft.com/en-us/sql/relational-databases/replication/transactional/transactional-replication?view=sql-server-ver15

    【讨论】:

    • 不认为这符合“我们必须离线完成”的要求吗?
    • @DaleK 我不认为 OP 理解 And we must do it in offline way 与 Excel 并不完全实用。复制可以“离线”工作 - 您甚至可以使用 CD 分发快照。如果有的话,这个主题对于 SO 问题来说太宽泛了
    • @PanagiotisKanavos 我更多地指出了这样一个事实,即我们不了解 OP 的要求足以给出答案,并且提供的任何答案都应该真正包括 OP 如何回答的细节问题,而不仅仅是包含一个链接。
    • @DaleK 我同意 - 此外,复制本身并不是微不足道的
    • @AminPashna 是什么让你觉得我不知道该怎么做?您发布了一个链接,没有关于它如何回答问题的其他指导。 StackOverflow 不鼓励仅链接答案。为了帮助 OP 解决他们的问题,您需要添加一些文本,让他们知道他们在寻找什么——就像 David 所做的那样。
    猜你喜欢
    • 2011-02-13
    • 2012-09-27
    • 1970-01-01
    • 2020-09-27
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    相关资源
    最近更新 更多