【问题标题】:Partial data transfer between two databases两个数据库之间的部分数据传输
【发布时间】:2023-09-11 07:10:01
【问题描述】:

我有一个包含多个表的 SQL Server 数据库。它们中的大多数包含通常不会改变的数据。

一个表(我们称之为readings_table)包含很多行,并且一直在更新。

这个特定的表中可能有数百 GB,而所有其他表加起来最多可能有几兆字节。

现在,我部署了两台 SQL Server:一台在运营网络中,另一台在公共网络中。

两个网络之间只有一种方式通信(物理屏障)。

我有一种自动机制可以将数据从一个readins_table 传输到另一个在线。

我想做的是建立一个工作流程,可以帮助我从DB1(可操作)中获取除readings_table 表之外的所有数据,将其备份,然后将其恢复到DB2

我已阅读有关部分数据库备份的信息,但我不确定这是否适用于我的情况。

如果有任何建议,我们将不胜感激。

【问题讨论】:

  • SQL Server backup 总是全有或全无;您不能备份除了一张表之外的所有内容。由于那些其他表不包含大量数据,我建议您考虑创建 SQL 脚本,将数据插入到 DB2 上的数据库表中(在 SSMS 中,转到 Tasks > Generate Scripts 然后编写脚本相关表格的数据部分
  • 为什么不使用 SQL 复制系统呢?它几乎可以立即运行。
  • @Nidzaaaa ,如果沟通是一种方式,我认为我无法复制
  • @marc_s ,谢谢,我就是这么想的。那么我的选择是什么?编写一个怪物脚本来保存和恢复除一个表之外的所有表中的数据?
  • 如果您转到Tasks > Generate Scripts,您可以选择要编写脚本的表格

标签: .net sql-server database replication


【解决方案1】:

这样做的一种(非常粗略的)方法是将读数表完全单独移动到一个单独的数据库中。然后,您可以通过 SQL 视图(称为读数表)将此表链接到操作数据库。这样,操作数据库的备份将不会包含此表。

操作数据库中视图的 SQL 如下所示:

    SELECT * FROM MyOtherDB.dbo.readings_table

显然,这种方法存在很多缺陷,但它会奏效。

【讨论】:

    最近更新 更多