我尝试使用来自shell脚本的pg_restore在PostgreSQL Docker容器中还原数据库。我遇到了以下错误:“ERROR:取消自动真空任务 CONTEXT:表'tablename'的自动分析”。 DockerFile:
FROM postgres:9.3
ENV POSTGRES_USER postgres
ENV POSTGRES_PASSWORD Abcd1234
ENV POSTGRES_DB Clarion1
COPY DB.backup /var/lib/postgresql/backup/DB.backup
COPY initialize.sh /docker-entrypoint-initdb.d/initialize.sh
initialize.sh
#!/bin/bash
set -e
set -x
echo "******PostgreSQL initialisation******"
pg_restore -C -d DB /var/lib/postgresql/backup/DB.backup
日志:
server started
CREATE DATABASE
/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/initialize.sh
++ echo '******PostgreSQL initialisation******'
++ pg_restore -C -d Clarion1 /var/lib/postgresql/backup/Clarion53.backup
******PostgreSQL initialisation******
ERROR: canceling autovacuum task
但是,如果我尝试从主机命令提示符中使用相同的备份文件还原数据库,它可以正常工作。