On 03.09.2015 05:40, Michael Paquier wrote:
Ah, OK. I thought that you were referring to a protocol where caller
sends a single LSN from which it gets a differential backup that needs
to scan all the relation files of the source cluster to get the data
blocks with an LSN newer than the one sent, and then sends them back
to the caller.
I guess that what you are suggesting instead is an approach where
caller sends something like that through the replication protocol with
a relation OID and a block list:
BLOCK_DIFF relation_oid BLOCK_LIST m,n,[o, ...]
Which is close to what pg_read_binary_file does now for a superuser.
We would need as well to extend BASE_BACKUP so as it does not include
relation files though for this use case.
we need to run pg_rewind without using a superuser role too. What if the
new parameter EXCLUDE_DATA_FILES will be added to the BASE_BACKUP
command? This parameter will force the BASE_BACKUP command to not
include relation files.
And pg_rewind can execute, for example, the following command:
BASE_BACKUP LABEL 'pg_rewind base backup' WAL EXCLUDE_DATA_FILES
This command will be executed if --source-server parameter is defined.
Are there any pitfalls in this condition?
Postgres Professional: http://www.postgrespro.com
Russian Postgres Company
Sent via pgsql-hackers mailing list (firstname.lastname@example.org)
To make changes to your subscription: