postgresql – 数据库内容版本控制
我有兴趣保持在我的数据库中的某些表上发生的每个变化的运行历史,从而能够重建数据库的历史状态以进行分析.
我正在使用Postgres,而这个MVCC的东西似乎就是为了这个目的可以利用它,但我找不到任何文档来支持这个.我可以做吗?有没有更好的办法? 任何输入是赞赏! – – – -编辑 – – – – 我已经把Denis的回应标记为答案,因为他确实回答了MVCC是否是我想要的那个问题.然而,我已经解决的策略在下面详细介绍,以防任何人觉得有用: Postgres功能完成我所需要的:在线备份/时间恢复. http://www.postgresql.org/docs/8.1/static/backup-online.html解释了如何使用此功能,但实质上您可以将此“写入日志”设置为归档模式,拍摄数据库的快照(例如,在生效之前),然后持续存档WAL.然后,您可以随时使用日志重放来随时调用数据库的状态,如果您选择(通过在备用服务器上不断重播新的WAL),则有一个热备份的一个好处. 也许这种方法不像其他保存历史的方法那么优雅,因为您需要为每个希望查询的时间点实际构建数据库,但是看起来非常容易设置和丢失零信息.这意味着当我有时间来改善我对历史数据的处理时,我会拥有一切,因此能够将我的笨重的系统变成一个更优雅的系统. 使这样完美的一个关键事实是,我的“有效时间”与特定应用程序的“交易时间”相同 – 如果不是这样,我只会捕获“交易时间”. 在我发现WAL之前,我正在考虑只是采取每日快照或一些东西,但是大尺寸的要求和涉及的数据丢失并不适合我. 为了在一开始就不会影响我的数据保留的快速起步和运行的方式,这似乎是完美的解决方案.
不是真的.有一些工具可以看到死排,因为自动吸尘是最终可以回收的.
如果我的问题是正确的,你正在研究日志slowly changing dimensions. 你可能会发现这最近相关的线程有趣: Temporal database design,with a twist (live vs draft rows) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c# – Nancy Razor部分视图无法在发布模式下呈现
- SQLite学习笔记(4)
- Oracle中sys用户和system用户的区别
- 什么是解析文章内容的Wikipedia XML转储并填充MySQL数据库的
- ios – google admob undefined symbol for architecture a
- VS2005下如何安装配置编译Qt4.5
- xml解析性能比较
- 如何通过SQLite.NET降序排序? OrderByDescending()给我错误
- c# – 如何确保我们只有一个实例,并以正确的方式处理它
- ruby-on-rails – 来自url的Rails CarrierWave存储图像无法