Как изменить базу данных 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.