搭建一主两备单机集群。
这里搭建的单机集群是一主两备,一个同步,一个异步。以下示例总共使用3台主机,分布如下:
主机 | 节点 |
10.20.16.227 | 主节点 |
10.20.16.228 | 同步备节点 |
10.20.16.214 | 异步备节点 |
搭建主库
步骤一:按照前面"单机版安装"章节的步骤,搭建单机主库。
步骤二:为了后续搭建备库,需要修改主库的配置。
这里主库的数据目录是/data/shan2/data/,请根据实际来修改。
- 在hba中添加replication访问认证:
cat >> /data/shan2/data/pg_hba.conf << EOF
host all all 0.0.0.0/0 trust
host replication all 0.0.0.0/0 trust
EOF
- 修改主库postgres.conf文件:
cat >> /data/shan2/data/postgresql.conf << EOF
listen_addresses = '*'
wal_level = replica
hot_standby = on
EOF
步骤三:重启主库,使上面的修改生效。如果主库未启动,则启动。
pg_ctl restart -D /data/shan2/data
启动完成后,尝试用psql(AntDB-S的命令行客户端程序)登录数据库,查看是否启动成功。
psql -p 55551 -d postgres
搭建备库
步骤一:安装RPM包,参考单机版安装步骤,与主库安装步骤相同。
步骤二:配置环境变量,参考单机版的步骤,与主库配置步骤相同。
步骤三:在备库所在的主机运行:
pg_basebackup -D 实际的数据目录 -Fp -R -Xs -v -P -h 主库ip -p 主库端口 -U antdbs
举例:
备机在10.20.16.228上,则登录到此主机上,执行以下命令:
pg_basebackup -D /data/shan2/data -Fp -R -Xs -v -P -h 10.10.16.227 -p 55551 -U antdbs
- -p:主节点的端口号
- -h:主节点的IP地址
- -D:备节点的数据目录
(如果报错:error: could not connect to server: No route to host 那检查1.配置文件,2.防火墙是否清空规则和已经关闭)
步骤四:启动备机,启动方式和主节点相同。
pg_ctl start -D /data/shan2/data
步骤五:查看主备流复制是否建立成功:
psql到主库上,执行查询,能看到刚才搭建的备机‘state’为streaming,如果为down或者查询为空,则说明搭建失败,请检查搭建步骤:
select * from pg_stat_replication;
通过上面的步骤,可以搭建多个备库。
修改同异步状态
默认的主备流复制是异步状态。如果想要流复制改为同步,则还需要修改一些参数。
步骤一:修改备库postgresql.auto.conf文件,在primary_conninfo中增加application_name。
例如,指定application_name=ds1:
primary_conninfo = 'application_name=ds1 user=shan2 passfile=''/data/shan2/.pgpass'' host=10.20.16.227 port=40571 sslmode=prefer sslcompression=0 gssencmode=disable krbsrvname=postgres target_session_attrs=any'
primary_slot_name = 'ds1'
步骤二:修改主库synchronous_standby_names名称,为上面的application_name。
synchronous_standby_names = '1 (ds1)'
最后,重启主库和备库,然后登录到主库上,查看流复制状态。
如下,就是搭建了2个备库,一主一备的情况:
postgres=# select application_name , state, sync_state from pg_stat_replication;
application_name | state | sync_state
------------------+-----------+------------
ds2 | streaming | async
ds1 | streaming | sync
(2 rows)
创建replicator用户
登录到主库上,创建replicator用户:
psql –h主库ip -p 主库端口号 –c " create role replicator with login replication password 'antdbs'"
例如:
psql -h 10.19.32.121 -p 55551 -d postgres -c"create role replicator with login replication password 'antdbs'"
关闭SELINUX
修改/etc/selinux/config文件,设置状态为disabled。
例如,使用如下命令,替换enforcing为disabled:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
或者
sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/selinux/config
检查SELINUX是否关闭
/usr/sbin/sestatus –v # 预期结果为: SELinux status: disabled
关于AntDB数据库
AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。




