docker-db-backup
docker-db-backup copied to clipboard
Postgres Backup fails with user "root"
I have this docker-compose file:
version: '3.1'
services:
# ...SOME OTHER SERVICES...
pg:
image: postgres:11
container_name: pg-my-service-prod
restart: always
volumes:
- $HOME/data/postgres-my-service-prod:/var/lib/postgresql/data
environment:
- POSTGRES_USER=root
- POSTGRES_PASSWORD=root
- POSTGRES_DB=myservicePROD
ports:
- 127.0.0.1:5432:5432
networks:
- my-service-prod
db-backup:
image: tiredofit/db-backup
restart: always
container_name: db-backup
depends_on:
- pg
volumes:
- $HOME/data/backups:/backup
environment:
- DB_TYPE=pgsql
- DB_HOST=pg
- DB_NAME=myservicePROD
- DB_PORT=5432
- DB_USER="root"
- DB_PASS="root"
# - DB_DUMP_BEGIN=0415
- DB_DUMP_BEGIN=+01
- MD5=TRUE
- SPLIT_DB=TRUE
- DEBUG_MODE=TRUE
networks:
- my-service-prod
# ...SOME OTHER SERVICES...
networks:
my-service-prod:
The backup fails with this message:
db-backup | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
db-backup | [s6-init] ensuring user provided files have correct perms...exited 0.
db-backup | [fix-attrs.d] applying ownership & permissions fixes...
db-backup | [fix-attrs.d] 01-s6: applying...
db-backup | [fix-attrs.d] 01-s6: exited 0.
db-backup | [fix-attrs.d] 02-zabbix: applying...
db-backup | [fix-attrs.d] 02-zabbix: exited 0.
db-backup | [fix-attrs.d] 03-logrotate: applying...
db-backup | [fix-attrs.d] 03-logrotate: exited 0.
db-backup | [fix-attrs.d] done.
db-backup | [cont-init.d] executing container initialization scripts...
db-backup | [cont-init.d] 01-permissions: executing...
db-backup | + DEBUG_PERMISSIONS=FALSE
db-backup | + ENABLE_PERMISSIONS=TRUE
db-backup | + '[' TRUE = TRUE ']'
db-backup | + varenvusername=(`env | grep USER_ | awk -F= '{print tolower($1)}' | awk -F_ '{print $2}'`)
db-backup | ++ grep USER_
db-backup | ++ awk -F_ '{print $2}'
db-backup | ++ awk -F= '{print tolower($1)}'
db-backup | ++ env
db-backup | + varenvuid=(`env | grep USER_ | awk -F= '{print tolower($2)}'`)
db-backup | ++ env
db-backup | ++ awk -F= '{print tolower($2)}'
db-backup | ++ grep USER_
db-backup | ++ echo ''
db-backup | ++ sed 's/ /\\|/g'
db-backup | + strusers=
db-backup | + [[ ! -z '' ]]
db-backup | + '[' FALSE = TRUE ']'
db-backup | + '[' FALSE = true ']'
db-backup | + '[' TRUE = TRUE ']'
db-backup | + echo '**** [permissions] [debug] Users (varenvusername) from Docker env are: '
db-backup | + echo '**** [permissions] [debug] UIDs (varenvuid) from Docker env are: '
db-backup | + echo '**** [permissions] [debug] The string (strusers) used to grep the users is: '
db-backup | + echo '**** [permissions] [debug] Users (varpassuser) from /etc/passwd are: '
db-backup | + echo '**** [permissions] [debug] UIDs (varpassuserid) from /etc/passwd are: '
db-backup | + counter=0
db-backup | + '[' 0 -gt 0 ']'
db-backup | + counter=0
db-backup | + varenvgroupname=(`env | grep ^GROUP_ | grep -v GROUP_ADD_ | awk -F= '{print tolower($1)}' | awk -F_ '{print $2}'`)
db-backup | **** [permissions] [debug] Users (varenvusername) from Docker env are:
db-backup | **** [permissions] [debug] UIDs (varenvuid) from Docker env are:
db-backup | **** [permissions] [debug] The string (strusers) used to grep the users is:
db-backup | **** [permissions] [debug] Users (varpassuser) from /etc/passwd are:
db-backup | **** [permissions] [debug] UIDs (varpassuserid) from /etc/passwd are:
db-backup | ++ grep '^GROUP_'
db-backup | ++ awk -F= '{print tolower($1)}'
db-backup | ++ grep -v GROUP_ADD_
db-backup | ++ env
db-backup | ++ awk -F_ '{print $2}'
db-backup | + varenvgid=(`env | grep ^GROUP_ | grep -v GROUP_ADD_ | awk -F= '{print tolower($2)}'`)
db-backup | ++ env
db-backup | ++ ++ ++ grep '^GROUP_'
db-backup | grep -v GROUP_ADD_
db-backup | awk -F= '{print tolower($2)}'
db-backup | ++ sed 's/ /\\|/g'
db-backup | ++ echo ''
db-backup | + strgroups=
db-backup | + [[ ! -z '' ]]
db-backup | + '[' FALSE = TRUE ']'
db-backup | + '[' FALSE = true ']'
db-backup | + '[' TRUE = TRUE ']'
db-backup | + echo '**** [permissions] [debug] Group names (varenvgroupname) from Docker environment settings are: '
db-backup | + echo '**** [permissions] [debug] GIDs (grvarenvgid) from Docker environment settings are: '
db-backup | + echo '**** [permissions] [debug] The string (strgroup) used to grep the groups is: '
db-backup | + echo '**** [permissions] [debug] Group names (vargroupname) from /etc/group are: '
db-backup | + echo '**** [permissions] [debug] GIDs (vargroupid) from /etc/group are: '
db-backup | + '[' 0 -gt 0 ']'
db-backup | + counter=0
db-backup | + varenvuser2add=(`env | grep ^GROUP_ADD_ | awk -F= '{print $1}' | awk -F_ '{print tolower($3)}'`)
db-backup | **** [permissions] [debug] Group names (varenvgroupname) from Docker environment settings are:
db-backup | **** [permissions] [debug] GIDs (grvarenvgid) from Docker environment settings are:
db-backup | **** [permissions] [debug] The string (strgroup) used to grep the groups is:
db-backup | **** [permissions] [debug] Group names (vargroupname) from /etc/group are:
db-backup | **** [permissions] [debug] GIDs (vargroupid) from /etc/group are:
db-backup | ++ env
db-backup | ++ grep '^GROUP_ADD_'
db-backup | ++ awk -F_ '{print tolower($3)}'
db-backup | ++ awk -F= '{print $1}'
db-backup | + varenvdestgroup=(`env | grep ^GROUP_ADD_ | awk -F= '{print tolower($2)}'`)
db-backup | ++ env
db-backup | ++ grep ++ awk -F= '{print tolower($2)}'
db-backup | '^GROUP_ADD_'
db-backup | + '[' FALSE = TRUE ']'
db-backup | + '[' FALSE = true ']'
db-backup | + '[' TRUE = TRUE ']'
db-backup | + echo '**** [permissions] [debug] Users (varenvuser2add) to add to groups are: '
db-backup | + echo '**** [permissions] [debug] Groups (varenvdestgroup) to add users are: '
db-backup | **** [permissions] [debug] Users (varenvuser2add) to add to groups are:
db-backup | **** [permissions] [debug] Groups (varenvdestgroup) to add users are:
db-backup | + mkdir -p /tmp/state
db-backup | ++ basename /var/run/s6/etc/cont-init.d/01-permissions
db-backup | + touch /tmp/state/01-permissions-init
db-backup | [cont-init.d] 01-permissions: exited 0.
db-backup | [cont-init.d] 02-zabbix: executing...
db-backup | [cont-init.d] 02-zabbix: exited 0.
db-backup | [cont-init.d] 03-cron: executing...
db-backup | **** [cron] Disabling Cron
db-backup | [cont-init.d] 03-cron: exited 0.
db-backup | [cont-init.d] 04-smtp: executing...
db-backup | **** [smtp] [debug] SMTP Mailcatcher Enabled at Port 1025, Visit http://127.0.0.1:8025 for Web Interface
db-backup | **** [smtp] Disabling SMTP Features
db-backup | [cont-init.d] 04-smtp: exited 0.
db-backup | [cont-init.d] 99-container-init: executing...
db-backup | [cont-init.d] 99-container-init: exited 0.
db-backup | [cont-init.d] done.
db-backup | [services.d] starting services
db-backup | [services.d] done.
db-backup |
db-backup | ** [zabbix] Starting Zabbix Agent
db-backup | 2019/06/30 12:44:43 Using in-memory storage
db-backup | 2019/06/30 12:44:43 [SMTP] Binding to address: 0.0.0.0:1025
db-backup | [HTTP] Binding to address: 0.0.0.0:8025
db-backup | 2019/06/30 12:44:43 Serving under http://0.0.0.0:8025/
db-backup | Creating API v1 with WebPath:
db-backup | Creating API v2 with WebPath:AnalyticsServer-0.0.1-SNAPSHOT.jar started by root in /opt/app)org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$42f4199] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)environments was not found on the java.library.path: [/usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib]org.hibernate.type.UUIDBinaryType@158f4cfe
db-backup | + '[' '!' -n pgsql ']'
db-backup | + '[' '!' -n pg ']'
db-backup | + COMPRESSION=GZ
db-backup | + PARALLEL_COMPRESSION=TRUE
db-backup | + DB_DUMP_FREQ=1440
db-backup | + DB_DUMP_BEGIN=+01
db-backup | + DB_DUMP_TARGET=/backup
db-backup | + DBHOST=pg
db-backup | + DBNAME=myservicePROD
db-backup | + DBPASS='"root"'
db-backup | + DBUSER='"root"'
db-backup | + DBTYPE=pgsql
db-backup | + MD5=TRUE
db-backup | + SPLIT_DB=TRUE
db-backup | + TMPDIR=/tmp/backups
db-backup | + '[' '' = NOW ']'
db-backup | + '[' TRUE = 'TRUE ' ']'
db-backup | + BZIP=bzip2
db-backup | + GZIP=gzip
db-backup | + XZIP=xz
db-backup | + case "$DBTYPE" in
db-backup | + DBTYPE=pgsql
db-backup | + DBPORT=5432
db-backup | + [[ -n "root" ]]
db-backup | + POSTGRES_PASS_STR='PGPASSWORD="root"'
db-backup | ++ date
db-backup | + echo '** [db-backup] Initialized at at Sun' Jun 30 12:44:51 PDT 2019
db-backup | ** [db-backup] Initialized at at Sun Jun 30 12:44:51 PDT 2019
db-backup | ++ date +%s
db-backup | + current_time=1561923891
db-backup | ++ date +%Y%m%d
db-backup | + today=20190630
db-backup | + [[ +01 =~ ^\+(.*)$ ]]
db-backup | + waittime=60
db-backup | + sleep 60
db-backup | [APIv1] KEEPALIVE /api/v1/events
db-backup | + true
db-backup | + mkdir -p /tmp/backups
db-backup | ++ date +%Y%m%d-%H%M%S
db-backup | + now=20190630-124551
db-backup | + TARGET=pgsql_myservicePROD_pg_20190630-124551.sql
db-backup | + case "$DBTYPE" in
db-backup | + check_availability
db-backup | + case "$DBTYPE" in
db-backup | + COUNTER=0
db-backup | + export 'PGPASSWORD="root"'
db-backup | + PGPASSWORD='"root"'
db-backup | + pg_isready --dbname=myservicePROD --host=pg --port=5432 '--username="root"' -q
db-backup | + backup_pgsql
db-backup | + '[' TRUE = TRUE ']'
db-backup | + export 'PGPASSWORD="root"'
db-backup | + PGPASSWORD='"root"'
db-backup | ++ psql -h pg -U '"root"' -p 5432 -c 'COPY (SELECT datname FROM pg_database WHERE datistemplate = false) TO STDOUT;'
db-backup | psql: FATAL: password authentication failed for user ""root""
db-backup | + DATABASES=
db-backup | + '[' TRUE = TRUE ']'
db-backup | ++ stat -c%s /backup/pgsql_myservicePROD_pg_20190630-124551.sql
db-backup | stat: can't stat '/backup/pgsql_myservicePROD_pg_20190630-124551.sql': No such file or directory
db-backup | + zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k dbbackup.size -o
db-backup | zabbix_sender [759]: option requires an argument -- o
db-backup | usage:
db-backup | zabbix_sender [-v] -z server [-p port] [-I IP-address] -s host -k key
db-backup | -o value
db-backup | zabbix_sender [-v] -z server [-p port] [-I IP-address] [-s host] [-T] [-r]
db-backup | -i input-file
db-backup | zabbix_sender [-v] -c config-file [-z server] [-p port] [-I IP-address]
db-backup | [-s host] -k key -o value
db-backup | zabbix_sender [-v] -c config-file [-z server] [-p port] [-I IP-address]
db-backup | [-s host] [-T] [-r] -i input-file
db-backup | zabbix_sender [-v] -z server [-p port] [-I IP-address] -s host
db-backup | --tls-connect cert --tls-ca-file CA-file
db-backup | [--tls-crl-file CRL-file]
db-backup | [--tls-server-cert-issuer cert-issuer]
db-backup | [--tls-server-cert-subject cert-subject]
db-backup | --tls-cert-file cert-file --tls-key-file key-file -k key
db-backup | -o value
db-backup | zabbix_sender [-v] -z server [-p port] [-I IP-address] [-s host]
db-backup | --tls-connect cert --tls-ca-file CA-file
db-backup | [--tls-crl-file CRL-file]
db-backup | [--tls-server-cert-issuer cert-issuer]
db-backup | [--tls-server-cert-subject cert-subject]
db-backup | --tls-cert-file cert-file --tls-key-file key-file [-T] [-r]
db-backup | -i input-file
db-backup | zabbix_sender [-v] -c config-file [-z server] [-p port] [-I IP-address]
db-backup | [-s host] --tls-connect cert --tls-ca-file CA-file
db-backup | [--tls-crl-file CRL-file]
db-backup | [--tls-server-cert-issuer cert-issuer]
db-backup | [--tls-server-cert-subject cert-subject]
db-backup | --tls-cert-file cert-file --tls-key-file key-file -k key
db-backup | -o value
db-backup | zabbix_sender [-v] -c config-file [-z server] [-p port] [-I IP-address]
db-backup | [-s host] --tls-connect cert --tls-ca-file CA-file
db-backup | [--tls-crl-file CRL-file]
db-backup | [--tls-server-cert-issuer cert-issuer]
db-backup | [--tls-server-cert-subject cert-subject]
db-backup | --tls-cert-file cert-file --tls-key-file key-file [-T] [-r]
db-backup | -i input-file
db-backup | zabbix_sender [-v] -z server [-p port] [-I IP-address] -s host
db-backup | --tls-connect psk --tls-psk-identity PSK-identity
db-backup | --tls-psk-file PSK-file -k key -o value
db-backup | zabbix_sender [-v] -z server [-p port] [-I IP-address] [-s host]
db-backup | --tls-connect psk --tls-psk-identity PSK-identity
db-backup | --tls-psk-file PSK-file [-T] [-r] -i input-file
db-backup | zabbix_sender [-v] -c config-file [-z server] [-p port] [-I IP-address]
db-backup | [-s host] --tls-connect psk --tls-psk-identity PSK-identity
db-backup | --tls-psk-file PSK-file -k key -o value
db-backup | zabbix_sender [-v] -c config-file [-z server] [-p port] [-I IP-address]
db-backup | [-s host] --tls-connect psk --tls-psk-identity PSK-identity
db-backup | --tls-psk-file PSK-file [-T] [-r] -i input-file
db-backup | zabbix_sender -h
db-backup | zabbix_sender -V
db-backup | ++ date -r /backup/pgsql_myservicePROD_pg_20190630-124551.sql +%s
db-backup | date: can't stat '/backup/pgsql_myservicePROD_pg_20190630-124551.sql': No such file or directory
db-backup | + zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k dbbackup.datetime -o
db-backup | zabbix_sender [761]: option requires an argument -- o
db-backup | usage:
db-backup | zabbix_sender [-v] -z server [-p port] [-I IP-address] -s host -k key
db-backup | -o value
db-backup | zabbix_sender [-v] -z server [-p port] [-I IP-address] [-s host] [-T] [-r]
db-backup | -i input-file
db-backup | zabbix_sender [-v] -c config-file [-z server] [-p port] [-I IP-address]
db-backup | [-s host] -k key -o value
db-backup | zabbix_sender [-v] -c config-file [-z server] [-p port] [-I IP-address]
db-backup | [-s host] [-T] [-r] -i input-file
db-backup | zabbix_sender [-v] -z server [-p port] [-I IP-address] -s host
db-backup | --tls-connect cert --tls-ca-file CA-file
db-backup | [--tls-crl-file CRL-file]
db-backup | [--tls-server-cert-issuer cert-issuer]
db-backup | [--tls-server-cert-subject cert-subject]
db-backup | --tls-cert-file cert-file --tls-key-file key-file -k key
db-backup | -o value
db-backup | zabbix_sender [-v] -z server [-p port] [-I IP-address] [-s host]
db-backup | --tls-connect cert --tls-ca-file CA-file
db-backup | [--tls-crl-file CRL-file]
db-backup | [--tls-server-cert-issuer cert-issuer]
db-backup | [--tls-server-cert-subject cert-subject]
db-backup | --tls-cert-file cert-file --tls-key-file key-file [-T] [-r]
db-backup | -i input-file
db-backup | zabbix_sender [-v] -c config-file [-z server] [-p port] [-I IP-address]
db-backup | [-s host] --tls-connect cert --tls-ca-file CA-file
db-backup | [--tls-crl-file CRL-file]
db-backup | [--tls-server-cert-issuer cert-issuer]
db-backup | [--tls-server-cert-subject cert-subject]
db-backup | --tls-cert-file cert-file --tls-key-file key-file -k key
db-backup | -o value
db-backup | zabbix_sender [-v] -c config-file [-z server] [-p port] [-I IP-address]
db-backup | [-s host] --tls-connect cert --tls-ca-file CA-file
db-backup | [--tls-crl-file CRL-file]
db-backup | [--tls-server-cert-issuer cert-issuer]
db-backup | [--tls-server-cert-subject cert-subject]
db-backup | --tls-cert-file cert-file --tls-key-file key-file [-T] [-r]
db-backup | -i input-file
db-backup | zabbix_sender [-v] -z server [-p port] [-I IP-address] -s host
db-backup | --tls-connect psk --tls-psk-identity PSK-identity
db-backup | --tls-psk-file PSK-file -k key -o value
db-backup | zabbix_sender [-v] -z server [-p port] [-I IP-address] [-s host]
db-backup | --tls-connect psk --tls-psk-identity PSK-identity
db-backup | --tls-psk-file PSK-file [-T] [-r] -i input-file
db-backup | zabbix_sender [-v] -c config-file [-z server] [-p port] [-I IP-address]
db-backup | [-s host] --tls-connect psk --tls-psk-identity PSK-identity
db-backup | --tls-psk-file PSK-file -k key -o value
db-backup | zabbix_sender [-v] -c config-file [-z server] [-p port] [-I IP-address]
db-backup | [-s host] --tls-connect psk --tls-psk-identity PSK-identity
db-backup | --tls-psk-file PSK-file [-T] [-r] -i input-file
db-backup | zabbix_sender -h
db-backup | zabbix_sender -V
db-backup | + [[ -n '' ]]
db-backup | + '[' '' = TRUE ']'
db-backup | + sleep 86400
Looks like it ignores the DB name in the command generation phase, therefore it's trying to connect to the root
db. Tried with '
, "
and also without anything sorrounding db name, user and password
That's strange. Definitely the Double quotes are throwing some errors there. I'm not running 11 on any production systems but it shouldn't be different. I will in the next few days get one of my guys to look into this to see if we can replicate. FWIW we've got this running on half a dozen production systems with no hiccups, although now I'm getting paranoid :)
Could be my setup, I know that setting root
as the username is not recommended, but I don't see why it should fail.
I'll try to investigate if I have the time and see if I can fix it myself. I believe the issue is when it creates the command to do the actual backup:
db-backup | ++ psql -h pg -U '"root"' -p 5432 -c 'COPY (SELECT datname FROM pg_database WHERE datistemplate = false) TO STDOUT;'
As you can see it does not use the DB name, so maybe (hopefully) it's a simple fix.
Hi there, sorry for my delay. I had a chance to look at our production systems and also your logs in more detail. It is stating in your logs that the password is wrong, which may limit your ability to get your backups working properly.
In the code, If SPLIT_DB=TRUE
we query the psql server for databases, then execute a for loop to backup the databases one by one.
Specifically the command works like so:
export PGPASSWORD=${DBPASS}
DATABASES=`psql -h $DBHOST -U $DBUSER -p ${DBPORT} -c 'COPY (SELECT datname FROM pg_database WHERE datistemplate = false) TO STDOUT;' `
for db in $DATABASES; do
echo "** [db-backup] Dumping database: $db"
TARGET=pgsql_${db}_${DBHOST}_${now}.sql
pg_dump -h ${DBHOST} -p ${DBPORT} -U ${DBUSER} $db > ${TMPDIR}/${TARGET}
generate_md5
compression
move_backup
done
Running this on your command line should give you some sort of output, if not, then it is indeed a problem with the password you have setup:
bash-5.0# export PGPASSWORD=$DB_PASS
bash-5.0# psql -h $DB_HOST -U $DB_USER -c 'COPY (SELECT datname FROM pg_database WHERE datistemplate = false) TO STDOUT;'
postgres
database1
database2
Running the command SELECT datname FROM pg_database WHERE datistemplate = false
inside of DataGrip, connected with the same credentials I used for this image, gives me a list of the actual DBs inside of the instance without any issues.
So I believe the issue happens only when using the psql
command to list the available DBs. If I run the command
psql -U root -h localhost <DB_NAME>
inside of the Postgres 11 container, the auth works without any issues and I am able to interact with the system.
If I do not specify the DB name, then the command fails and I get a
psql: FATAL: database "root" does not exist
So I believe the issue happens when the name of the DB is omitted from the command, which makes the listing of the available DBs only possible throught the use of the option --list
which in itself produces a lot more noise than required and more difficult to parse.
I have put the following command together, and I recognize it is awful but I do not have much experience with awk
and the shell in general, but it works:
psql -U root -h localhost --list | tail -n +4 | head -n -3 | awk '!/template[0-9]/' | awk '{print $1}' | head -n -1
the command outputs essentially the same as the current command that uses the SQL syntax, although it is a lot uglier.
I'm a fan of ugly one liners :) Let me spend some time on this and see if I can recreate.
After a bit of playing around, even changing the username and password to anything else failed in my case. The only thing that allowed it to work was to set the SPLIT_DB
flag to FALSE
therefore bypassing the step outlined above.
I do not believe this is a solution, but it is a workaround nonetheless.
Backup of all postgres database does not work when setting SPLIT_DB=TRUE
. The line @tiredofit describes gives me the following output:
bash-5.0# export PGPASSWORD=$DB_PASS
bash-5.0# psql -h $DB_HOST -U $DB_USER -c 'COPY (SELECT datname FROM pg_database WHERE datistemplate = false) TO STDOUT;'
psql: error: FATAL: database "admin" does not exist
Adding a database called admin
solves the problem. But this should not be a requirement since it is not automatically added by the postgres image.
My docker-compose:
postgres:
image: postgres:12.1-alpine
hostname: postgres
container_name: postgres
restart: always
environment:
POSTGRES_USER: ${POSTGRESUSER}
POSTGRES_PASSWORD: ${POSTGRESPW}
POSTGRES_DB: ${POSTGRESDB}
volumes:
- postgres-data:/var/lib/postgresql/data
postgres-db-backup:
image: tiredofit/db-backup:latest
container_name: postgres-db-backup
restart: always
links:
- postgres
volumes:
- postgres-backups:/backup
- /etc/timezone:/etc/timezone:ro
environment:
- DEBUG_MODE=true
- BACKUP_LOCATION=FILESYSTEM
- DB_TYPE=pgsql
- DB_HOST=postgres
- DB_USER=${POSTGRESUSER}
- DB_PASS=${POSTGRESPW}
- DB_DUMP_FREQ=1440
- DB_DUMP_BEGIN=0430
- DB_CLEANUP_TIME=8640
- MD5=TRUE
- COMPRESSION=GZ
- SPLIT_DB=TRUE
@pennal please try it now by defining the database name DB_NAME
. The DB_NAME
should be the database against the client should authenticate. I tested it myself and after the merged fix it works now :)
Anyone troubleshooting this issue- I was able to get it working for Postgres with these vars:
DB_TYPE=pgsql
DB_HOST=172.16.xxx.xxx (fill your db IP, mine happens to live in 255.255.0.0)
DB_USER=backup_worker (or whichever user you've created that has at least CONNECT/USAGE/SELECT/COPY permissions for any databases you want to backup)
DB_PASS=****** (whatever yours is)
SPLIT_DB=FALSE (couldn't get it to work otherwise)
DBNAME=ALL
The Docker log still shows an error that database "backup_worker" doesn't exist, but the backup executes successfully.