Здравствуйте! У нас такая проблема.
Свет отключают часто, в связи с этим база данных Postgres отказывается работать.
Описываю ситуацию, после жесткого ребута сервера Служба «Postgres SQL Server 8.4» находится в состоянии «Работает», тип запуска «Авто». Сама программа открывается, но невозможно сделать подсоединение к базам данных , на этом этапе она зависает и далее выходит сообщение о том, что служба вовремя не ответила.
После остановки службы вручную, служба не запускается. Ошибка вида «служба не ответила своевременно».
В логах postgres ошибки вида:
2011-08-07 14:57:01 KRASTLOG: record with zero length at 0/264BC48
2011-08-07 14:57:01 KRASTLOG: redo is not required
2011-08-07 14:57:01 KRASTLOG: database system is ready to accept connections
2011-08-07 14:57:01 KRASTLOG: autovacuum launcher started
2011-08-07 15:09:04 KRASTLOG: could not receive data from client: Unknown winsock error 10061
2011-08-07 15:09:04 KRASTLOG: unexpected EOF on client connection
Подскажите пожалуйста, что можно предпринять в данной ситуации, может установить более отказоустойчивую версию PosgreSQL? Сейчас у нас ОС - Windows Server 2003 Enterprise x64 Edition SP 2, версия БД Postgre - postgresql-8.4.0-1
Ни одна СУБД не застрахована
Ни одна СУБД не застрахована от аппаратного отказа жёсткого диска или внезапного отключения питания.
Поэтому, рекомендации следующие:
1. Купите UPS (источник бесперебойного питания) с управлением от сервера, чтобы избежать внезапного отключения питания.
2. Создайте RAID1 или RAID10, чтобы избежать проблем при отказе одного жёсткого диска.
3. Регулярно делайте полную резервную копию БД и храните её на другом компьютере, чтобы защитится от одновременного отказа двух жёстких дисков или дискового контроллера. В случае отказа вы всегда сможете восстановиться из последней резервной копии даже на другом оборудовании.
А более отказоустойчивой
А более отказоустойчивой версии нет?
Давайте рассуждать
Давайте рассуждать логически.
Если СУБД не находит данные которые должны быть на диске, но потеряны в результате падения питания, то каким образом она должна начать работу? Тем более в Windows, где в отличие от Linux нет журналируемой файловой системы, т.е. в результате аварийного падения питания может потеряться как целый файл так и группы файлов? Попробуйте тогда хотя бы работать с Linux на журналируемой файловой системе: ext3, ext4, xfs и т.д.
Мы не можем изменить ОС.
Мы не можем изменить ОС. "Приказ" ставить на указываемую ОС 32 или 64 разрядную. На счет бесперебойников конечно согласна, но клиент пока потратится не может и рассматриваем варианты, быстрого реанимирования базы. Свои базы данных, созданные в Postgres бэкапим, после переустановки самой программы, данные успешно сохраняются. Просто хотелось, проконсультироваться, вдргу есть решение помимо переустановки программы после сбоя)
Чудес не бывает. Хотите
Чудес не бывает. Хотите надёжность - вкладывайтесь в железо. В противном случае, делайте бакапы почаще.
Спасибо) Информацию доведу)
Спасибо) Информацию доведу)