| From: | scott ribe <scott_ribe(at)elevated-dev(dot)com> | 
|---|---|
| To: | Nagy László Zsolt <gandalf(at)shopzeus(dot)com> | 
| Cc: | pgsql-admin(at)lists(dot)postgresql(dot)org | 
| Subject: | Re: Reliable WAL file shipping over unreliable network | 
| Date: | 2018-02-28 18:12:03 | 
| Message-ID: | 9BE48599-5417-42BF-A7D3-554590878841@elevated-dev.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-admin | 
There seem to be 2 fundamental misunderstandings here:
1) That other processes cannot see data written to a file until it is flushed to disk; this is not true; while file data is still in file cache, it is visible to other processes.
2) That rsync writes the file on the destination directly; it does not; it writes into a temporary file and renames that file when it is complete.
> On Feb 28, 2018, at 10:53 AM, Nagy László Zsolt <gandalf(at)shopzeus(dot)com> wrote:
> 
> 
>> 
>> Just use "-ac”;  you want -c option to ensure no data corruption during the transfer.  Do not delete the file; let Postgres manage that.
>> 
>> Here is a snippet from I script I use for archiving.  You also want to make your script returns failure or success correctly.  
>> 
>> # SSH Command and options
>> SSH_CMD="ssh -o ServerAliveInterval=20 $ARCH_SERVER"
>> STS=3
>> 
>> OUTPUT=$(rsync -ac --rsync-path="mkdir -p $ARCH_DIR && rsync" $XLOGFILE $ARCH_SERVER:$ARCH_DIR/$WALFILE)
>> if [ $? == 0 ]; then 
>>    STS=0
>> fi
>> 
>> exit $STS
>> 
--
Scott Ribe
https://www.linkedin.com/in/scottribe/
(303) 722-0567
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Rui DeSousa | 2018-02-28 18:15:48 | Re: Reliable WAL file shipping over unreliable network | 
| Previous Message | Rui DeSousa | 2018-02-28 18:11:54 | Re: Reliable WAL file shipping over unreliable network |