WIP manual backup
This commit is contained in:
parent
715c3d3a9f
commit
2775eeb0fe
4 changed files with 54 additions and 0 deletions
3
op_guide/stolon/README.md
Normal file
3
op_guide/stolon/README.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
- [Initialize the cluster](install.md)
|
||||||
|
- [Create a database](create_database.md)
|
||||||
|
- [Manually backup all the databases](manual_backup.md)
|
51
op_guide/stolon/manual_backup.md
Normal file
51
op_guide/stolon/manual_backup.md
Normal 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
|
Reference in a new issue