一、环境准备:
操作系统
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)上只能查询,不能插入或删除。
版权归原作者 .cmd 所有, 如有侵权,请联系我们删除。