====== PostgreSQL ======
**Подключение:**
''psql -U username -d dbname -h host -p port''
* -U — имя пользователя
* -d — имя базы данных (по умолчанию подключается к БД с именем как у пользователя)
* -h — хост (localhost если локально)
* -p — порт (по умолчанию 5432)
**Конфигурация:**
* ''/etc/postgresql/<версия>/main/postgresql.conf''
* ''/etc/postgresql/<версия>/main/pg_hba.conf''
* ''/etc/postgresql/<версия>/main/pg_ident.conf''
* ''/var/lib/pgsql/<версия>/data/postgresql.conf''
* ''/var/lib/pgsql/<версия>/data/pg_hba.conf''
**Дамп:**
''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)