加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL流式复制

发布时间:2020-12-13 15:54:20 所属栏目:百科 来源:网络整理
导读:我正在尝试在一台计算机上设置两个PostgreSQL服务器并执行流式复制.我成功了一次,但是当我再次尝试按照完全相同的步骤时它不起作用..这些是步骤: 我有$PGDATA = home / postgresql / 9.1 / data 和$STANDBY = home / postgresql / 9.1 / data2 设置两个节点
我正在尝试在一台计算机上设置两个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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读