PostgreSQL流式复制

我正在尝试在一台计算机上设置两个Postgresql服务器并执行流式复制.我成功了一次,但是当我再次尝试按照完全相同的步骤时它不起作用..这些是步骤:
我有$PGDATA = home / postgresql / 9.1 / data
和$STANDBY = home / postgresql / 9.1 / data2

>设置两个节点:

initdb -D $PGDATA

initdb -D $STANDBY

>在主节点中创建用于复制的用户.我在pgAdmin中执行此操作(它具有超级用户权限)
>在pg_hba.conf中的主节点中添加允许待机连接的部分:

主机复制repuser 127.0.0.1/0 md5

>在postgresql.conf中的主节点中设置:

max_wal_senders = 1

archive_mode = on

archive_command =’cp%p~ / postgresql / backup / archivedir /%f’

wal_level = archive

wal_keep_segments = 32

>启动主节点并执行基本备份:

psql -d dellstore2 -c“SELECT pg_start_backup(‘backup for replication’,true)”

rsync -av ${PGDATA} / $STANDBY –exclude postmaster.pid

psql -d dellstore2 -c“select pg_stop_backup()”

pg_stop_backup说一切都很好,所有的WAL文件都归档了

>在standby(data2)节点中,我使用以下命令创建recovery.conf:

standby_mode =’on’

primary_conninfo =’host = 127.0.0.1 port = 5432 user = repuser password = haslo’

trigger_file =’/ home /michau / postgresql / replication.trigger’

restore_command =’cp / home / michau / postgresql / backup / archivedir /%f“%p”’

>启动主节点,然后启动备用节点 – 复制应该启动,备用应该赶上主节点.这正是第一次发生的事情.
现在,当我启动待机时,我得到:“地址已在使用中”错误.
当然,standby和master都有相同的postgresql.conf中指定的端口(它们具有完全相同的postgresql.conf文件).如果我在待机状态下更改端口让我们说5433然后我得到:

日志:数据库系统在2012-06-12 19:48:01 CEST恢复关闭

日志:进入待机模式

cp:不能stat / home / michau / postgresql / backup / archivedir / 000000010000000000000007:没有这样的文件或目录

日志:在0/7000070达到一致的恢复状态

日志:记录零长度为0/7000070

cp:不能stat / home / michau / postgresql / backup / archivedir / 000000010000000000000007:没有这样的文件或目录

日志:流式复制成功连接到主要

日志:重做从0/7000070开始

它只是挂在这里.运行ps -ef | grep postgresql产量:

michau 2491 1898 0 19:46 pts / 0 00:00:00 postgres -D /home/michau/postgresql/9.1/data

michau 2493 2491 0 19:46? 00:00:01 postgres:作家流程

michau 2494 2491 0 19:46? 00:00:00 postgres:沃尔玛作家流程

michau 2495 2491 0 19:46? 00:00:00 postgres:autovacuum启动程序进程

michau 2496 2491 0 19:46? 00:00:00 postgres:归档进程最后是000000010000000000000008

michau 2497 2491 0 19:46? 00:00:00 postgres:stats收集器进程

michau 2571 2214 0 19:49 pts / 1 00:00:00 postgres -D /home/michau/postgresql/9.1/data2

michau 2572 2571 0 19:49? 00:00:01 postgres:启动过程恢复000000010000000000000009

michau 2575 2571 0 19:49? 00:00:01 postgres:作家流程

michau 2578 2571 0 19:49? 00:00:02 postgres:沃尔接收器进程流0 / 99782DC

michau 2579 2491 0 19:49? 00:00:00 postgres:wal sender process repuser 127.0.0.1(42142)streaming 0 / 99782DC

michau 2586 2491 0 19:51? 00:00:00 postgres:michau postgres :: 1(49941)闲置

michau 2587 2491 0 19:51? 00:00:01 postgres:michau dellstore2 :: 1(49942)闲置

恢复0000000010000009在哪里改变了一段时间,但是半小时它就不再了.

我确信我第一次必须做的事情并没有写下来或其他什么,但我完全不知道它是什么.我将不胜感激任何帮助.

解决方法

我完成了您在上面发布的步骤,并在发布时收到了确切的错误,但我能够解决问题.

我尝试将您的步骤与此站点中发布的步骤合并
http://www.debian-administration.org/article/How_to_setup_Postgresql_9.1_Streaming_Replication_Debian_Squeeze

除了您发布的步骤之外,我还从我提供的网站添加了2个步骤.这两个步骤如下:

>在从主服务器rsync之前删除备用服务器中的所有文件文件夹.>在master的postgresql.conf中,将wal_level设置为hot_standby而不是archive,并将hot_standby设置为on.

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...