Re: Recovery Assistance

From: Brian Mills <brian(at)trybooking(dot)com>
To: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
Cc: rob stone <floriparob(at)gmail(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: Recovery Assistance
Date: 2017-01-29 23:12:36
Message-ID: CAK+gLv-z6K4+=RmVcS_fMHcUMF8HpQW7+zu-us2-AD17ozEYNQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

OK. I think I'm on to something here, I first reset back to my file level
backup.
I created a recovery.conf file in the root of the data directory like this:
---------------------
restore_command = 'cp /mnt/archive/%f %p'
recovery_target_time = '2017-01-24 02:08:00.023064+11'
recovery_target_inclusive = 'true'
pause_at_recovery_target = 'false'
---------------------
Note, the archive directory had no files in it, I left the WAL files in the
pg_xlog directory.

Then I started up the database again:
postgres(at)atlassian:~/9.3/main$ /usr/lib/postgresql/9.3/bin/pg_ctl -D
/etc/postgresql/9.3/main start
server starting
postgres(at)atlassian:~/9.3/main$ 2017-01-30 10:07:28 AEDT LOG: database
system was interrupted while in recovery at 2017-01-27 20:13:26 AEDT
2017-01-30 10:07:28 AEDT HINT: This probably means that some data is
corrupted and you will have to use the last backup for recovery.
2017-01-30 10:07:28 AEDT LOG: starting point-in-time recovery to
2017-01-24 02:08:00.023064+11
2017-01-30 10:07:28 AEDT LOG: database system was not properly shut down;
automatic recovery in progress
2017-01-30 10:07:28 AEDT WARNING: WAL was generated with
wal_level=minimal, data may be missing
2017-01-30 10:07:28 AEDT HINT: This happens if you temporarily set
wal_level=minimal without taking a new base backup.
2017-01-30 10:07:28 AEDT LOG: redo starts at 5/528B4558
2017-01-30 10:07:40 AEDT LOG: consistent recovery state reached at
5/A3FFFA30
cp: cannot stat ‘/mnt/archive/0000000100000005000000A3’: No such file or
directory
cp: cannot stat ‘/mnt/archive/0000000100000005000000A4’: No such file or
directory
2017-01-30 10:07:40 AEDT LOG: redo done at 5/A3FFF9E8
2017-01-30 10:07:40 AEDT LOG: last completed transaction was at log time
2017-01-24 02:08:00.023064+11
cp: cannot stat ‘/mnt/archive/0000000100000005000000A3’: No such file or
directory
cp: cannot stat ‘/mnt/archive/00000002.history’: No such file or directory
2017-01-30 10:07:40 AEDT LOG: selected new timeline ID: 2
cp: cannot stat ‘/mnt/archive/00000001.history’: No such file or directory
2017-01-30 10:07:40 AEDT LOG: archive recovery complete
2017-01-30 10:08:55 AEDT FATAL: the database system is starting up
2017-01-30 10:08:57 AEDT FATAL: the database system is starting up

This time it looks like it has actually finished the startup and recovery.
However I think I might have something wrong about the process.
Any thoughts on the above log?

*Brian Mills*
CTO

*Mob: *0410660003
*Melbourne* 03 9012 3460 or 03 8376 6327 *|* *Sydney* 02 8064 3600 *|*
*Brisbane* 07 3173 1570
Level 1 *|* 600 Chapel Street *|* South Yarra*|* VIC *|* 3141 *|*
Australia

<https://www.facebook.com/TryBooking/> <https://twitter.com/trybooking>
<https://www.linkedin.com/company/trybooking-com>

On 30 January 2017 at 04:49, Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
wrote:

> On 01/28/2017 11:23 PM, Brian Mills wrote:
>
>> I presume this is a binary log file for the database.
>>
>> Am I able to recover to a point in time using this log file?
>>
>> What I would do in SQL Server would be recover to a point in time, say a
>> bit before the last completed transaction time the log mentions, then
>> take a backup. Is that possible in postgres?
>>
>
> Had another thought. If I remember correctly you are using this as an
> exercise in Postgres recovery. If that is indeed the case you might try:
>
> 1) Stop the Postgres instance you have running now.
>
> 2) Move the WAL file that Postgres is currently stalled on,
> 0000000100000005000000A3, out of pg_xlog.
>
> 3) Restart the Postgres instance.
>
> My guess it it will not bring it back to the exact point you want, but
> close. You can get a general idea by running(before and after removing the
> WAL), as the postgres user:
>
> pg_controldata -D /etc/postgresql/9.3/main
>
>
>> The log mentions this:
>> 2017-01-27 20:36:18 AEDT LOG: last completed transaction was at log
>> time 2017-01-24 02:08:00.023064+11
>>
>> (which is moments before, or possibly as the disk filled up doing a db
>> backup dump)
>>
>> *Brian Mills*
>> CTO
>>
>>
>
>
> --
> Adrian Klaver
> adrian(dot)klaver(at)aklaver(dot)com
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Rita 2017-01-30 01:02:21 Re: using hstore to store documents
Previous Message Adrian Klaver 2017-01-29 22:42:00 Re: using hstore to store documents