Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[postgresql] Point-In-Time Recovery errors

Pagina: 1
Acties:

  • GA!S
  • Registratie: Maart 2000
  • Niet online

GA!S

295 g/km

Topicstarter
Ik heb hier ene caldav server met postgresql backend. Om de een of andere reden is een agenda van een user verdwenen. De server draait met archive_mode = on in postgresql.conf en een timeout van 24 uur. Ik heb een backup van de originele database en alle WAL's van de laatste 18 maanden. Het lukt me echter niet om een recovery uit te voeren. Ik wil terug naar de status van voor ca. 20 augustus 2011.

Ik heb (zover ik weet) alles precies volgens de manpages gedaan, maar ik loop vast bij het terugzetten van de originele database.

poging 1:

- de /var/lib/postgresql/8.3/main folder verwijderen
- nieuwe main folder aanmaken en als user postgres:
code:
1
initdb -d /var/lib/postgresql/8.3/main

- postgresql starten (en hier gaat het volgens mij mis)
- terugzetten van de originele db als user postgres:
code:
1
psql -f backup.dump postgres

- postgresql stoppen
- recovery script aanmaken /var/lib/postgresql/8.3/main/recovery.conf en verwijzen naar backup bestanden:
code:
1
2
3
restore_command = 'cp /BACKUP/davical/postgresql/%f %p'
recovery_target_time = '2011-08-20 22:39:00 EST'
recovery_target_inclusive = 'false'


-postgresql starten

Dan krijg ik in de logfiles de volgende errors:

code:
1
2
3
4
5
6
7
8
2011-08-26 15:31:47 CEST LOG:  database system was shut down at 2011-08-26 15:31:40 CEST
2011-08-26 15:31:47 CEST LOG:  could not open file "pg_xlog/000000010000000000000000" (log file 0, segment 0): No such file or directory
2011-08-26 15:31:47 CEST LOG:  invalid primary checkpoint record
2011-08-26 15:31:47 CEST LOG:  could not open file "pg_xlog/000000010000000000000000" (log file 0, segment 0): No such file or directory
2011-08-26 15:31:47 CEST LOG:  invalid secondary checkpoint record
2011-08-26 15:31:47 CEST PANIC:  could not locate a valid checkpoint record
2011-08-26 15:31:47 CEST LOG:  startup process (PID 6193) was terminated by signal 6: Aborted
2011-08-26 15:31:47 CEST LOG:  aborting startup due to startup process failure


Volgens mij omdat door de start van de server een nieuwe xlog-entry aangemaakt wordt waardoor de WAL's niet consistent meer zijn.


Tweede poging:

- de /var/lib/postgresql/8.3/main folder verwijderen
- nieuwe main folder aanmaken en als user postgres:
code:
1
initdb -d /var/lib/postgresql/8.3/main

- terugzetten van de originele db door de inhoud van base folder uit een .gz bestand terug te zetten.
- recovery script aanmaken /var/lib/postgresql/8.3/main/recovery.conf en verwijzen naar backup bestanden:
code:
1
2
3
restore_command = 'cp /BACKUP/davical/postgresql/%f %p'
recovery_target_time = '2011-08-20 22:39:00 EST'
recovery_target_inclusive = 'false'


-postgresql starten

Dit lijkt op het eerste gezicht goed te gaan, geen FATAL of PANIC in de log-files, maar de database structuur wordt niet aangemaakt.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2011-08-26 16:59:07 CEST LOG:  database system was shut down at 2011-08-26 16:54:54 CEST
2011-08-26 16:59:07 CEST LOG:  starting archive recovery
2011-08-26 16:59:07 CEST LOG:  restore_command = 'cp /BACKUP/davical/postgresql/%f %p'
2011-08-26 16:59:07 CEST LOG:  recovery_target_time = '2011-08-21 05:39:00+02'
2011-08-26 16:59:07 CEST LOG:  recovery_target_inclusive = false
cp: cannot stat `/BACKUP/davical/postgresql/00000001.history': No such file or directory
cp: cannot stat `/BACKUP/davical/postgresql/000000010000000000000000': No such file or directory
2011-08-26 16:59:07 CEST LOG:  automatic recovery in progress
2011-08-26 16:59:07 CEST LOG:  record with zero length at 0/440C10
2011-08-26 16:59:07 CEST LOG:  redo is not required
cp: cannot stat `/BACKUP/davical/postgresql/000000010000000000000000': No such file or directory
cp: cannot stat `/BACKUP/davical/postgresql/00000002.history': No such file or directory
2011-08-26 16:59:07 CEST LOG:  selected new timeline ID: 2
cp: cannot stat `/BACKUP/davical/postgresql/00000001.history': No such file or directory
2011-08-26 16:59:08 CEST LOG:  incomplete startup packet
2011-08-26 16:59:08 CEST LOG:  archive recovery complete
2011-08-26 16:59:08 CEST LOG:  autovacuum launcher started
2011-08-26 16:59:08 CEST LOG:  database system is ready to accept connections
2011-08-26 16:59:08 CEST LOG:  archive command failed with exit code 1
2011-08-26 16:59:08 CEST DETAIL:  The failed archive command was: /usr/local/bin/pg_backup pg_xlog/00000002.history 00000002.history
2011-08-26 16:59:09 CEST LOG:  archive command failed with exit code 1
2011-08-26 16:59:09 CEST DETAIL:  The failed archive command was: /usr/local/bin/pg_backup pg_xlog/00000002.history 00000002.history
2011-08-26 16:59:10 CEST LOG:  archive command failed with exit code 1
2011-08-26 16:59:10 CEST DETAIL:  The failed archive command was: /usr/local/bin/pg_backup pg_xlog/00000002.history 00000002.history
2011-08-26 16:59:10 CEST WARNING:  transaction log file "00000002.history" could not be archived: too many failures


Wat doe ik fout?

[ Voor 26% gewijzigd door GA!S op 26-08-2011 17:08 ]

de betaler vervuilt


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • GA!S
  • Registratie: Maart 2000
  • Niet online

GA!S

295 g/km

Topicstarter
Windows?

de betaler vervuilt


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Serversoftware en Windows Servers

[ Voor 23% gewijzigd door RobIII op 26-08-2011 17:18 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • GA!S
  • Registratie: Maart 2000
  • Niet online

GA!S

295 g/km

Topicstarter
vooruit dan maar. ;)

de betaler vervuilt


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

De laatste restore die je doet (dus geen pg_dump(all) backup) is in ieder geval de juiste, alleen hoef je / moet je volgens mij geen initdb draaien omdat alles in je tar file hoort te zitten.

Als ik de docu volg op http://www.postgresql.org/docs/8.1/static/backup-online.html (23.3.3. Recovering with an On-line Backup) zou je je LOG files misschien ook gewoon in je pg_xlog moeten kunnen zetten.

In ieder geval lijkt het er op dat je iets mist in je backup die 000010000 file, kan het zijn dat die niet in je archive dir zit ofzo? :)

  • GA!S
  • Registratie: Maart 2000
  • Niet online

GA!S

295 g/km

Topicstarter
Het lijkt wel alsof die tar niet goed is. Daar zit alleen de base directory in, niet de global of pg_xlog.

Zou het ook mogelijk zijn de LOG files direct in pg_xlog te zetten en ze (eventueel met dubbele entries) te laten verwerken?

de betaler vervuilt

Pagina: 1