Page of relation is uninitialized sorunu

Bir veritabanı için replika sunucu kuruyordum. Network yeteri kadar hızlı olmadığı için master sunucu üstünden verileri diske kopyalıyıp replika sunucu üstüne taşıdım. Replika sunucuyu başlatarak eksik WAL dosyalarını master’dan çekmesini sağladım. Networkün çok hızlı olmadığını söylemiştim. Henüz fark kapanamadan master sunucu vacuum işlemine başlamış, epey zaman geçmiş, ardından ne olmuşsa replika sunucu bu tarz hatalar vererek kendini kapatmış.

2013-09-27 05:31:23 EEST [1/0]-[5038]: [930-1] user=,db= WARNING: page 126976 of relation pg_tblspc/2628796/PG_9.2_201204301/16413/7387012 is uninitialized  
2013-09-27 05:31:23 EEST [1/0]-[5038]: [931-1] user=,db= CONTEXT: xlog redo vacuum: rel 2628796/16413/7387012; blk 135332, lastBlockVacuumed 0  
2013-09-27 05:31:23 EEST [1/0]-[5038]: [932-1] user=,db= PANIC: WAL contains references to invalid pages  
2013-09-27 05:31:23 EEST [1/0]-[5038]: [933-1] user=,db= CONTEXT: xlog redo vacuum: rel 2628796/16413/7387012; blk 135332, lastBlockVacuumed 0  
2013-09-27 05:31:23 EEST []-[5035]: [1-1] user=,db= LOG: startup process (PID 5038) was terminated by signal 6: Aborted  
2013-09-27 05:31:23 EEST []-[5035]: [2-1] user=,db= LOG: terminating any other active server processes  

Çözüm olarak;

Replika sunucu üstündeki log içinde belirtilen tablo ya da index “pgtblspc/2628796/PG9.2_201204301/16413/7387012” master sunucudan replika sunucu üstünde gerekli yere taşıyıp, sunucuyu tekrar başlatırsanız sorunu çözebilirsiniz.

Not: Log dosyasını takip etmeniz gerekiyor başka sorunlu tablo/index çıkabilir.

Erkin Çakar

PostgreSQL DBA & Software developer