执行最新更新(包括 PostgreSQL)后出现错误:
root@community:/var/discourse# ./launcher rebuild app
确保启动器为最新版本
获取远程仓库
启动器已是最新
停止旧容器
+ /usr/bin/docker stop -t 60 app
app
cd /pups && git pull && /pups/bin/pups --stdin
已是最新。
I, [2020-06-03T15:38:58.391364 #1] INFO -- : 加载 --stdin
I, [2020-06-03T15:38:58.398128 #1] INFO -- : > locale-gen $LANG && update-locale
I, [2020-06-03T15:38:58.731357 #1] INFO -- : 正在生成区域设置(这可能需要一些时间)...
生成完成。
I, [2020-06-03T15:38:58.731849 #1] INFO -- : > mkdir -p /shared/postgres_run
I, [2020-06-03T15:38:58.751775 #1] INFO -- :
I, [2020-06-03T15:38:58.756078 #1] INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2020-06-03T15:38:58.765806 #1] INFO -- :
I, [2020-06-03T15:38:58.766148 #1] INFO -- : > chmod 775 /shared/postgres_run
I, [2020-06-03T15:38:58.767966 #1] INFO -- :
I, [2020-06-03T15:38:58.768305 #1] INFO -- : > rm -fr /var/run/postgresql
I, [2020-06-03T15:38:58.770246 #1] INFO -- :
I, [2020-06-03T15:38:58.770626 #1] INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2020-06-03T15:38:58.785523 #1] INFO -- :
I, [2020-06-03T15:38:58.785863 #1] INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2020/06/03 15:38:58 socat[26] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): 没有那个文件或目录
I, [2020-06-03T15:38:58.911895 #1] INFO -- :
I, [2020-06-03T15:38:58.912203 #1] INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2020-06-03T15:38:58.914376 #1] INFO -- :
I, [2020-06-03T15:38:58.914625 #1] INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2020-06-03T15:38:58.916280 #1] INFO -- :
I, [2020-06-03T15:38:58.916527 #1] INFO -- : > mkdir -p /shared/postgres_run/12-main.pg_stat_tmp
I, [2020-06-03T15:38:58.917967 #1] INFO -- :
I, [2020-06-03T15:38:58.918303 #1] INFO -- : > chown postgres:postgres /shared/postgres_run/12-main.pg_stat_tmp
I, [2020-06-03T15:38:58.919709 #1] INFO -- :
I, [2020-06-03T15:38:58.925728 #1] INFO -- : 文件 > /etc/service/postgres/run 权限:+x 所有者:
I, [2020-06-03T15:38:58.928444 #1] INFO -- : 文件 > /etc/service/postgres/log/run 权限:+x 所有者:
I, [2020-06-03T15:38:58.931357 #1] INFO -- : 文件 > /etc/runit/3.d/99-postgres 权限:+x 所有者:
I, [2020-06-03T15:38:58.934190 #1] INFO -- : 文件 > /root/upgrade_postgres 权限:+x 所有者:
I, [2020-06-03T15:38:58.934528 #1] INFO -- : > chown -R root /var/lib/postgresql/12/main
I, [2020-06-03T15:40:44.749613 #1] INFO -- :
I, [2020-06-03T15:40:44.750250 #1] INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/12/bin/initdb -D /shared/postgres_data || exit 0
I, [2020-06-03T15:40:44.751653 #1] INFO -- :
I, [2020-06-03T15:40:44.751914 #1] INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2020-06-03T15:40:47.940064 #1] INFO -- :
I, [2020-06-03T15:40:47.940713 #1] INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2020-06-03T15:40:47.942521 #1] INFO -- :
I, [2020-06-03T15:40:47.942924 #1] INFO -- : > /root/upgrade_postgres
initdb: 警告:为本地连接启用“信任”身份验证
您可以在下次运行 initdb 时通过编辑 pg_hba.conf 或使用选项 -A、
--auth-local 和 --auth-host 来更改此设置。
debconf:由于未安装 apt-utils,延迟软件包配置。
I, [2020-06-03T15:42:45.495966 #1] INFO -- : 将 PostgreSQL 从版本 10 升级到 12
属于此数据库系统的文件将由用户“postgres”所有。
该用户也必须拥有服务器进程。
数据库集群将使用区域设置“en_US.UTF-8”进行初始化。
默认数据库编码已相应设置为“UTF8”。
默认文本搜索配置将设置为“english”。
数据页校验和已禁用。
修复现有目录 /shared/postgres_data_new 的权限 ... 完成
创建子目录 ... 完成
选择动态共享内存实现 ... posix
选择默认 max_connections ... 100
选择默认 shared_buffers ... 128MB
选择默认时区 ... Etc/UTC
创建配置文件 ... 完成
运行引导脚本 ... 完成
执行引导后初始化 ... 完成
将数据同步到磁盘 ... 完成
成功。现在您可以使用以下命令启动数据库服务器:
/usr/lib/postgresql/12/bin/pg_ctl -D /shared/postgres_data_new -l logfile start
获取:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
命中:2 http://deb.debian.org/debian buster InRelease
获取:3 http://deb.debian.org/debian buster-updates InRelease [49.3 kB]
获取:4 https://deb.nodesource.com/node_10.x buster InRelease [4,584 B]
获取:5 http://apt.postgresql.org/pub/repos/apt buster-pgdg InRelease [84.6 kB]
获取:6 http://security.debian.org/debian-security buster/updates/main amd64 Packages [201 kB]
获取:7 https://deb.nodesource.com/node_10.x buster/main amd64 Packages [768 B]
获取:8 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 Packages [171 kB]
已下载 577 kB,耗时 1 秒(698 kB/s)
正在读取软件包列表...
正在读取软件包列表...
正在构建依赖关系树...
正在读取状态信息...
以下附加软件包将被安装:
postgresql-client-10
建议安装的软件包:
postgresql-doc-10
以下新软件包将被安装:
postgresql-10 postgresql-client-10
0 个升级,2 个新安装,0 个移除,10 个未升级。
需要下载 6,390 kB 的归档文件。
此操作后,将额外使用 30.6 MB 的磁盘空间。
获取:1 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-client-10 amd64 10.13-1.pgdg100+1 [1,428 kB]
获取:2 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-10 amd64 10.13-1.pgdg100+1 [4,961 kB]
已下载 6,390 kB,耗时 0 秒(38.2 MB/s)
选择先前未选中的软件包 postgresql-client-10。
(正在读取数据库 ... 当前已安装 43929 个文件和目录。)
准备解包 .../postgresql-client-10_10.13-1.pgdg100+1_amd64.deb ...
正在解包 postgresql-client-10 (10.13-1.pgdg100+1) ...
选择先前未选中的软件包 postgresql-10。
准备解包 .../postgresql-10_10.13-1.pgdg100+1_amd64.deb ...
正在解包 postgresql-10 (10.13-1.pgdg100+1) ...
正在设置 postgresql-client-10 (10.13-1.pgdg100+1) ...
update-alternatives:警告:强制重新安装替代方案 /usr/share/postgresql/12/man/man1/psql.1.gz,因为链接组 psql.1.gz 已损坏
正在设置 postgresql-10 (10.13-1.pgdg100+1) ...
正在创建新的 PostgreSQL 集群 10/main ...
/usr/lib/postgresql/10/bin/initdb -D /var/lib/postgresql/10/main --auth-local peer --auth-host md5
属于此数据库系统的文件将由用户“postgres”所有。
该用户也必须拥有服务器进程。
数据库集群将使用区域设置“C.UTF-8”进行初始化。
默认数据库编码已相应设置为“UTF8”。
默认文本搜索配置将设置为“english”。
数据页校验和已禁用。
修复现有目录 /var/lib/postgresql/10/main 的权限 ... 完成
创建子目录 ... 完成
选择默认 max_connections ... 100
选择默认 shared_buffers ... 128MB
选择默认时区 ... Etc/UTC
选择动态共享内存实现 ... posix
创建配置文件 ... 完成
运行引导脚本 ... 完成
执行引导后初始化 ... 完成
将数据同步到磁盘 ... 完成
成功。现在您可以使用以下命令启动数据库服务器:
pg_ctlcluster 10 main start
警告:选定的 stats_temp_directory /var/run/postgresql/10-main.pg_stat_tmp
对集群所有者不可写。未在
postgresql.conf 中添加此设置。
版本 集群 端口 状态 所有者 数据目录 日志文件
10 main 5433 关闭 postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
update-alternatives:警告:强制重新安装替代方案 /usr/share/postgresql/12/man/man1/postmaster.1.gz,因为链接组 postmaster.1.gz 已损坏
invoke-rc.d:无法确定当前运行级别
invoke-rc.d:policy-rc.d 拒绝了启动执行。
正在处理 postgresql-common (213.pgdg100+1) 的触发器...
从已安装的 myspell/hunspell 软件包构建 PostgreSQL 词典...
正在删除过时的词典文件:
正在停止 PostgreSQL 10 数据库服务器:main。
正在停止 PostgreSQL 12 数据库服务器:main。
执行一致性检查
-----------------------------
检查集群版本 完成
源集群未正常关闭。
失败,正在退出
-------------------------------------------------------------------------------------
POSTGRES 升级失败
请访问 https://meta.discourse.org/t/postgresql-12-update/151236 获取支持
在此期间,您可以运行 ./launcher start app 来重启您的应用
失败
--------------------
Pups::ExecError: /root/upgrade_postgres 失败,返回码为 #<Process::Status: pid 45 exit 1>
失败位置:/pups/lib/pups/exec_command.rb:112:in `spawn'
执行失败,参数为 "/root/upgrade_postgres"
674042fc06e2af0c08a0a09c46406a0b18b1f08b9140e037fffe1053188bd1c0
** 引导失败 ** 请向上滚动并查找更早的错误消息,可能不止一条。
./discourse-doctor 可能有助于诊断问题。
root@community:/var/discourse#
有任何想法吗?