Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Нужна помощь, упал posgresql / 21 сообщений из 21, страница 1 из 1
24.10.2012, 10:34
    #38010956
kharkov_max
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
Добрый день.

Утром обнаружилось что postgresql не работает, попытки запустить заканчиваются так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
pg_ctl: could not start server
Examine the log output.
[code]

В логе такое
[code]
>/usr/local/etc/rc.d/postgresql start
LOG:  database system was interrupted while in recovery at 2012-10-24 09:24:10 EEST
HINT:  This probably means that some data is corrupted and you will have to use the last backup for recovery.
LOG:  database system was not properly shut down; automatic recovery in progress
LOG:  redo starts at 5/5D4C8138
FATAL:  the database system is starting up
FATAL:  the database system is starting up
FATAL:  the database system is starting up
FATAL:  the database system is starting up
FATAL:  the database system is starting up
FATAL:  the database system is starting up
FATAL:  the database system is starting up
FATAL:  the database system is starting up
LOG:  record with zero length at 5/9D13B8B0
LOG:  redo done at 5/9D13B880
LOG:  last completed transaction was at log time 2012-10-24 05:17:37.98006+03
FATAL:  failed to re-find parent key in index "40361" for split pages 14342/14395
LOG:  startup process (PID 8781) exited with exit code 1
LOG:  aborting startup due to startup process failure
pg_ctl: could not start server
Examine the log output.



При чем сервер коатковременно запускается 2-3 сек и падает.
Быстрое гугление подсказало что сервер упал окончательно и нужно восстанавливать из резервной копии, но пока это не вариант.
Ночью не происходило ни каких чп, т.е. сервер не выключался и не перезагружался.
Так же ночью отработали бекапы баз данных.

Есть подозрение что данную проблему можно решить без переустановки сервера и restore database.
Прошу Вашей помощи ...
...
Рейтинг: 0 / 0
24.10.2012, 11:21
    #38011027
kharkov_max
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
Вроде помогло это http://wruslan.rubyclub.com.ua/blogs/tag/pg_resetxlog
Сервер запустился.

Подскажите а как можно выявить причину падения ?

Или может как то проверить базу, может там есть ошибки и ситуция повторится завтра ...
...
Рейтинг: 0 / 0
24.10.2012, 11:37
    #38011043
tadmin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
kharkov_maxПодскажите а как можно выявить причину падения ?
Почти всегда причина в железе. Диски, память..
1) В dmesg у вас ничего не было?
2) Каким было последнее сообщение от postgresql до падения?

[/quot]Или может как то проверить базу, может там есть ошибки и ситуция повторится завтра ...[/quot]
pg_dump -> pg_restore
Если это проходит без ошибок, база исправна с точки зрения postgresql.
На самом деле даже успешный pg_dump означает, что все ОК.
...
Рейтинг: 0 / 0
24.10.2012, 12:05
    #38011090
kharkov_max
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
tadmin,

После удаления индексов, 3 процесса postgresql грузят проц на 100%, но БД вроде работает.
3 процесса указано в конфиге как зарезервировано для админа, скорее всего это они...

Я правильно понимаю что сервер сейчас что то делает ?
Или это какой то косяк ?

Уже час почти так висит ...
...
Рейтинг: 0 / 0
24.10.2012, 13:06
    #38011268
kharkov_max
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
Мда ...

Дождался пока процессы postgresql перешли в нормальный режим и нагрузка на проц упала, до нормальной.
Перегрузил хост, в результате получил аналогичную ошибку при запуске postgre.
Пока опять удалил логи и запустил сервер.
Вроде работает, но уверен что после перезагрузки ситуация повторится.

Как дальше быть ?
Как проверить в чем проблема ?
Может что то в конфигах и т.д. Ошибка чисто логическая ...

В железе 100% проблемы нет ....
...
Рейтинг: 0 / 0
24.10.2012, 13:32
    #38011321
bububu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
kharkov_max,

А что делают эти три висящие процесса?
(что выдает запрос:
SELECT current_timestamp, current_timestamp - query_start, procpid, usename, current_query FROM pg_stat_activity WHERE current_query <> '<IDLE>'; -- это для 8
)
...
Рейтинг: 0 / 0
24.10.2012, 14:18
    #38011399
Гость_0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
kharkov_max, ну Вам же пишут: FATAL: failed to re-find parent key in index "40361" for split pages 14342/14395

переиндексируйте индекс с OID 40361 у Вас наверное версия postgres с ошибкой приводящей к повреждению индекса.
...
Рейтинг: 0 / 0
24.10.2012, 16:18
    #38011700
kharkov_max
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
bububukharkov_max,

А что делают эти три висящие процесса?
(что выдает запрос:
SELECT current_timestamp, current_timestamp - query_start, procpid, usename, current_query FROM pg_stat_activity WHERE current_query <> '<IDLE>'; -- это для 8
)

Видно что то postgres делает после удаления индексов, через некоторое время ситуация стабилизируется ...

