前言:
如今你们对“centos70postgresql”大约比较关切,你们都想要了解一些“centos70postgresql”的相关内容。那么小编在网摘上网罗了一些对于“centos70postgresql””的相关文章,希望小伙伴们能喜欢,你们一起来学习一下吧!本篇继续讲述Postgresql,与上篇(PostgreSQL 像 Mysql 一样轻松实现数据复制)不同,上篇讲述的是如何使用pg_basebackup工具,感兴趣的朋友可以去看看。
下面开始本次讲解,使用是两台Centos服务器
主:192.168.1.108 , CentosOne(master) 端口:5432
备:192.168.1.109 , CentosTwo(standy) 端口:5432
其中,备机只需要安装软件,不需要init(初始化)数据库
在实现主从复制之前已确定如下目录:
1. /home/pgsql/data 目录是master数据库的目录,端口为5432
2. /home/pgsql/data 目录是一台standy数据库的目录,端口为5432
3. /home/pgsql/archive 是 master 至 standby的WAL日志中转地点
一、主数据库操作
1、建立archive日志中转地点
mkdir -p /home/pgsql/archive
chmod -R 0700 /home/pgsql/archive
chown -R postgres.postgres /home/pgsql/archive
2. 配置Master,并做一次base backup
编辑 postgresql.conf 以支持 WAL archiving:
vim /home/pgsql/data/postgresql.conf
wal_level = hot_standby
archive_mode = on
archive_command = 'test ! -f /home/postgres/archive/%f && cp %p /home/postgres/archive/%f'
max_wal_senders = 1
wal_keep_segments = 32
注:
max_wal_senders: 是Slave库的节点数,有多少个slave库就设多少。
wal_level :是write ahead log参数值,设置流复制务必将此值更新成hot_standby。
修改 pg_hba.conf 以允许 repluser 访问
vim /home/pgsql/data/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
host replication repuser 0.0.0.0/0 md5
创建 standby 能访问 Master 的用户 replication_role (在psql中):
su - postgres
psql
CREATE USER repuser replication LOGIN CONNECTION LIMIT 5 ENCRYPTED PASSWORD '123456';
\q
exit
重启pgsql
service postgresql-9.4 restart
3、然后做一次基础备份(后面的standby主要使用data目录下文件):
su - postgres
psql
postgres=# SELECT pg_start_backup('bak20150324');
[root@CentosTwo pgsql]# service postgresql-9.4 stop
[root@CentosTwo pgsql]# mv /home/pgsql/data /home/pgsql/data_bak
上面的两行代码是在CentosTwo服务器上操作,即备份服务器
[root@CentosOne ~]# rsync -a /home/pgsql/data root@192.168.1.109:/home/pgsql/ --exclude postmaster.pid
也可以将data目录打包,上传备份服务器,不过需要注意权限设置!
postgres=# SELECT pg_stop_backup();
二、从数据库配置
1、把主数据库备份的打包文件覆盖standby的data目录:
mkdir -p /home/pgsql/archive
chmod -R 0700 /home/pgsql/archive
chown -R postgres.postgres /home/pgsql/archive
查找recovery.conf.sample
find / -name recovery.conf.sample
/usr/pgsql-9.4/share/recovery.conf.sample
2、编辑postgresql.conf
vim /home/pgsql/data/postgresql.conf
设置hot_standby为
hot_standby= on
3、然后编辑 recovery.conf:
cd /home/pgsql
cp /usr/pgsql-9.4/share/recovery.conf.sample data/recovery.conf
vim data/recovery.conf
restore_command = 'cp /home/pgsql/archive/%f %p'
standby_mode = on
primary_conninfo = 'host=192.168.1.108 port=5432 user=repuser password=123456'
trigger_file = '/home/pgsql/trigger_active.5432'
cp data_bak/postgresql.conf data/postgresql.conf
cp data_bak/pg_hba.conf data/pg_hba.conf
更改权限
chmod 0600 data/recovery.conf
chown postgres.postgres data/recovery.conf
4、移动pg_xlog下的所有文件到/storage0/database/postgres/archive目录下
mv /home/pgsql/data/pg_xlog/* /home/pgsql/archive/
5、启动Standby节点,完成Replication。
service postgresql-9.4 start
至此完成配置,可以在主(CentosOne)中增加实验数据,查看备(CentosTwo),是否实时变化了。
标签: #centos70postgresql