Postgresql:查找散列索引

时间:2015-02-28 07:09:26

标签: postgresql wal

我正在使用Postgresql 9.1将WAL存档和流复制设置到热备用服务器。

Postgresql文档声明:

  

哈希索引的操作目前不是WAL记录的,因此重放   不会更新这些索引。这意味着任何新的插入   将被索引忽略,更新的行显然会消失   删除的行仍将保留指针。换句话说,如果你   修改一个带有哈希索引的表,然后就会出错   在备用服务器上查询结果。当恢复完成时,它就是   建议你在完成后手动REINDEX每个这样的索引   恢复行动。

如何确定特定数据库是否包含哈希索引?

1 个答案:

答案 0 :(得分:2)

检查pg_classpg_am以使用哈希方法查找索引:

SELECT  *
FROM    pg_class
    JOIN pg_am ON pg_am.oid = relam
WHERE   relkind = 'i'
AND     amname = 'hash';