pg_probackup icon indicating copy to clipboard operation
pg_probackup copied to clipboard

checkdb выдает ошибку при работе с некоторыми видами индексов

Open PavelGilev opened this issue 4 years ago • 3 comments

Если в базе данных создать следующие таблицу и индекс

create table idxpart (a int) partition by range (a);
create index on idxpart (a);

и попытаться проверить базу с помощью checkdb, pwd/pg_probackup checkdb --amcheck -D path/to/cluster/ -d postgres -p 5432; echo $?` происходит ошибка. Лог, при этом, выглядит так:

WARNING: Current PostgreSQL role is superuser. It is not recommended to run backup or checkdb as superuser.
INFO: Start checking data files
INFO: Data files are valid
WARNING: Current PostgreSQL role is superuser. It is not recommended to run backup or checkdb as superuser.
INFO: Start amchecking PostgreSQL instance
INFO: Amchecking database 'postgres' using extension 'amcheck' version 1.3 from schema 'public'
WARNING: Thread [1]. Amcheck failed in database 'postgres' for index: 'public.idxpart_a_idx': ERROR:  only B-Tree indexes are supported as targets for verification
DETAIL:  Relation "idxpart_a_idx" is not a B-Tree index.

WARNING: Thread [1]. Amcheck failed in database 'postgres' for index: 'public.idxpart_a_idx1': ERROR:  only B-Tree indexes are supported as targets for verification
DETAIL:  Relation "idxpart_a_idx1" is not a B-Tree index.

WARNING: Amcheck failed for database 'postgres'
ERROR: checkdb --amcheck finished with failure. Not all checked indexes are valid. All databases were amchecked.
1

PavelGilev avatar Oct 07 '21 05:10 PavelGilev

Это проблемы расширения amcheck Конечно было бы очень хорошо, если бы сообщество внесло исправления в код расширения.

sgrinko avatar Oct 07 '21 12:10 sgrinko

Добрый день, Сергей! Утилита pg_amcheck так же как и pg_probackap использует это расширение. Однако в случае с pg_amcheck ошибок не возникает, она как то умеет обходить неугодные индексы. Выглядит это примерно так. Та же таблица с тем же индексом,

create table idxpart (a int) partition by range (a);
create index on idxpart (a);

И при просьбе проверить базу: pwd`/pg_amcheck -p 5432 -h localhost -d postgres никаких предупреждений и ошибок нет.

PavelGilev avatar Oct 11 '21 04:10 PavelGilev

Добрый день! Большое спасибо за фидбэк! Исправим.

gsmolk avatar Oct 21 '21 22:10 gsmolk