archive_command copy funktioniert nicht

Hallo!

Zu erste einmal, ja die Suche habe ich verwendet :wink: )

Leider ohne erfolg, noch dazu kommt, dass Datenbanken absolutes Neuland für mich sind ://

Habe folgendes “Problem”:

Möchte gerne meine “REDO-Logs” von ~/data/pg_xlog auf ein anderes Verzeichnis kopieren, hierzu die config:

###########################
fsync = on
synchronous_commit = on
wal_sync_method = fsync
full_page_writes = on
wal_buffers = 64kB
wal_writer_delay = 200ms
commit_delay = 0
commit_siblings = 5
checkpoint_segments = 1
checkpoint_timeout = 1min
checkpoint_completion_target = 0.5
checkpoint_warning = 30s

archive_mode = on
archive_command = ‘cp %p /opt/PostgreSQL/8.3/log/%f’
archive_timeout = 0
###########################

Der User postgres hat vollen Zugriff auf dieses Verzeichnis:
##########################
postgres@A00000C8:~> ls -dl /opt/PostgreSQL/8.3/log
drwxrwxrwx 2 postgres postgres 4096 2008-12-15 13:58 /opt/PostgreSQL/8.3/log
##########################

Bekomme aber keine Fehlermeldung im Log angezeigt:
##########################
postgres@A00000C8:~/data/pg_log> cat postgresql-2008-12-15_144724.log
LOG: database system was shut down at 2008-12-15 14:47:19 CET
LOG: autovacuum launcher started
LOG: database system is ready to accept connections
LOG: received SIGHUP, reloading configuration files
##########################

Habe auch schon div. andere Varianten probiert:
‘cp “%p” /opt/PostgreSQL/8.3/log/"%f"’
‘copy %p /opt/PostgreSQL/8.3/log/%f’
‘cp %%p /opt/PostgreSQL/8.3/log/%%f’


Kann mir wer sagen was ich falsch gemacht habe?!

mfg+dank
stephan

[quote=“steverino”][/QUOTE]

probier mal:

archive_command = 'cp "%p" /opt/PostgreSQL/8.3/log/"%f"'

Andreas

Hallo Andreas,

das habe ich auch schon probier, ebenfalls habe ich :

archive_command = ‘cp %%p /opt/PostgreSQL/8.3/log/%%f’

Probiert, dies habe ich aus einer Doku rausgelesen…

EDIT:
Das command auf einer normalen Shell funktioniert auch nicht, wie und wo löst er sich denn das %p und %f auf?!

mfg+danke

Nun, es sollte wie in PostgreSQL: Documentation: Manuals: PostgreSQL 8.3: Continuous Archiving and Point-In-Time Recovery (PITR) beschrieben funktionieren. Die %p und %f werden von PG aufgelöst, wie sonst, ist auch dokumentiert. Hast Du PG mal eine Weile laufen lassen? Es werden nur neue WAL-Files kopiert, bereits bestehende nicht nachträglich. Vielleicht hast Du da nur einen Denkfehler.

Andreas

habe nach jeder Änderung in der config-datei die DB neugestartet, werde das Ding jetzt mal laufen lassen, während ich mich durch den Link lesen :wink:

danke vorerst mal :wink:

So ein WAL-File ist 16MByte groß und enthält die Daten zu den gelaufenen Transaktionen. Es müssen davon erst einmal 16 MByte zusammenkommen, erst dann wird es weggeschrieben (und evtl. mit archive_command wohin kopiert)

Andreas

Bingo :smiley:

Wurde nach erzwungen 5min “logfile segment switch” erfolgreich kopiert!

mfg+danke
stephan