我正在使用Postgres,而这个MVCC的东西似乎就是为了这个目的可以利用它,但我找不到任何文档来支持这个.我可以做吗?有没有更好的办法?
任何输入是赞赏!
– – – -编辑 – – – –
我已经把Denis的回应标记为答案,因为他确实回答了MVCC是否是我想要的那个问题.然而,我已经解决的策略在下面详细介绍,以防任何人觉得有用:
Postgres功能完成我所需要的:在线备份/时间恢复.
http://www.postgresql.org/docs/8.1/static/backup-online.html解释了如何使用此功能,但实质上您可以将此“写入日志”设置为归档模式,拍摄数据库的快照(例如,在生效之前),然后持续存档WAL.然后,您可以随时使用日志重放来随时调用数据库的状态,如果您选择(通过在备用服务器上不断重播新的WAL),则有一个热备份的一个好处.
也许这种方法不像其他保存历史的方法那么优雅,因为您需要为每个希望查询的时间点实际构建数据库,但是看起来非常容易设置和丢失零信息.这意味着当我有时间来改善我对历史数据的处理时,我会拥有一切,因此能够将我的笨重的系统变成一个更优雅的系统.
使这样完美的一个关键事实是,我的“有效时间”与特定应用程序的“交易时间”相同 – 如果不是这样,我只会捕获“交易时间”.
在我发现WAL之前,我正在考虑只是采取每日快照或一些东西,但是大尺寸的要求和涉及的数据丢失并不适合我.
I am using Postgres,and this MVCC thing just seems like I should be able to exploit it for this purpose but I cannot find any documentation to support this. Can I do it?
不是真的.有一些工具可以看到死排,因为自动吸尘是最终可以回收的.
Is there a better way?
如果我的问题是正确的,你正在研究日志slowly changing dimensions.
你可能会发现这最近相关的线程有趣: