首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用tplog恢复HDB?

如何使用tplog恢复HDB?
EN

Stack Overflow用户
提问于 2016-02-27 12:21:38
回答 2查看 508关注 0票数 2

我们的系统目前正在将tplog备份到S3。根据我所读到的内容,只要确保这些文件位于kdb期望的位置,就可以在RDB在白天出现问题时进行恢复。

然而,我没有看到关于如何使用tplog来恢复HDB的解释。我也想创建另一个备份系统来将hdb文件夹同步到S3。这将需要更多的工作来设置和使用至少两倍的存储空间,而且是冗余的。因此,如果没有必要,我想避免这个额外的步骤。

如果我们无法访问HDB文件夹,是否有办法从tplog中恢复HDB,或者我是否需要为HDB文件夹添加另一个备份系统?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-03-02 02:01:16

将日志文件重放到HDB。

代码语言:javascript
复制
.Q.hdpf[`::;get `:tpLOgFile;.z.d;`sym]

根据我的经验,如果您正在从TP日志文件构建HDB,使用get函数加载tp日志文件,并使用dpft保存它,这是非常有效的。

如果您想要使用-11!函数,那么您必须提供一个更新函数(-11!从tp日志文件中读取每一行并调用更新函数,然后将数据插入到内存表中),以将数据加载到内存中,然后将数据保存在磁盘上。

在这两种情况下,您都必须将数据加载到内存中,但是通过使用get函数,您可以跳过upd函数调用

-11!函数对于构建关系数据库非常有效,因为它不会加载完整的日志文件。

有关更多详细信息,请阅读下面的链接http://www.firstderivatives.com/downloads/q_for_Gods_July_2014.pdf

票数 2
EN

Stack Overflow用户

发布于 2016-02-27 12:28:41

好的,实际上找到了一个类似问题的论坛答案,以及一个用于重放日志文件的脚本。

https://groups.google.com/forum/#!topic/personal-kdbplus/E9OkvJKGrLI

Jonny Press说:

通常的方法是使用-11!以重播日志文件。一个基本的脚本如下所示

代码语言:javascript
复制
// load schema
\l schema.q

// define upd
upd:insert

// replay log file 
-11!`:schema2015.07.09

// save
.Q.hdpf[`::;`:hdb;2015.07.09;`sym]

这会将完整的日志文件读取到内存中。因此,您需要有可用的RAM。

TorQ有一个TP日志重放脚本:

https://github.com/AquaQAnalytics/TorQ/blob/master/code/processes/tickerlogreplay.q

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35665614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档