如何在缓存中定期备份一组表而不是整个命名空间?

时间:2015-05-22 17:04:14

标签: intersystems-cache

有没有办法让我只能在缓存中支持一组表? 我查看了系统管理门户,看来你所能做的就是以下几点。

  1. 配置所有数据库的完全备份
  2. 配置数据库列表的完全备份
  3. 配置数据库列表的增量备份
  4. 配置数据库列表的累积备份
  5. 使用[Home]>中的导出选项备份选定的Globals。 System Management Portal的[Globals]页面
  6. 以上所有内容都可以安排为后台任务,但是无法安排选项#5,或者它可以吗? 如果我可以将#5选项安排为后台任务,那么我会在夜间备份D全局并在需要时重新导入。

    由于

2 个答案:

答案 0 :(得分:1)

请注意,Caché标准备份仅适用于数据库,而不适用于命名空间 所以,有一些方法可以完成你的任务。

  1. 拆分数据,用于不同的数据库。通过全局映射的每个命名空间都可以根据需要定义多个数据库。关于制图的更多info
  2. 可以编写自定义任务,可以根据需要执行任何操作,并且可以执行任何其他任务,并可以根据需要进行安排。这有两种方式。
    • RunLegacyTask - 执行遗留任务;输入要在文本框中执行的代码
    • 您可以使用%SYS.Task.Definition API定义自己的任务类型;请参阅InterSystems类参考中的类文档。
  3. 以编程方式导出全局变量可以使用

    进行管理
    1. $ system.OBJ。Export(“Global.GLB”,“backup.xml”)和$ system.OBJ.Load(“backup.xml”)用于导入。但你应该记住,这些文件的重量大于数据。
    2. 其他格式,如GOF,%Global

答案 1 :(得分:1)

正如上面提到的DAiMor,您需要逐个导出全局变量或创建名称空间,其中您需要备份的所有全局变量将位于专用的CACHE.DAT文件中(请参阅文档中的全局映射)。

要备份此数据库,旧版备份可能不是最佳选择。如果你能负担得起停机时间 - 只需停止缓存'并复制CACHE.DAT文件。如果您有具有快照功能的存储 - 写入守护程序冻结+存储快照是无停机备份的最佳选择。

http://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls?KEY=GCDI_backup#GCDI_backup_methods