0


为两台centos下的postgres配置主从同步

一、环境准备:
操作系统
IP
主:centos7.5192.168.1.132从:centos6.4192.168.1.125
二、postgres软件准备。
1、下载地址: https://www.postgresql.org/ftp/source/https://www.postgresql.org/ftp/source/
2、安装依赖

             yum install readline
              yum install gcc
              yum -y install -y readline-devel
              yum install zlib-devel

    我这里用的是postgres一键安装包。
     直接执行:
     postgres配置文件:/usr/local/pgsql/data/
     postgres日志文件:/usr/local/pgsql/data/pg_log/
 ./extradius-pgsql9.3.2-centos6.x-x86_64.run
![](https://img-blog.csdnimg.cn/b8d08909e18f4f25918029cf84db1752.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBALmNtZA==,size_20,color_FFFFFF,t_70,g_se,x_16)

三、主服务器配置。

    1、修改主服务器配置文件 

          vim /usr/local/pgsql/data/postgresql.conf
wal_level = replica                                   //163行   
archive_mode = on                                     //192行   打开存档模式
archive_command = 'cp %p /opt/postgresql-11.6/data/pg_archive/%f'     // 194行  定义存档命令 

##%p = path of file to archive
##%f = file name only

max_wal_senders = 6                                 //210行  最多发送量
wal_keep_segments = 10240                           //212行
wal_sender_timeout = 60s                            //213行
   2、修改pg_hba.conf,允许192.168.1.125用户来同步

           vim  /usr/local/pgsql/data/pg_hba.conf

           IPv4 local connections下方增加
#允许200连接到主服务器:
host replication replica 192.168.1.125/24 md5

#允许200使用replica用户来复制:
host     all     replica 192.168.1.125/24 trust

如图:

    3、创建归档文件

            mkdir -p /usr/local/pgsql/data/pg_archive

     4、重启数据库

            1)、配置postgres环境变量以支持psql、pg_ctl等命令。
                     在/etc/profile文件中配置pgsql环境变量:
                     export PGDATA=/usr/local/pgsql/data
                     export PGHOST=127.0.0.1
                     export PGDATABASE=postgres
                     export PGUSER=postgres
                     export PGPORT=5432
                     PATH=/usr/local/pgsql/bin:$PATH
                     export PATH
                     重新加载文件:source /etc/profile,即可使配置生效。
             2)重启数据库服务。      
[postgres@bogon /]$ pg_ctl /usr/local/pgsql/data/ reload

四、配置从服务器。

    1、停止postgres服务。
[postgres@localhost data]$ pg_ctl -D /opt/postgresql-11.6/data/ -l /opt/postgresql-11.6/log/postgres.log stop
    2、删除data目录下所有数据。
[root@localhost pg_log]#  rm -rf /usr/local/pgsql/data/*
    3、修改/usr/local/pgsql属主与data目录访问权限。
[root@localhost pg_log]# chown -R postgres:postgres /opt/postgresql-11.6
[root@localhost pg_log]# chmod 0700 /opt/postgresql-11.6/data
    4、同步主数据库的文件
[root@localhost pg_log]# pg_basebackup -Fp --progress -D /opt/postgresql-11.6/data -h 192.168.1.130 -p 5432 -U repl --password
     5、拷贝**recovery.conf**模板文件到data目录并修改。
# 这个说明这台机器为从库
standby_mode = on                                 // 108行

# 这个说明这台机器对应主库的信息
primary_conninfo = 'host=192.168.1.130 port=5432 user=repl password=repl'        //115行

# 这个说明这个流复制同步到最新的数据
recovery_target_timeline = 'latest'                 //  88行
    6、修改从库postgresql.conf文件
#一般查多于写的应用从库的最大连接数要比较大
max_connections = 1000                             //64行

#说明这台机器不仅仅是用于数据归档,也用于数据查询
hot_standby = on                                      //228行

#数据流备份的最大延迟时间
max_standby_streaming_delay = 30s                  //233行

#多久向主报告一次从的状态,当然从每次数据复制都会向主报告状态,这里只是设置最长的间隔时间
wal_receiver_status_interval = 1s                  //236行

#如果有错误的数据复制,是否向主进行反馈
hot_standby_feedback = on                          //238行
     7、修改/usr/local/pgsql属主与权限,data的属主与权限。(参考主数据库)

     8、从数据库创建repliac用户。
[postgres@bogon bak]$ psql -U postgres
psql (9.3.2)
Type "help" for help.

postgres=#
postgres=#
postgres=# CREATE ROLE repl login replication encrypted password 'repl';
CREATE ROLE
postgres=# 
    9、重启数据库。

五、验证是否同步。

    在主服务器(192.168.1.132)上插入数据或删除数据,
     在从服务器(192.168.1.125)上能看到相应的变化。
     从服务器(192.168.1.125)上只能查询,不能插入或删除。

标签: centos p2p linux

本文转载自: https://blog.csdn.net/weixin_43547718/article/details/122496174
版权归原作者 .cmd 所有, 如有侵权,请联系我们删除。

“为两台centos下的postgres配置主从同步”的评论:

还没有评论