Как отменить / отменить откат в infinidb?
Когда я запускаю infinidb, я получаю следующее сообщение об ошибке, что делает невозможным запуск службы. В файле журнала написано, что есть проблема с откатом. Есть ли способ отменить откат, чтобы я мог снова запустить службу? Я в порядке с потерей некоторых данных.
Запуск платформы базы данных Calpont InfiniDB:....... СДЕЛАНО Предупреждение! DBRM в настоящее время находится в режиме только для чтения! Обновления не будут распространяться! Запуск Calpont InfiniDB MySQL: запуск MySQL . * Проверка системного каталога InfiniDB: проверка успешно завершена Проверка функциональности выполнения: Проверка ведения журнала InfiniDB: Проверка процесса платформы DONE: ОШИБКА: проблема с процессом InfiniDB DMLProc, должна быть запущена одна версия *** Остановка InfiniDB, чтобы разрешить проблему процесса. Завершение работы Calpont InfiniDB MySQL: завершение работы MySQL ... * Завершение работы платформы базы данных Calpont InfiniDB:
/var/log/Calpont/crit.log
DMLProc [4292]: 41.458706 | 0 | 0 | 0 | C 20 CAL0002: Не удалось запустить DMLProc из-за: проблемы с откатом. Буфер версии файла не существует.
Я уже пытался удалить файлы в /usr/local/Calpont/data1/systemFiles/dataTransaction
но это все равно не начнется.
1 ответ
Вот как я смог это решить.
Пока служба запускается:
# service infinidb start
В другой сессии SSH перейти к /usr/local/Calpont/bin
и найдите идентификатор транзакции, вызывающий проблему:
# ./rollback -p
Как только вы узнаете, немедленно запустите команду отката с идентификатором транзакции, который вы видите:
./rollback -r 64536
Он ответит OK, и служба успешно запустилась на этот раз. Мне пришлось сделать это дважды, потому что моя первая попытка, вероятно, не смогла откатить транзакцию вовремя.