PostgreSQL

Подключение:

psql -U username -d dbname -h host -p port

Конфигурация:

Дамп:

pg_dump -U username -d dbname > dump.sql
psql -U username -d dbname < dump.sql


Основные параметры

# -----------------------------
# Основные настройки PostgreSQL
# -----------------------------

# Слушать подключения на всех IP
listen_addresses = '*'  

# Максимальное количество соединений
max_connections = 100

# Порт по умолчанию
port = 5432

# Суперпользователь
superuser_reserved_connections = 3

# Аутентификация
password_encryption = scram-sha-256

Настройки памяти

# -----------------------------
# Параметры памяти
# -----------------------------

shared_buffers = 128MB                  # 25% от доступной RAM
work_mem = 4MB                          # Память для операций сортировки
maintenance_work_mem = 64MB             # Память для операций обслуживания
effective_cache_size = 4GB              # Оценка кеша ОС

Журналирование (WAL)

# -----------------------------
# Настройки WAL
# -----------------------------

wal_level = replica                     # Для репликации
archive_mode = on                       # Включить архивирование WAL
archive_command = 'cp %p /path/to/archive/%f'
max_wal_senders = 8                     # Макс. число процессов передачи WAL

Репликация

# -----------------------------
# Настройки репликации
# -----------------------------

hot_standby = on                        # Разрешить чтение на реплике
primary_conninfo = 'host=primary port=5432 user=repl password=secret'
recovery_target_timeline = 'latest'     # Следовать за последним timeline

Автовакуум

# -----------------------------
# Настройки автовакуума
# -----------------------------

autovacuum = on                         # Включить автовакуум
autovacuum_max_workers = 3              # Количество процессов автовакуума
autovacuum_vacuum_cost_limit = 2000     # Лимит стоимости вакуума

Логирование

# -----------------------------
# Настройки логирования
# -----------------------------

logging_collector = on                  # Включить сбор логов
log_directory = 'pg_log'                # Директория для логов
log_filename = 'postgresql-%Y-%m-%d.log'
log_rotation_age = 1d                   # Ротация логов ежедневно
log_min_duration_statement = 1000       # Логировать медленные запросы (>1s)