【发布时间】:2017-01-09 02:13:51
【问题描述】:
我正在尝试使用 shellscript 中的 pg_restore 恢复 PostgreSQL docker 容器中的数据库,taht 将从 docker 文件中调用。我收到以下错误 "ERROR: canceling autovacuum task 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
但是,如果我尝试从同一备份文件的主机中的命令提示符恢复数据库,它工作正常。
【问题讨论】:
-
我认为您可能需要等待数据库完全初始化后再运行还原。
标签: postgresql docker dockerfile