Thread: zero data loss recovery is possbile with pgbackrest tool?

zero data loss recovery is possbile with pgbackrest tool?

From
Pavan Kumar
Date:
Hello experts,

pgbackrest tool is possible to perform zero data loss recovery?
I did couple of test case where I have end up with data loss (data exist in current wal).

please share your experience/suggestion to perform complete recovery  with this tool

--
Regards,

#!  Pavan Kumar
----------------------------------------------
-
Sr. Database Administrator..!

NEXT GENERATION PROFESSIONALS, LLC
Cell    #  267-799-3182 #  pavan.dba27 (Gtalk)  
India   # 9000459083

Take Risks; if you win, you will be very happy. If you lose you will be Wise  

Re: zero data loss recovery is possbile with pgbackrest tool?

From
Ron
Date:
On 6/19/19 4:14 PM, Pavan Kumar wrote:
> Hello experts,
>
> pgbackrest tool is possible to perform zero data loss recovery?
> I did couple of test case where I have end up with data loss (data exist 
> in current wal).
>
> please share your experience/suggestion to perform complete recovery  with 
> this tool

Set the checkpoint timeout to something closer to what you want.


-- 
Angular momentum makes the world go 'round.



Re: zero data loss recovery is possbile with pgbackrest tool?

From
Rui DeSousa
Date:

> On Jun 19, 2019, at 5:23 PM, Ron <ronljohnsonjr@gmail.com> wrote:
>
> Set the checkpoint timeout to something closer to what you want.
>
>

Checkpoint does not matter.

You shouldn’t loose committed transactions.  Was the transaction committed? Do you have all the WALs?




Re: zero data loss recovery is possbile with pgbackrest tool?

From
Pavan Kumar
Date:
Hello Rui,

yes those are committed transaction. 

I have tested two cases

1. complete lost. (means complete data directory, pg_wal direcoty)
2. lost few directories (deleted few directories , except pg_wal).

both cases I do see latest data in the current wal is lost.

when I check the recovery process , wal archives are copying from pgbackrest repository to pg_wal directory. however pgbackrest tool is not copying current wal log at all. it is only copying archived wal's/

is there any way to copy current wal log with pgbackrest tool?


On Wed, Jun 19, 2019 at 4:33 PM Rui DeSousa <rui@crazybean.net> wrote:


> On Jun 19, 2019, at 5:23 PM, Ron <ronljohnsonjr@gmail.com> wrote:
>
> Set the checkpoint timeout to something closer to what you want.
>
>

Checkpoint does not matter.

You shouldn’t loose committed transactions.  Was the transaction committed? Do you have all the WALs?





--
Regards,

#!  Pavan Kumar
----------------------------------------------
-
Sr. Database Administrator..!

NEXT GENERATION PROFESSIONALS, LLC
Cell    #  267-799-3182 #  pavan.dba27 (Gtalk)  
India   # 9000459083

Take Risks; if you win, you will be very happy. If you lose you will be Wise  

Re: zero data loss recovery is possbile with pgbackrest tool?

From
Rui DeSousa
Date:

> On Jun 19, 2019, at 5:40 PM, Pavan Kumar <pavan.dba27@gmail.com> wrote:
>
> yes those are committed transaction.
>
> I have tested two cases
>
> 1. complete lost. (means complete data directory, pg_wal direcoty)
> 2. lost few directories (deleted few directories , except pg_wal).
>
> both cases I do see latest data in the current wal is lost.
>
> when I check the recovery process , wal archives are copying from pgbackrest repository to pg_wal directory. however
pgbackresttool is not copying current wal log at all. it is only copying archived wal's/ 
>
> is there any way to copy current wal log with pgbackrest tool?
>

If the WAL is not archived and if losing the primary without having access to the current WAL then data loss would
result. A way to avoid the scenario is with an HA solution that involves synchronous replication thus any committed
transactionwould exist on multiple nodes.   

I’m not familiar enough with pgbackrest to offer much help there; but it seems like a backup issue as you are losing
filesand directories with a given backup set.   




Re: zero data loss recovery is possbile with pgbackrest tool?

From
Achilleas Mantzios
Date:
On 20/6/19 12:40 π.μ., Pavan Kumar wrote:
Hello Rui,

yes those are committed transaction. 

I have tested two cases

1. complete lost. (means complete data directory, pg_wal direcoty)
2. lost few directories (deleted few directories , except pg_wal).

both cases I do see latest data in the current wal is lost.

when I check the recovery process , wal archives are copying from pgbackrest repository to pg_wal directory. however pgbackrest tool is not copying current wal log at all. it is only copying archived wal's/

is there any way to copy current wal log with pgbackrest tool?

No tool that is based on archiving is able to do that. Incomplete wals don't get archived till they are complete. So, you have the risk of losing (maximum) 16MB worth of data.
If you want to minimize the effect of this, you should set https://www.postgresql.org/docs/11/runtime-config-wal.html#GUC-ARCHIVE-TIMEOUT (archive_timeout) to a smaller value .
In order to achieve zero data loss, in general, you have to use a tool that can support synchronous streaming replication. For an overview you may look here :
https://severalnines.com/blog/current-state-open-source-backup-management-postgresql



