несколько upadate + убитие процесса + защита мультитранзакций + останов кластера

From: Михаил <m(dot)nasedkin(at)gmail(dot)com>
To: pgsql-ru-general <pgsql-ru-general(at)postgresql(dot)org>
Subject: несколько upadate + убитие процесса + защита мультитранзакций + останов кластера
Date: 2016-07-29 06:50:16
Message-ID: CALSKcLRvXN9XPcDWiupOGLxGLNzSzN29zu5oYOHdbz31wTTyEw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ru-general

Доброго всем.

На слабеньком тестовом двухядерном компе 2Гб RAM запустил приличную
базу данных.

На приличной таблице стал оптимизировать столбцы, запускал разные
update, что-то останавливал по Ctrl+C, запускал в разных сеансах psql.

Потом заметил, что не остановился ненужный update, причем прошло
больше суток по времени и видимо наросла большая транзакция. Посмотрел
его pid и сделал kill <pid>, потом еще зачем-то kill -9 <pid>. И вот.

logfile:
СООБЩЕНИЕ: процесс сервера (PID 16263) был завершён по сигналу 9: Killed
ПОДРОБНОСТИ: Завершившийся процесс выполнял действие: update ...
СООБЩЕНИЕ: завершение всех остальных активных серверных процессов
ПРЕДУПРЕЖДЕНИЕ: закрытие подключения из-за краха другого серверного процесса
ПОДРОБНОСТИ: Управляющий процесс отдал команду этому серверному
процессу откатить текущую транзакцию и завершиться, так как другой
серверный процесс завершился аварийно и возможно разрушил разделяемую память.
ПОДСКАЗКА: Вы сможете переподключиться к базе данных и повторить вашу
команду сию минуту.
....
ВАЖНО: система баз данных в режиме восстановления
СООБЩЕНИЕ: все серверные процессы завершены... переинициализация
ВАЖНО: система баз данных в режиме восстановления
СООБЩЕНИЕ: работа системы БД была прервана; последний момент работы:
2016-07-28 17:42:05 YEKT
СООБЩЕНИЕ: система БД была остановлена нештатно; производится
автоматическое восстановление
ВАЖНО: система баз данных в режиме восстановления
СООБЩЕНИЕ: запись REDO начинается со смещения 4/443CBA40
СООБЩЕНИЕ: запись нулевой длины по смещению 4/443D4730
СООБЩЕНИЕ: записи REDO обработаны до смещения 4/443D4700
СООБЩЕНИЕ: последняя завершённая транзакция была выполнена в
2016-07-28 17:43:11.917649+06
ВАЖНО: система баз данных в режиме восстановления
ВАЖНО: система баз данных в режиме восстановления
ВАЖНО: система баз данных в режиме восстановления
ВАЖНО: система баз данных в режиме восстановления
СООБЩЕНИЕ: Защита от наложения мультитранзакций сейчас включена
СООБЩЕНИЕ: система БД готова принимать подключения
СООБЩЕНИЕ: процесс запуска автоочистки создан

При этом в другом процессе тоже шел большой update той же таблицы. Там вышло:

ПРЕДУПРЕЖДЕНИЕ: закрытие подключения из-за краха другого серверного процесса
ПОДРОБНОСТИ: Управляющий процесс отдал команду этому серверному
процессу откатить текущую транзакцию и завершиться, так как другой
серверный процесс завершился аварийно и возможно разрушил разделяемую
память.
ПОДСКАЗКА: Вы сможете переподключиться к базе данных и повторить вашу
команду сию минуту.
КОНТЕКСТ: при изменении кортежа (73696,1) в отношении "tableXXX"
сервер неожиданно закрыл соединение
Скорее всего сервер прекратил работу из-за сбоя
до или в процессе выполнения запроса.
Подключение к серверу потеряно. Попытка восстановления неудачна.

Через несколько минут зашел psql - данных в таблицах нет, не
показываются, во всех таблицах 0 строк.

Стал останавливать сервер:
СООБЩЕНИЕ: получен запрос на "вежливое" выключение
СООБЩЕНИЕ: процесс запуска автоочистки завершается
ВАЖНО: система баз данных останавливается
...

Все. Больше суток система висит или делаются откаты транзакций, не
понятно. Ощущение, что не дождусь позитивного останова сервера. Что
можно сделать, чтобы перезапустить кластер, пусть с потерями последних
транзакций?

--
---
С уважением,
Михаил

Responses

Browse pgsql-ru-general by date

  From Date Subject
Next Message Dmitry E. Oboukhov 2016-07-29 07:23:09 Re: несколько upadate + убитие процесса + защита мультитранзакций + останов кластера
Previous Message Dmitry E. Oboukhov 2016-07-04 17:22:46 Re: На правах рекламы