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