暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

原创 digoal 2022-01-20
359

作者

digoal

日期

2021-08-17

标签

PostgreSQL , PolarDB , 集群管理


视频回放

加入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';  
复制

PostgreSQL 许愿链接

您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.

9.9元购买3个月阿里云RDS PostgreSQL实例

PostgreSQL 解决方案集合

德哥 / digoal's github - 公益是一辈子的事.

digoal's wechat

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论