60 lines
1.2 KiB
Markdown
60 lines
1.2 KiB
Markdown
# README.md
|
|
|
|
# PostgreSQL Production Setup via Ansible
|
|
|
|
Kompletne wdrożenie PostgreSQL 16 z repliką, backupami, PITR i bazą MailArchiver.
|
|
|
|
## Struktura repo
|
|
|
|
```
|
|
ansible/
|
|
├── inventory.ini
|
|
├── site.yml
|
|
├── group_vars/all/secrets.yml
|
|
└── roles/
|
|
├── common/
|
|
│ └── tasks/main.yml
|
|
├── postgres/
|
|
│ ├── tasks/main.yml
|
|
│ └── templates/
|
|
│ ├── postgresql.conf.j2
|
|
│ └── pg_hba.conf.j2
|
|
├── replication/
|
|
│ └── tasks/main.yml
|
|
├── pgbackrest/
|
|
│ ├── tasks/main.yml
|
|
│ └── templates/pgbackrest.conf.j2
|
|
└── mailarchiver_db/
|
|
└── tasks/main.yml
|
|
```
|
|
|
|
## Instalacja i konfiguracja
|
|
|
|
[INSTALL.md](INSTALL.md)
|
|
|
|
## Backup
|
|
|
|
- Full backup: niedziela 2:00
|
|
- Incremental backup: codziennie 2:00
|
|
- WAL archiving dla PITR
|
|
|
|
## Failover ręczny
|
|
|
|
Na pg2:
|
|
|
|
```bash
|
|
sudo -u postgres pg_ctl promote
|
|
```
|
|
|
|
Następnie zmień aplikację, aby łączyła się z nowym primary.
|
|
|
|
---
|
|
|
|
## Uwagi produkcyjne
|
|
|
|
- Aplikacja musi łączyć się tylko z primary
|
|
- Repozytorium backupu na pg2
|
|
- Monitoruj `/pgbackrest` i WAL
|
|
- Wersja z Ansible Vault chroni hasła
|
|
- Test restore co tydzień zalecany
|