On Wed, Jun 19, 2019 at 4:33 PM Rui DeSousa <rui@crazybean.net> wrote:


> On Jun 19, 2019, at 5:23 PM, Ron <ronljohnsonjr@gmail.com> wrote:
>
> Set the checkpoint timeout to something closer to what you want.
>
>

Checkpoint does not matter.

You shouldn’t loose committed transactions.  Was the transaction committed? Do you have all the WALs?





--
Regards,

#!  Pavan Kumar
----------------------------------------------
-
Sr. Database Administrator..!

NEXT GENERATION PROFESSIONALS, LLC
Cell    #  267-799-3182 #  pavan.dba27 (Gtalk)  
India   # 9000459083

Take Risks; if you win, you will be very happy. If you lose you will be Wise  


-- 
Achilleas Mantzios
IT DEV Lead
IT DEPT
Dynacom Tankers Mgmt

Re: zero data loss recovery is possbile with pgbackrest tool?

From
"Jehan-Guillaume (ioguix) de Rorthais"
Date:
On Thu, 20 Jun 2019 08:37:21 +0300
Achilleas Mantzios <achill@matrix.gatewaynet.com> wrote:

> On 20/6/19 12:40 π.μ., Pavan Kumar wrote:
> > Hello Rui,
> >
> > yes those are committed transaction.
> >
> > I have tested two cases
> >
> > 1. complete lost. (means complete data directory, pg_wal direcoty)
> > 2. lost few directories (deleted few directories , except pg_wal).
> >
> > both cases I do see latest data in the current wal is lost.
> >
> > when I check the recovery process , wal archives are copying from
> > pgbackrest repository to pg_wal directory. however pgbackrest tool is not
> > copying current wal log at all. it is only copying archived wal's/
> >
> > is there any way to copy current wal log with pgbackrest tool?
>
> No tool that is based on archiving is able to do that. Incomplete wals don't
> get archived till they are complete. So, you have the risk of losing
> (maximum) 16MB worth of data.

No, this could be more than 16MB. Archiving might be lagging as well depending
on various circumstances and activity.

> If you want to minimize the effect of this, you
> should set
> https://www.postgresql.org/docs/11/runtime-config-wal.html#GUC-ARCHIVE-TIMEOUT
> (|archive_timeout|) to a smaller value .

This will still allow data loss. No matter the value. Moreover, there no sense
setting it bellow eg. 1min. If you want something smaller, you really want
replication.


If you don't want a secondary in sync, you might want to have a look at
pg_receivewal.

++



Re: zero data loss recovery is possbile with pgbackrest tool?

From
Achilleas Mantzios
Date:
On 20/6/19 1:12 μ.μ., Jehan-Guillaume (ioguix) de Rorthais wrote:
> On Thu, 20 Jun 2019 08:37:21 +0300
> Achilleas Mantzios <achill@matrix.gatewaynet.com> wrote:
>
>> On 20/6/19 12:40 π.μ., Pavan Kumar wrote:
>>> Hello Rui,
>>>
>>> yes those are committed transaction.
>>>
>>> I have tested two cases
>>>
>>> 1. complete lost. (means complete data directory, pg_wal direcoty)
>>> 2. lost few directories (deleted few directories , except pg_wal).
>>>
>>> both cases I do see latest data in the current wal is lost.
>>>
>>> when I check the recovery process , wal archives are copying from
>>> pgbackrest repository to pg_wal directory. however pgbackrest tool is not
>>> copying current wal log at all. it is only copying archived wal's/
>>>
>>> is there any way to copy current wal log with pgbackrest tool?
>> No tool that is based on archiving is able to do that. Incomplete wals don't
>> get archived till they are complete. So, you have the risk of losing
>> (maximum) 16MB worth of data.
> No, this could be more than 16MB. Archiving might be lagging as well depending
> on various circumstances and activity.
In this case we have more than one problem.
In such cases pg_wal will be quickly stuffed with unarchived files, this indicates another (usually network or some
suddenunforeseen spike in activity) problem.
 
So yes, in such cases where we have a network or performance problem AND at the same time disaster in the cluster
occurs,then it would be much more than 16MB, but then again we are having two 
 
problems now to solve (DB loss + infrastructure).

>
>> If you want to minimize the effect of this, you
>> should set
>> https://www.postgresql.org/docs/11/runtime-config-wal.html#GUC-ARCHIVE-TIMEOUT
>> (|archive_timeout|) to a smaller value .
> This will still allow data loss.
I said minimize.
>
>
> If you don't want a secondary in sync, you might want to have a look at
> pg_receivewal.
>
> ++
>
>


-- 
Achilleas Mantzios
IT DEV Lead
IT DEPT
Dynacom Tankers Mgmt