postgresql – 如何列出过去24小时内所有数据表的变化?
我们有一个丑陋的问题,错误地,平衡器将一些请求重定向到具有与生产非常相似的数据的测试实例,现在我知道在测试Postgres中记录的数据属于生产
有没有办法列出Postgres过去24小时内所有数据变化的表格? Postgres版本是9.3,我有大约250个表. 解决方法
First consider my comment.
Postgres直到包括9.4本身不会记录插入或更新行时的时间戳. 行标题中有一些系统列可以帮助进行取证工作.如果表格中没有其他任何内容发生,则行(ctid)的物理顺序可以作为指示符.在简单的情况下,插入时会将新行附加到表的物理端,因此ctid指示最后插入的内容 – 直到表中的任何更改. Postgres可以随意重新排列行的物理顺序,例如使用VACUUM.任何UPDATE也会写一个新的行版本,它可以改变物理位置.新版本不必位于表格的末尾. Postgres尝试在可能的情况下将新行版本保留在同一数据页面上(HOT update)… 也就是说,这是一个简单的查询来获取给定表的物理上最后一行: SELECT ctid,* FROM big ORDER BY ctid DESC LIMIT 10; 有关详细信息,请联系dba.SE: > VACUUM returning disk space to operating system 插入事务id xmin可能很有用: > How to find out when data was inserted to Postgres? 如果您碰巧在事件发生前就有了备份测试数据库,那将会很有帮助.将旧状态恢复到测试数据库的单独模式并比较表… 通常,我会在插入行时和/或上次更新时为重要表添加一个或两个timestamptz列.那对你来说非常有用…… 对你来说还有什么好处:“temporal” features introduced in the SQL standard with SQL:2011.但是在Postgres中还没有实现. Postgres 9.5引入了一个记录提交时间戳的功能(如@Craig commented).
And some functions to work with it. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 【PostgreSQL】pgAdmin4 连接数据库
- 是否有可以从c#访问的shift和copy cpu指令?
- ALTER TABLE的用法 增加列、删除列、改列名、改列约束、改表
- React中render函数中变量map中事件无法关联的解决办法
- swift – Xcode构建完美失败 – 找不到COpenSSL
- ruby – 我可以使用AREL / ActiveRecord更优雅地编写此查询
- reactos编译成功
- XML fragments parsed from previous mappers already cont
- 南沙政府应急系统之GIS一张图(arcgis api for flex)讲解(
- ruby-on-rails – 使用rails迁移创建缺少的自动增量属性