本文介绍了pg_restore在postgres docker容器中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试从docker file中调用从shellscript taht使用pg_restore在PostgreSQL docker容器中恢复数据库。我收到以下错误错误:取消autovacuum任务
上下文:自动分析表'tablename' 。
I am trying to restore database in PostgreSQL docker container using pg_restore from a shellscript taht will be called from docker file .I am getting following error "ERROR: canceling autovacuum taskCONTEXT: automatic analyze of table '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
但是,如果我尝试从同一备份文件从主机中的命令提示符还原数据库,它将
推荐答案
这是从主机上文件还原的一种方法:
Here is a way to restore from a file located on the host machine:
docker exec -i container_name pg_restore -U postgres_user -v -d database_name < /dir_backup_outside_container/file_name.tar
这篇关于pg_restore在postgres docker容器中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!