Я новичок в управлении серверами, особенно postgresql на сервере Ubuntu, так что терпите меня.
Я пытаюсь синхронизировать две базы данных на двух разных компьютерах, но я не уверен, что я сделал не так, поскольку все, что я пытался сделать, похоже, настроил серверы в режим только для чтения.
Например, если бы я хотел создать роль, я бы получил:
ERROR: cannot execute CREATE ROLE in a read-only transaction
Или, если я хочу создать таблицу, я получаю сообщение об ошибке:
ERROR: cannot execute CREATE TABLE in a read-only transaction.
Я понятия не имею, что здесь делать, поэтому я очень благодарен за советы о том, как решить эту проблему.
Кстати, я использую PostgreSQL версии 9.1 на Ubuntu Server 12.04.
поскольку SELECT pg_is_in_recovery()
является true
вы подключены к серверу реплик только для чтения в hot_standby
Режим. Конфигурация реплики находится в recovery.conf
.
Вы не можете сделать его для чтения / записи, кроме как путем повышения его до мастера, после чего он перестанет получать новые изменения со старого главного сервера. Увидеть Документация PostgreSQL по репликации.
Первый шаг - проверить, есть ли в каталоге данных файл recovery.conf. Если он существует, и если вы уверены, что находитесь на главном (не подчиненном) сервере, переименуйте этот файл в «recovery.conf.backup». Затем перезапустите сервер postgresql. Это должно позволить вам писать новые записи сейчас.