WIP manual backup

This commit is contained in:
Quentin 2022-01-27 18:26:02 +01:00
parent 715c3d3a9f
commit 2775eeb0fe
4 changed files with 54 additions and 0 deletions

View file

@ -0,0 +1,3 @@
- [Initialize the cluster](install.md)
- [Create a database](create_database.md)
- [Manually backup all the databases](manual_backup.md)

View file

@ -0,0 +1,51 @@
## Disclaimer
Do **NOT** use the following backup methods on the Stolon Cluster:
1. copying the data directory
2. `pg_dump`
3. `pg_dumpall`
The first one will lead to corrupted/inconsistent files.
The second and third ones put too much pressure on the cluster.
Basically, you will destroy it, in the following ways:
- Load will increase, requests will timeout
- RAM will increase, the daemon will be OOM (Out Of Memory) killed by Linux
- Potentially, the WAL log will grow a lot
## A binary backup with `pg_basebackup`
The only acceptable solution is `pg_basebackup` with **some throttling configured**.
Later, if you want a SQL dump, you can inject this binary backup on an ephemeral database you spawned solely for this purpose on a non-production machine.
First, start by fetching from Consul the identifiers of the replication account.
Do not use the root account setup in Stolon, it will not work.
First setup a SSH tunnel on your machine that bind postgresql, eg:
```bash
ssh -L 5432:psql-proxy.service.2.cluster.deuxfleurs.fr:5432 ...
```
Then export your password in `PGPASSWORD` and launch the backup:
```bash
export PGPASSWORD=xxx
pg_basebackup \
--host=127.0.0.1 \
--username=replicator \
--pgdata=/tmp/sql \
--format=tar \
--wal-method=none \
--gzip \
--compress=6 \
--progress \
--max-rate=2M
```
*Take a cup of coffe, it will take some times...*
## Importing the backup
## Dump SQL