Как изменить базу данных Postgresql с "Только чтение" на "Запись"

Я новичок в управлении серверами, особенно postgresql на Ubuntu Server, так что терпите меня.

Я пытаюсь синхронизировать между двумя базами данных на двух разных компьютерах, но я не уверен, что я сделал неправильно, так как все, что я пытался сделать, похоже, настроил серверы в режиме только для чтения.

Например, если бы я хотел создать роль, я бы получил:

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.

2 ответа

Решение

Поскольку SELECT pg_is_in_recovery() является true вы подключены к серверу реплик только для чтения в hot_standby Режим. Конфигурация реплики находится в recovery.conf,

Вы не можете сделать это для чтения / записи, кроме как продвигая его на мастер, после чего он перестанет получать новые изменения от старого главного сервера. Смотрите документацию PostgreSQL по репликации.

Первый шаг - проверить, есть ли в каталоге данных файл recovery.conf. Если он существует, если вы уверены, что находитесь на главном (не подчиненном) сервере, переименуйте этот файл в "recovery.conf.backup". Затем перезапустите сервер postgresql. Это должно позволить вам писать новые записи сейчас.

если это кластер экземпляра RDS, проверьте свою конечную точку и используйте конечную точку экземпляра Writer.

Другие вопросы по тегам