On Thu, Apr 2, 2015 at 6:13 AM, Alexey Klyukin <alexk@hintbits.com> wrote:
Hello,
We had an issue with backing up one of our master servers, since a base backup increased the load on the master, resulting in slowdowns in the application working with that database. While there are ways to overcome this problem by using nice on the backend process doing the backup or throttling the network connection, we've decided to use a less complicated route of producing a base backup from an almost idle standby server.
We don't use pg_basebackup, but our own tool, which does the rsync + compression and also symlinks some directories from pg_data (such as pg_log or pg_xlog) to the locations on different partitions. So, the question is, how would one make a base backup from the [async] standby without using pg_basebackup. Our steps were the following:
- make sure WAL files from the master are archived and reachable on the new replica host (via NFS). - run pg_start_backup('label') on the master - initialise a new cluster, rsync files from the replica, create a recovery.conf and so on (made by our tool) - run pg_stop_backup() on the master.
The new replica did start and were restoring WAL files for a while, but eventually we came across the PANIC message:
We did check the disk on that system (and now rechecking the memory), but so far the hardware itself looks ok, which makes me wonder if the procedure above is flawed? What would be the proper way to produce a base backup from the standby without using pg_basebackup?
Both master and replicas are running PostgreSQL 9.3.5.