После настройки реплики протестируйте, создав бд и таблицы на основном сервере и проверив их наличие в реплике.
--- На мастере
sudo -u postgres psql -c "SELECT * FROM pg_stat_replication;"
CREATE DATABASE testing_db;
\c testing_db
CREATE TABLE users (id serial primary key, username text);
INSERT INTO users (username) VALUES ('Superman');
INSERT INTO users (username) VALUES ('Spiderman');
--- На слейве
sudo -u postgres psql -c "SELECT pg_is_in_recovery();"
На выходе должно быть значение t, указывающее на то, что сервер находится в режиме восстановления (standby).
sudo -u postgres psql -c "select * from pg_stat_wal_receiver;"
\c testing_db
SELECT * FROM users;
Настройка синхронной фиксации (необязательно)
По умолчанию репликация является асинхронной, что означает, что первичная репликация не ожидает подтверждения записи данных от реплики.
--- На мастере
Чтобы убедиться, что данные записаны в реплику перед подтверждением, включите синхронную фиксацию:
sudo -u postgres psql
SELECT * FROM pg_stat_replication;
ALTER SYSTEM SET synchronous_standby_names TO '*';
SELECT pg_reload_conf();
systemctl reload postgresql
Сделаем его основным:
sudo -i -u postgres
pg_ctlcluster 17 main promote
В качестве альтернативы можно создать файл триггера:
sudo -i -u postgres
touch /var/lib/postgresql/17/main/promote.signal
psql
SELECT pg_is_in_recovery();
На выходе должно быть значение f, указывающее на то, что он больше не находится в режиме восстановления.
Проверяем возможность записи:
CREATE DATABASE testing_db2;
\c testing_db2
CREATE TABLE users (id serial primary key, username text);
INSERT INTO users (username) VALUES ('Superman');
INSERT INTO users (username) VALUES ('Spiderman');
Перенастроить исходный основной сервер в режим ожидания
Чтобы повторно интегрировать исходный основной сервер в качестве резервного, вам потребуется:
Перенастроить его в режим ожидания.
Выполните базовое резервное копирование с нового основного сервера.
Выполните действия, аналогичные настройке резервного сервера.
Комментарии пользователей
Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!