Для підключення до бази користувача 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;
Створення користувача з роллю REPLICATION
на сервері master під обліковим записом postgres:
CREATE ROLE replica_user WITH REPLICATION LOGIN PASSWORD 'you_password';
Цей користувач потрібний для реплікації.
Далі необхідно внести доповнення до файлу pg_hba.conf, додавши ім'я користувача для реплікацій та IP адресу
SLAVE
сервера:
``conf
host replication replica_user 172.19.13.24/32 md5
> Після цього потрібно перезапустити сервіс **postgresql** на master
{.is-success}
## Перевірка конфігурації
Перевірка конфігурації `postgresql` детальніше [тут](https://paquier.xyz/postgresql-2/postgres-9-5-feature-highlight-pg-file-settings/)
```sql
SELECT * FROM pg_file_settings;
Дізнатися місце розташування файлу postgresql.conf
можна наступною командою від користувача postgres
psql -c 'SHOW config_file;'
/var/lib/pgsql/9.5/data/postgresql.conf
(1 row)
> Приклади для версії **postgresql 9.5**
{.is-warning}
```shell
## 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