## 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