Postgres 9.1.6 Indeks kesalahan berisi halaman nol yang tidak terduga di blok 0

8

Saya memiliki setup replikasi streaming pada Postgres 9.1.6 yang berjalan pada server debian dan berjalan dengan baik.

Ketika saya mencoba menjalankan kueri pada DB replika saya mendapatkan kesalahan di bawah ini:

ERROR:  index "tbl_cust_id_idx" contains unexpected zero page at block 0
HINT:  Please REINDEX it.

Apa yang mungkin menyebabkan kesalahan ini?

Pertanyaannya juga diposting di /programming/17865135/postgres-9-1-6-error-index-contains-unexpected-zero-page-at-block-0

McKibet
sumber
Bisakah Anda menjalankan pertanyaan lain: SELECT version()atau SELECT now()?
1
Apakah Anda mendapatkan kesalahan ini saat terhubung ke database? Bisakah Anda terhubung sama sekali? Jika ya, bisakah Anda berhasil mengeluarkan pertanyaan? Kalau tidak, ini tidak terlihat bagus. Apa pengaturan terkait fsync Anda pada replika? Apa yang kita ketahui tentang sistem penyimpanan di sana?
dezso

Jawaban:

7

Saya baru saja mengalami masalah yang sama pada Postgres 8.3.11. Meskipun saya tidak dapat mengidentifikasi akar penyebabnya, perbaikannya cukup sederhana:

REINDEX INDEX tbl_cust_id_idx;

Halaman ini berisi petunjuk tentang apa yang mungkin menyebabkan kesalahan, meskipun tidak jelas:

Indeks tabel yang ditunjukkan rusak (mungkin akibat postgres terakhir atau kegagalan sistem, ada kekurangan ruang kosong pada perangkat, dll).

Idealnya akan sangat membantu jika ada sesuatu yang dapat dilakukan untuk secara proaktif mencegah atau memperbaiki kesalahan ini. Sisi baiknya, ini adalah pertama kalinya kami melihat masalah ini dalam beberapa tahun dan di ratusan mesin.

Justin Ethier
sumber