De : pgsql-general-ow...@postgresql.org 
[mailto:pgsql-general-ow...@postgresql.org] De la part de twoflower
Envoyé : Friday, August 18, 2017 2:40 PM
À : pgsql-general@postgresql.org
Objet : [GENERAL] archive_command fails but works outside of Postgres

I changed my archive_command to the following:



archive_command = 'gsutil cp /storage/postgresql/9.6/main/%p 
gs://my_bucket/pg_xlog/'
and it fails, leaving the following in the log:



2017-08-18 18:34:25.057 GMT [1436][0]: [104319] LOG:  archive command failed 
with exit code 1

2017-08-18 18:34:25.057 GMT [1436][0]: [104320] DETAIL:  The failed archive 
command was: gsutil cp  /storage/postgresql/9.6/main/000000010000038B000000D8 
gs://my_bucket/pg_xlog/

2017-08-18 18:34:25.057 GMT [1436][0]: [104321] WARNING:  archiving transaction 
log file "000000010000038B000000D8" failed too many times, will try again later

But the command works when executed manually:



root$ su postgres -c "gsutil cp 
/storage/postgresql/9.6/main/000000010000038B000000D8 gs://my_bucket/pg_xlog/"

root$ echo $?

0
The last command verifies that gsutil indeed exited with 0.

How to best debug this issue?

I think the parameter %p contains the complete path of the file and that you 
may need to specify the file name for the destination. Try this for your 
archive command :
archive_command = 'gsutil cp "%p" "gs://my_bucket/pg_xlog/%f"'


-          Mark Watson

Reply via email to