数据库服务器上的 pgpool 设置
pgpool Setup on Database Server
我有三台服务器。一个是运行 pgpool,另外两个是主从模式的流复制。安装 pgpool 时,我被建议在我的数据库服务器上也安装 pgpool_regclass
。在主节点上安装没有问题,但是当我尝试在从节点上执行相同操作时,出现错误 ERROR: cannot execute CREATE EXTENSION in a read-only transaction
.
我觉得是因为slave是双机热备,而且SELECT pg_is_in_recovery();
returns没错。所以我想知道我是否应该在从机上安装 pgpool_regclass
。似乎不是,但是 pgpool 文档说我应该在 pgpool 将要访问的每个数据库上安装它。
我找到了原因。删除从库中的recovery.conf
文件,然后运行pgpool_regclass
。否则slave处于recovery模式,无法执行写命令。
我有三台服务器。一个是运行 pgpool,另外两个是主从模式的流复制。安装 pgpool 时,我被建议在我的数据库服务器上也安装 pgpool_regclass
。在主节点上安装没有问题,但是当我尝试在从节点上执行相同操作时,出现错误 ERROR: cannot execute CREATE EXTENSION in a read-only transaction
.
我觉得是因为slave是双机热备,而且SELECT pg_is_in_recovery();
returns没错。所以我想知道我是否应该在从机上安装 pgpool_regclass
。似乎不是,但是 pgpool 文档说我应该在 pgpool 将要访问的每个数据库上安装它。
我找到了原因。删除从库中的recovery.conf
文件,然后运行pgpool_regclass
。否则slave处于recovery模式,无法执行写命令。