PostgreSQL流式复制
我正在尝试在一台机器上设置两台PostgreSQL服务器并执行流式复制。我曾经成功过一次,但当我按照完全相同的步骤再次尝试时,它不起作用。。这些是步骤: 我有$PGDATA=home/postgresql/9.1/data 和$STANDBY=home/postgresql/9.1/data2PostgreSQL流式复制,postgresql,replication,Postgresql,Replication,我正在尝试在一台机器上设置两台PostgreSQL服务器并执行流式复制。我曾经成功过一次,但当我按照完全相同的步骤再次尝试时,它不起作用。。这些是步骤: 我有$PGDATA=home/postgresql/9.1/data 和$STANDBY=home/postgresql/9.1/data2 设置两个节点: initdb-D$PGDATA initdb-D$STANDBY 在主节点中,创建用于复制的用户。我在pgAdmin中这样做(它确实具有超级用户权限) 在pg_hba.conf的主节点中,
initdb-D$PGDATA
initdb-D$STANDBY
host replication repuser 127.0.0.1/0 md5
max\u wal\u senders=1
archive\u mode=on
archive\u命令='cp%p~/postgresql/backup/archivedir/%f'
wal\u level=archive
wal\u keep\u segments=32
psql-d dellstore2-c“选择pg\u启动\u备份('backup for replication',true)”
rsync-av${PGDATA}/$STANDBY——不包括postmaster.pid
psql-d dellstore2-c“选择pg\u stop\u backup()”
pg_stop_备份说一切正常,所有WAL文件都存档了
待机模式='on'
primary\u conninfo='host=127.0.0.1 port=5432 user=repuser password=haslo'
trigger\u file='/home/michau/postgresql/replication.trigger'
restore\u命令='cp/home/michau/postgresql/backup/archivedir/%f“%p”
日志:数据库系统在2012-06-12 19:48:01 CEST恢复时关闭
LOG:进入待机模式
cp:cannot stat/home/michau/postgresql/backup/archivedir/0000000 100000000000007:没有这样的文件或目录
LOG:在0/700070时达到一致恢复状态
LOG:0/700070处长度为零的记录
cp:cannot stat/home/michau/postgresql/backup/archivedir/0000000 100000000000007:没有这样的文件或目录
LOG:流式复制已成功连接到主服务器
LOG:redo从0/700070开始
它就挂在这里。运行ps-ef | grep postgresql产生:
michau 24911898 0 19:46分/0 00:00:00 postgres-D/home/michau/postgresql/9.1/data
michau 24932491019:46?00:00:01 postgres:编写程序
michau 24942491019:46?00:00:00 postgres:wal writer进程
michau 24952491019:46?00:00:00 postgres:自动真空发射器过程
michau 24962491019:46?00:00:00 postgres:archiver进程最后一次是0000000 100000000000008
michau 24972491019: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 25722571019:49?00:00:01 postgres:启动进程恢复0000000 100000000000009
michau 2575 2571 0 19:49?00:00:01 postgres:编写程序
michau 2578 2571 0 19:49?00:00:02 postgres:wal接收器处理流式处理0/99782DC
michau 25792491019:49?00:00:00 postgres:wal发件人处理repuser 127.0.0.1(42142)流式处理0/99782DC
michau 25862491019:51?00:00:00 postgres:michau postgres::1(49941)空闲
michau 25872491019:51?00:00:01 postgres:michau dellstore2::1(49942)空闲
正在恢复的100000000009会有一段时间发生变化,但半个小时后不会再发生变化
我肯定有一些事情是我第一次做的,没有写下来,但我完全不知道那是什么。非常感谢您的帮助。您的待机状态正在持续恢复,这正是PostgreSQL中流式复制的工作方式。您是否能够登录到待机状态并运行查询?如果是这样的话,恭喜你,它正在发挥作用。如果没有,请发布发生的情况。我完成了您上面发布的步骤,得到了您发布的确切错误,但我能够解决问题
我试图将您的步骤与此站点中发布的步骤合并
除了您发布的步骤之外,我还从我提供的站点添加了两个步骤。这两个步骤如下:
- 先删除备用服务器中的所有文件和文件夹,然后从主服务器重新同步这些文件和文件夹
- 在master的postgresql.conf中,将wal_级别设置为hot_standby而不是archive,并将hot_standby设置为on
我想你会有更多的机会在“谢谢”上找到答案,我不知道有这样的事情存在。