I think, the main problem is that, postgres reads wrong xlog-s file. I lunched strace to postgres process, and then i grep the log: # cat /tmp/strace-log | fgrep xlog 5546 stat("pg_xlog", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0 5546 stat("pg_xlog/archive_status", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0 5546 open("pg_xlog/00000001.history", O_RDONLY) = -1 ENOENT (No such file or directory) 5546 open("pg_xlog/000000010000000F00000052", O_RDONLY) = 4 5546 open("pg_xlog/000000010000000F00000052", O_RDONLY) = 4
There is only one file. But i have a lot of files (i parsed filenames for more readable format): 0000000100000010000000D2 tli: 1 log: 16 seg: 210 0000000100000010000000EE tli: 1 log: 16 seg: 238 0000000100000010000000D3 tli: 1 log: 16 seg: 211 0000000100000010000000E2 tli: 1 log: 16 seg: 226 0000000100000010000000D5 tli: 1 log: 16 seg: 213 0000000100000010000000E8 tli: 1 log: 16 seg: 232 0000000100000010000000F7 tli: 1 log: 16 seg: 247 0000000100000010000000DF tli: 1 log: 16 seg: 223 0000000100000010000000DC tli: 1 log: 16 seg: 220 0000000100000010000000E7 tli: 1 log: 16 seg: 231 0000000100000010000000EA tli: 1 log: 16 seg: 234 0000000100000010000000D1 tli: 1 log: 16 seg: 209 0000000100000010000000DD tli: 1 log: 16 seg: 221 0000000100000010000000F5 tli: 1 log: 16 seg: 245 0000000100000010000000E0 tli: 1 log: 16 seg: 224 0000000100000010000000EB tli: 1 log: 16 seg: 235 0000000100000010000000D0 tli: 1 log: 16 seg: 208 0000000100000010000000F4 tli: 1 log: 16 seg: 244 0000000100000010000000F6 tli: 1 log: 16 seg: 246 0000000100000010000000D7 tli: 1 log: 16 seg: 215 0000000100000010000000DB tli: 1 log: 16 seg: 219 0000000100000010000000E4 tli: 1 log: 16 seg: 228 0000000100000010000000DE tli: 1 log: 16 seg: 222 0000000100000010000000E9 tli: 1 log: 16 seg: 233 0000000100000010000000D4 tli: 1 log: 16 seg: 212 0000000100000010000000D9 tli: 1 log: 16 seg: 217 0000000100000010000000F3 tli: 1 log: 16 seg: 243 0000000100000010000000E5 tli: 1 log: 16 seg: 229 0000000100000010000000DA tli: 1 log: 16 seg: 218 0000000100000010000000EC tli: 1 log: 16 seg: 236 0000000100000010000000D6 tli: 1 log: 16 seg: 214 0000000100000010000000EF tli: 1 log: 16 seg: 239 0000000100000010000000E6 tli: 1 log: 16 seg: 230 0000000100000010000000E1 tli: 1 log: 16 seg: 225 0000000100000010000000F0 tli: 1 log: 16 seg: 240 0000000100000010000000D8 tli: 1 log: 16 seg: 216 0000000100000010000000CF tli: 1 log: 16 seg: 207 0000000100000010000000ED tli: 1 log: 16 seg: 237 0000000100000010000000E3 tli: 1 log: 16 seg: 227 0000000100000010000000F1 tli: 1 log: 16 seg: 241 0000000100000010000000F2 tli: 1 log: 16 seg: 242 0000000100000010000000F8 tli: 1 log: 16 seg: 248 So, main problem i think, is that pg_control file is corrupted (i guess). So xlogreset-n sais: bash-3.2$ pg_resetxlog -n /var/lib/pgsql/data could not change directory to "/root" pg_control values: *First log file ID after reset: 16* First log file segment after reset: 249 pg_control version number: 843 Catalog version number: 200904091 Database system identifier: 5592178670599662815 Latest checkpoint's TimeLineID: 1 Latest checkpoint's NextXID: 0/7760685 Latest checkpoint's NextOID: 2556003 Latest checkpoint's NextMultiXactId: 3925 Latest checkpoint's NextMultiOffset: 7901 Maximum data alignment: 8 Database block size: 8192 Blocks per segment of large relation: 131072 WAL block size: 8192 Bytes per WAL segment: 16777216 Maximum length of identifiers: 64 Maximum columns in an index: 32 Maximum size of a TOAST chunk: 1996 Date/time type storage: 64-bit integers Float4 argument passing: by value Float8 argument passing: by value *And main question, how to force postgres to read this files?* 3 декабря 2011 г. 18:10 пользователь Tomas Vondra <t...@fuzzy.cz> написал: > On 2.12.2011 09:16, Oleg Serov wrote: > > Hello! > > > > i've don't try to do reindex. There was enough space. > > Not sure whether you tried to reindex or not. And what do you mean by > 'there was enough space'? For example with ext2 (and ext3/ext4) it was > rather simple to exhaust inodes long before the device was actually > full. What filesystem are you using, anyway? > > This seems like a I/O issue, you should check the hardware and the > settings (e.g. what caches are enabled etc.). Post more details, if > possible. Have you checked S.M.A.R.T. info from the drives? > > > And i have a full data-directory backup, when i've stop server, before > > start. > > Good. Have you moved it to a different machine? Otherwise you don't have > a backup, just a copy. > > Tomas > > -- > Sent via pgsql-general mailing list (pgsql-general@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general > -- С уважением Олег