Progress DB:备份还原和查询单个表

Progress DB: backup restore and query individual tables

这里是用例:我们需要从客户端服务器备份一些表,将其复制到我们的服务器,恢复它,然后 运行 使用 ODBC 进行一些查询。

我通过使用 probkup 备份、prorest 恢复和 proserve 使 SQL 查询可访问,设法对整个数据库执行此过程。

但是,有些数据库很大 (> 8GB),因此我们正在寻找一种解决方案来只备份我们需要的表。我没有在 probkup 如何做到这一点的文档中找到任何内容。

probkup 和 prorest 是块级程序,无法通过 table 进行备份或恢复。

要执行您要求的操作,您需要从源数据库的 table 中转储数据,然后将其加载到目标数据库中。

Progress 仅支持完整数据库备份。

要获得您正在寻找的效果,您可以转储(导出)您想要的表,然后将它们加载到一个空数据库中。

"proutil dump"和"proutil load"是你要开始挖掘的地方。

详细信息会有所不同,具体取决于您想做什么以及您可以使用哪些资源和能力。

另一种选择是将有问题的表复制到部分数据库。 Progress 有一个名为 "pro2" 的产品可以帮助解决这个问题。它通常指向 SQL 个目标,但您也可以将它指向 Progress 数据库。

或者,如果您有编程技能,您可以使用复制触发器组合一个解决方案(在幕后,这就是 pro2 所做的...)

如果您的目的只是为了维护数据库的副本,您也可以尝试增量备份。根据您的情况,这可能会加快速度。

其他选项包括各种形式的数据库复制,允许您保留数据库的实时或近实时副本。

  • OpenEdge 复制。使用正确的许可证,您可以对复制目标进行仅查询访问,这有利于报告和分析。
  • 第三方复制产品。这些在目标数据库和限制要复制的表方面可以更加灵活。
  • 本土复制(通过复制和应用 AI 文件)。这不是非常复杂,但您必须考虑完成工作和维护系统的成本。有一些脚本可以帮助您入门。

或者,正如 Tom 所说,您可以通过触发器来巧妙地进行复制。