1

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

Postgresql 文档指出:

哈希索引上的操作目前没有 WAL 记录,因此重播不会更新这些索引。这将意味着索引将忽略任何新插入,更新的行将明显消失,而删除的行仍将保留指针。换句话说,如果您修改带有哈希索引的表,那么您将在备用服务器上得到不正确的查询结果。恢复完成后,建议您在完成恢复操作后手动 REINDEX 每个此类索引。

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

4

1 回答 1

2

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

SELECT  *
FROM    pg_class
    JOIN pg_am ON pg_am.oid = relam
WHERE   relkind = 'i'
AND     amname = 'hash';
于 2015-02-28T07:23:32.867 回答