为了测试流复制,我想在同一台机器上创建第二个Postgres示例。其想法是,如果可以在测试服务器上完成,那么在两台生产服务器上设置它应该是微不足道的。
示例应该使用不同的配置文件和不同的数据目录。我尝试按照这里的说明http://ubuntuforums.org/showthread.php?t=1431697,但我还没有弄清楚如何让Postgres使用不同的配置文件。如果我复制init脚本,脚本只是同一个Postgres示例的别名。
我正在使用Postgres 9.3,Postgres帮助页面上说要在postgres
命令行上指定配置文件。我不太清楚这是什么意思。我是否应该安装一些客户端来使其工作?谢谢。
4条答案
按热度按时间uplii1fm1#
我假设您可以通过使用postgresql实用程序来解决问题。
建立丛集
运行示例
测试流
现在,您有两个示例在端口5433和5434上运行。它们的配置文件位于
initdb
指定的数据目录中。调整它们以进行流式复制。默认安装在端口5432中保持不变。
hmmo2u0o2#
在PostgreSQL 9.5上创建新服务器示例的步骤
1.在命令提示符下运行:
(提示输入密码)
1.创建新示例目录后,以管理员身份运行命令提示符
1.注册服务后,启动服务器
fhity93d3#
在基于Debian的发行版上,你可以使用
pg_createcluster
代替initdb
:此外,
pg_ctlcluster
是pg_ctl
的替代项。kuuvgm7e4#
要完成其他答案,请访问CentOS 6和7。
在运行了类似于
您必须至少更改
port
配置选项,并且可能更改配置文件postgresql.conf
中的listen_addresses
。您可能希望新示例在系统启动时自动运行(例如在关机时),而不是像前面的答案中解释的那样立即启动这个新示例。要做到这一点,由于CentOS没有
pg_ctl register
选项(仅适用于Windows),您必须创建一个新的服务文件并注册它,以便systemctl或service可以自动启动它。*森托斯6
按照下面的命令获取服务的init文件:
现在您可以将
PGDATA
目录更改为new instance所在的目录。如果您使用的是9.4之前的Postgresql版本(在回答这个问题时,您不应该使用此版本),则还必须将PGPORT
更改为new instance正在侦听的值。新服务的名称由您决定。我通常采用原始服务名称并在末尾添加端口号。
现在您只需注册新服务:
*森托斯7
在CentOS 7中,使用
systemctl
而不是service
来控制机器上运行的服务,命令和路径略有变化,但过程是相同的:创建新服务文件,使用新位置/端口进行编辑,注册并启动: