Для подключение к базе от пользователя postgres
su - postgres
psql
Отобразите все базы - \l
или \list
Отобразить размер всех баз - \l+
Переключиться на базу - \c you_db
или \connect
Отобразить таблицы базы - \dt
Отобразить всех пользователей и роли - \du
Создание пароля для пользователья postgres
:
sudo su - postgres
psql
\password postgres
Подключение к базе от определенного пользователя под скрипт
PGPASSWORD='you_password' psql -U user_name -h you_host_db -d you_db
Vacuum одной таблицы history_text
VACUUM (VERBOSE, FULL, ANALYZE) history_text;
Создание пользователя c ролью REPLICATION
на сервере master под аккаунтом postgres:
CREATE ROLE replica_user WITH REPLICATION LOGIN PASSWORD 'you_password';
Данный пользователь нужен для репликации.
Далее необходимо внести дополнения в файл pg_hba.conf, добавив имя пользователя для репликаций и IP адрес
SLAVE
сервера:
host replication replica_user 172.19.13.24/32 md5
После чего нужно перезапустить сервис postgresql на master
Проверка конфигурации postgresql
более детально тут
SELECT * FROM pg_file_settings;
Узнать место расположения файла postgresql.conf
можно следующей командой от пользователя postgres
psql -c 'SHOW config_file;'
Пример вывода команды выше:
config_file
-----------------------------------------
/var/lib/pgsql/9.5/data/postgresql.conf
(1 row)
Примеры для версии postgresql 9.5
## CONFIG MASTER
wal_level = hot_standby
archive_mode = on
archive_command = 'test ! -f /DATA/arhivdb/%f && cp %p /DATA/arhivdb/%f'
max_wal_senders = 2
wal_keep_segments = 32
hot_standby = off
hot_standby_feedback = on
synchronous_commit = local
synchronous_standby_names = '*'
logging_collector = on
log_truncate_on_rotation = on
## CONFIG SLAVE
wal_level = hot_standby
#Включается только на slave
hot_standby = on
archive_mode = off
archive_command = 'test ! -f /DATA/arhivdb/%f && cp %p /DATA/arhivdb/%f'
max_wal_senders = 2
wal_keep_segments = 32
synchronous_standby_names = '*'
synchronous_commit = local
logging_collector = on
log_truncate_on_rotation = on
recovery.conf
который должен находится на slave
standby_mode = 'on'
primary_conninfo = 'host=master_server_ip port=5432 user=replica application_name=SRV-DB-10 password=YOU_PASS'
trigger_file = '/var/lib/postgresql/data/main_trigger' #При создании файла база станет мастером
Пример файла pg_hba.conf
172.17.0.76
- master
172.17.13.47
- slave
host replication replica 172.17.0.76/32 md5
host replication replica 172.17.13.47/32 md5
Перед этим останавливаем сервис postgresql
на slave
и делаем бэкап папки.
tar -czvf /data/db/old_db/data_pgsql.tar.gz /data/postgresql/db/_data
Данную команду запускаем на slave
.
pg_basebackup -P -X stream -c fast -h MASTER_IP -U replica -W -D /data/postgresql/db/_data
select * from pg_stat_replication;
или
ps aux | grep sender
select * from pg_stat_wal_receiver;
или
ps aux | grep receiver