Гостьkharkov_max, ну Вам же пишут: FATAL: failed to re-find parent key in index "40361" for split pages 14342/14395

переиндексируйте индекс с OID 40361 у Вас наверное версия postgres с ошибкой приводящей к повреждению индекса.


Собственно не особый знатог postre.

Подскажите как правильно "Переиндексировать индекс с OID 40361"
Спасибо ...
...
Рейтинг: 0 / 0
24.10.2012, 16:26
    #38011718
bububu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
kharkov_max,

Узнаете, что за объект с OID 40361:

SELECT * FROM pg_class WHERE oid = 40361

Затем по полученному названию думаете что делать (drop или reindex)
...
Рейтинг: 0 / 0
24.10.2012, 16:41
    #38011760
kharkov_max
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
bububu,

Выполнил запрос, ответ пустой ...
...
Рейтинг: 0 / 0
24.10.2012, 17:13
    #38011825
Степан H.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
kharkov_max,

Версия postgresql какая?, OS FreeBSD я так понимаю ?
...
Рейтинг: 0 / 0
24.10.2012, 17:18
    #38011835
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
хм, судя по исходникам 40361 в FATAL: failed to re-find parent key in index "40361" for split pages 14342/14395 это не OID, а name.

kharkov_max, попробуйте:
Код: sql
1.
SELECT * FROM pg_class WHERE relname = '40361';
...
Рейтинг: 0 / 0
24.10.2012, 17:27
    #38011859
kharkov_max
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
Ёш,

Тоже пусто ...

Может потому что при втором падении индекс был уже другой ...

Как проверить при работающем сервере какой индекс может быть поврежден ?
...
Рейтинг: 0 / 0
24.10.2012, 17:36
    #38011871
bububu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
kharkov_max,

Пробуйте для начала VACUUM ANALYZE VERBOSE <tablename>
...
Рейтинг: 0 / 0
24.10.2012, 18:01
    #38011915
kharkov_max
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
bububu,

Запускал проверку по базам в PGAdmin
При проверке на одной из баз

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
ERROR:  xlog flush request 203/C4370F50 is not satisfied --- flushed only to 5/AF93C558
CONTEXT:  writing block 11562 of relation base/40125/40355

********** Ошибка **********

ERROR: xlog flush request 203/C4370F50 is not satisfied --- flushed only to 5/AF93C558
SQL-состояние: XX000
Контекст: writing block 11562 of relation base/40125/40355



А на остальных базах все нормально ...
...
Рейтинг: 0 / 0
24.10.2012, 18:52
    #38012027
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
kharkov_max, это из-за Вашего pg_resetxlog, не надо было его делать.
...
Рейтинг: 0 / 0
25.10.2012, 07:25
    #38012385
kharkov_max
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
Ёшkharkov_max, это из-за Вашего pg_resetxlog, не надо было его делать.
Возможно, но не уверен...

И так продолжу.
Не отработал ночной бекап баз.
Оказалось что сервер опять лежит ...
Специально проверил, ошибка аналогичная как в шапке темы.

А как теперь сделать reindex индексу, ведь сервер не запускается?
Как определить какой БД принадлежит этот индекс?
Может сделаь restore только это БД ...

Снова пока сделал resetxlog, но уверен что это не надолго ...
...
Рейтинг: 0 / 0
25.10.2012, 07:33
    #38012389
kharkov_max
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
kharkov_max,

Могу выложить ошибки pg_dump, может это как то поможет ...
...
Рейтинг: 0 / 0
25.10.2012, 16:03
    #38013356
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
kharkov_maxА как теперь сделать reindex индексу, ведь сервер не запускается?
Как определить какой БД принадлежит этот индекс?Вам нужно прекратить ломать данные с помощью pg_resetxlog :) Дождаться этой ошибки (failed to re-find parent key), попробовать запустить сервер из консоли в однопользовательском режиме с отключенным использованием системных индексов (ключ -P) и найти в pg_class что это за индекс.
...
Рейтинг: 0 / 0
29.10.2012, 10:26
    #38016583
kharkov_max
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
Ёш,

Вообщем 2 дня ждал ошибку, postgre что то делал т.к. проц грузил.
Несколько баз в это время работало, а несколько нет ...

В результате удалил файлы сервера сделал initdb и откатился на целые бекапы ...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
10.12.2019, 13:50
    #39900806
Poprygun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь, упал posgresql
Тормозим службу (если есть), срубаем процесс postgres (скорее всего есть).
Выполняем
Код: powershell
1.
pg_resetxlog.exe -D ../Data -f


Суть в том, что в xLog у него остались данные, которые он считает незафикшенными.
И усиленно пытается их зафиксить.
Иногда на это требуются годы..
Комада выше отсекает эти повисшие данные, что позволяет стартонуть сервер с имеющимися в БД данными.
Может потерять часть незафикшенных данных, но БД заработает.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Нужна помощь, упал posgresql / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]