PolarDB for PostgreSQL 三节点开源版 集群管理

背景

视频回放

加入POLARDB社区

1、failover:

自动进行

2、switchover:

主动切主命令,在leader上执行。

alter system dma change leader to '$HOST:$PGPORT';

3、内核常用命令

3.1、查看数据库角色,其中paxos role的值2表示leader,0表示follower,3表示learner。

select current_leader, paxos_role from polar_dma_member_status;

3.2、查看集群节点信息,在leader上执行。

select * from polar_dma_cluster_status;

3.3、查看follower延迟

3.3.1、leader节点查看同步和回放延迟

select client_addr, application_name, write_lag, flush_lag, replay_lag from pg_stat_replication;

3.3.2、follower节点查看回放延迟

select pg_last_wal_replay_lsn(), pg_last_wal_receive_lsn(), pg_last_xact_replay_timestamp();

3.4、切主操作相关

3.4.1、设置选举超时时间(需要重启实例)

polar_dma_election_timeout

3.4.2、设置follower延迟选举选项(通过alter system直接修改)

polar_dma_delay_election = on 时,follower在polar_dma_delay_election_timeout时间内不主动发起选举。  
polar_dma_delay_election_timeout:延迟切主时间

3.4.3、主动切主命令,在leader上执行。

alter system dma change leader to '$HOST:$PGPORT';

3.4.4、自动发起选举命令,在follower上执行。

alter system dma FORCE CHANGE LEADER;

3.4.5、节点权重修改,在leader上执行。越大权重越高. 设置0~9之间,0就是learner没有选举权了

alter system dma CHANGE NODE '$HOST:$PGPORT' WEIGHT TO 9;

3.5、日志手动管理

alter system dma purge logs;  
alter system dma purge logs to xxx;  
alter system dma force purge logs to xxx;

3.6、在leader上执行节点删除命令,或者通过cm执行删除命令

alter system dma drop follower '$HOST:$PGPORT';

3.7、增加节点, 比较复杂.

3.7.1、OS环境配置

3.7.2、polar软件部署

3.7.3、创建从库(basebackup)

通过polar_basebackup复制数据或者copy整个data目录,建立follower节点。

polar_basebackup -h <master_ip> -p <master_port> -U replicator -D $PGDATA --polardata=$POLARDATA -X stream --progress --write-recovery-conf -v

3.7.4、初始化元数据

先配置为learner角色节点,之后再将节点加入集群。

polar-postgres -D $PGDATA/ -c polar_dma_init_meta=ON -c polar_dma_learners_info="$HOST:$PGPORT"

3.7.5、配置dma

修改$PGDATA/polar_dma.conf配置文件。修改其中的polar_dma_repl_appname参数。

polar_dma_repl_appname = 'standby_$HOST_$PGPORT' # $HOST用int32表示

如果${POLARDATA}路径与leader不通,则在$PGDATA/postgresql.conf中修改。

polar_datadir='file-dio://${POLARDATA}'

3.7.6、启动节点

和单机方式相同。第一次启动成功后,将该节点加入DMA集群;之后可直接启动。

pg_ctl -D $PGDATA/ start

3.7.7、加入集群

增加节点时,请在master节点使用cm命令

alter system dma add follower '$HOST:$PGPORT';  
alter system dma add learner '$HOST:$PGPORT';
上一篇:【Java 并发编程】线程操作原子性问题 ( 问题业务场景分析 | 使用 synchronized 解决线程原子性问题 )


下一篇:深度解读 MongoDB 最全面的增强版本 4.4 新特性