[pgsql]Failing Over To The Standby средствами LINUX-HA
От: anek811  
Дата: 13.11.10 19:52
Оценка:
Приветствую.

Нужно поднять резервную БД postgresql на отдельном сервере, чтобы в случае подыхания основного сервера можно было обращаться(в режиме записи) к резервному серверу, т.е. нужен простой failover.
Подняты master- и standby-сервера, для репликации данных используется streaming replication. Собственно суть вопроса в том, что для того, чтобы standby-сервер перевёлся в режим записи(master) нужно создать так называемый trigger_file, просто сделать touch, процедура описана тут:
http://wiki.postgresql.org/wiki/Binary_Replication_Tutorial#Failing_Over_To_The_Standby

Then, when it's time to fail over, you just create an empty file with that name, such as by using the "touch" command. The standby will notice the file, attempt to apply any remaining WAL records or files it has received, and then switch to read-write or "master" mode. When this happens, you will see a message like this in the Postgres log:
....
In a high-availability system, the above activity should be managed automatically in order to avoid downtime. PostgreSQL itself supplies no tools to do this, but numerous third-party utilities such as "Linux heartbeat" are compatible with PostgreSQL replication.


Как делать переключение вручную standby->master — понятно, как делать вручую обратное переключение после оживления основного сервера тоже, но не понятно как заставить это делать heartbeat(ну ОЧЕНЬ не хочется писать костыли, которые будут отслеживать состояние другого сервера, создавать какие-то файлы, что-то переименовывать и тем более не хочется реализовывать процедуру "Shoot The Other Node In The Head", если основной сервер оживёт сам)
postgresql linx ha failover standby master
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.