我在为在线恢复配置pgPool-II 3.7.5时遇到了问题。在pgpool.conf中,有一个名为recovery_user的参数以及一个以某种方式运行recovery_1st_stage_command的recovery_password。
文档池说recovery_user:
指定要执行联机恢复的PostgreSQL用户名。
对我来说,这非常清楚地表明recovery_user是PostgreSQL用户的名称(数据库中的角色)。然而,在文档的前一版本中,它也表示
您需要设置ssh,这样recovery_user就可以从主服务器登录到备用服务器,而无需询问密码。
这清楚地表明recovery_user应该是系统用户。当然,这是来自不同版本的文档,但我很难相信这个特性的实现会以这种方式改变。
recovery_user是数据库角色还是服务器用户?
奖金:请解释pgPool-II是如何安排运行recovery_1st_stage_command的
发布于 2018-08-29 16:52:31
我可以验证recovery_user不是一个系统用户,而是一个数据库角色!pgPool使用名为PCP的协议在其托管节点上运行脚本,PCP通过数据库连接,运行运行恢复脚本的自定义已安装的pgpool函数。这些功能是通过为pgpool-II-extensions安装系统包(apt、yum等),然后在数据库中运行CREATE EXTENSION pgpool_recovery;来安装的。
不幸的是,pgPool通过PCP执行pgpool_recovery函数似乎有问题,但这是一个新的问题。
发布于 2018-08-23 18:25:21
我不使用pgpool,但是运行数据库服务器的必须是操作系统用户。它不能是PostgreSQL数据库中的用户,因为失败的数据库直到恢复之后才能接受连接。
https://dba.stackexchange.com/questions/215717
复制相似问题