Назад | Перейти на главную страницу

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

Я новичок в управлении серверами, особенно 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. Это должно позволить вам писать новые записи сейчас.