Добрый день.
В течении долгого времени биллинг работал нормально. Но в один момент
поизошло следующее:
при коннекте любого пользователя падает postgres, в лог пишется
следующее:
PANIC: corrupted item pointer: offset = 7564, size = 1057
CONTEXT: SQL statement "UPDATE cake.users SET balance= $1 -(( $2 -
$3 )* $4 )/1048576 WHERE
cake.users.id= $5 "
PL/pgSQL function "dec_user_balance_f" line 17 at SQL
statement
SQL statement "UPDATE cake.session SET s_end = s_last_update
WHERE (s_end IS NULL) AND (s_last_update< $1 )"
PL/pgSQL function "check_idle_sessions" line 6 at SQL
statement
SQL statement "SELECT cake.check_idle_sessions()"
PL/pgSQL function "auth_check" line 11 at perform
STATEMENT: select * from cake.auth_check('Podosinnikov')
LOG: server process (PID 4304) was terminated by signal 6
LOG: terminating any other active server processes
LOG: all server processes terminated; reinitializing
LOG: database system was interrupted at 2008-09-09 17:12:37 MSD
LOG: checkpoint record is at 1/6926F040
LOG: redo record is at 1/6926F040; undo record is at 0/0; shutdown
TRUE
LOG: next transaction ID: 0/818013; next OID: 16513
LOG: next MultiXactId: 92; next MultiXactOffset: 306
LOG: database system was not properly shut down; automatic recovery
in progress
LOG: redo starts at 1/6926F088
LOG: unexpected pageaddr 1/65286000 in log file 1, segment 105,
offset 2646016
LOG: redo done at 1/69283B0C
LOG: database system is ready
пробывал только удалять keepalive-ы (delete from cake.keepalive) -
положительного результата не принесло, как и ожидалось :(
на момент случившигося не производилось никаких действий с базой,
кроме тех, что делает сам cake (например, VACUUM по cron-у)
Подскажите пожалуйста, есть ли какая возможность восстановить базу?
PS:
система:
slackware 12.0
postgres (PostgreSQL) 8.2.5
radiusd: FreeRADIUS Version 1.1.7, for host i686-pc-linux-gnu, built
on Dec 14 2007 at 14:11:43
cake v1.0.1
по крону делается только дамп базы и VACUUM раз в неделю.
Заранее спасибо.