pg_basebackup(复制)后无法启动 Postgresql 12
Cannot start Postgresql 12 after pg_basebackup (replication)
我有两个数据库服务器,我正在尝试为我的带有 TimescaleDB 扩展的 PostgreSQL 进行主从复制。
我经历了这个过程:
[两者]在 CentOS 7 上安装 PostgreSQL 12。
[两者]初始化数据库并安装TimescaleDB。 (按照官网教程)
[两者] 完成所有 firewall-cmd
、postgresql.conf
和 pg_hba.conf
工作。
[Master] 创建初始数据库。
[Slave] 停止 PostgreSQL,删除 /var/lib/pgsql/12/data
中的所有内容,并从 Master pg_basebackup
中删除所有内容。
(我使用的命令:pg_basebackup -h [MASTER_DB_IP] -D /var/lib/pgsql/12/data -U [REP_USER] -vP -W
)
[从]设置hot_standby = on
并创建recovery.conf
[Slave] 启动 PostgreSQL 检查复制工作。
[Slave]出现这个错误,无法启动PostgreSQL。
-- Subject: Unit postgresql-12.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit postgresql-12.service has begun starting up.
Dec 02 17:53:40 localhost.localdomain postmaster[10439]: 2020-12-02 17:53:40.116 KST [10439] LOG: starting PostgreSQL 12.5 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red
Dec 02 17:53:40 localhost.localdomain postmaster[10439]: 2020-12-02 17:53:40.116 KST [10439] LOG: listening on IPv4 address "0.0.0.0", port 5432
Dec 02 17:53:40 localhost.localdomain postmaster[10439]: 2020-12-02 17:53:40.116 KST [10439] LOG: listening on IPv6 address "::", port 5432
Dec 02 17:53:40 localhost.localdomain postmaster[10439]: 2020-12-02 17:53:40.122 KST [10439] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
Dec 02 17:53:40 localhost.localdomain postmaster[10439]: 2020-12-02 17:53:40.130 KST [10439] LOG: listening on Unix socket "/tmp/.s.PGSQL.5432"
Dec 02 17:53:40 localhost.localdomain postmaster[10439]: 2020-12-02 17:53:40.142 KST [10439] LOG: redirecting log output to logging collector process
Dec 02 17:53:40 localhost.localdomain postmaster[10439]: 2020-12-02 17:53:40.142 KST [10439] HINT: Future log output will appear in directory "log".
Dec 02 17:53:42 localhost.localdomain systemd[1]: postgresql-12.service: main process exited, code=exited, status=1/FAILURE
Dec 02 17:53:42 localhost.localdomain systemd[1]: Failed to start PostgreSQL 12 database server.
据我所知,这是复制的最后一步。但是 PostgreSQL 在所有配置后都没有启动。
请问我任何详细的问题。
提前致谢。
从版本 12 开始,PostgreSQL 不再使用 recovery.conf
进行恢复配置。
相反,您必须将恢复配置参数添加到 postgresql.conf
或 postgresql.auto.conf
(后者在自动编辑方面值得称赞)。
然后在数据目录中创建一个文件standby.signal
,它告诉 PostgreSQL 启动并保持在恢复模式。
然后启动备用服务器
注意:standby_mode
参数没有了。相反,如果您想要待机模式,请使用 standby.signal
,对于结束的恢复模式,请使用 recovery.signal
。
我有两个数据库服务器,我正在尝试为我的带有 TimescaleDB 扩展的 PostgreSQL 进行主从复制。
我经历了这个过程:
[两者]在 CentOS 7 上安装 PostgreSQL 12。
[两者]初始化数据库并安装TimescaleDB。 (按照官网教程)
[两者] 完成所有
firewall-cmd
、postgresql.conf
和pg_hba.conf
工作。[Master] 创建初始数据库。
[Slave] 停止 PostgreSQL,删除
/var/lib/pgsql/12/data
中的所有内容,并从 Masterpg_basebackup
中删除所有内容。(我使用的命令:
pg_basebackup -h [MASTER_DB_IP] -D /var/lib/pgsql/12/data -U [REP_USER] -vP -W
)[从]设置
hot_standby = on
并创建recovery.conf
[Slave] 启动 PostgreSQL 检查复制工作。
[Slave]出现这个错误,无法启动PostgreSQL。
-- Subject: Unit postgresql-12.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit postgresql-12.service has begun starting up.
Dec 02 17:53:40 localhost.localdomain postmaster[10439]: 2020-12-02 17:53:40.116 KST [10439] LOG: starting PostgreSQL 12.5 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red
Dec 02 17:53:40 localhost.localdomain postmaster[10439]: 2020-12-02 17:53:40.116 KST [10439] LOG: listening on IPv4 address "0.0.0.0", port 5432
Dec 02 17:53:40 localhost.localdomain postmaster[10439]: 2020-12-02 17:53:40.116 KST [10439] LOG: listening on IPv6 address "::", port 5432
Dec 02 17:53:40 localhost.localdomain postmaster[10439]: 2020-12-02 17:53:40.122 KST [10439] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
Dec 02 17:53:40 localhost.localdomain postmaster[10439]: 2020-12-02 17:53:40.130 KST [10439] LOG: listening on Unix socket "/tmp/.s.PGSQL.5432"
Dec 02 17:53:40 localhost.localdomain postmaster[10439]: 2020-12-02 17:53:40.142 KST [10439] LOG: redirecting log output to logging collector process
Dec 02 17:53:40 localhost.localdomain postmaster[10439]: 2020-12-02 17:53:40.142 KST [10439] HINT: Future log output will appear in directory "log".
Dec 02 17:53:42 localhost.localdomain systemd[1]: postgresql-12.service: main process exited, code=exited, status=1/FAILURE
Dec 02 17:53:42 localhost.localdomain systemd[1]: Failed to start PostgreSQL 12 database server.
据我所知,这是复制的最后一步。但是 PostgreSQL 在所有配置后都没有启动。
请问我任何详细的问题。
提前致谢。
从版本 12 开始,PostgreSQL 不再使用 recovery.conf
进行恢复配置。
相反,您必须将恢复配置参数添加到 postgresql.conf
或 postgresql.auto.conf
(后者在自动编辑方面值得称赞)。
然后在数据目录中创建一个文件standby.signal
,它告诉 PostgreSQL 启动并保持在恢复模式。
然后启动备用服务器
注意:standby_mode
参数没有了。相反,如果您想要待机模式,请使用 standby.signal
,对于结束的恢复模式,请使用 recovery.signal
。