天天看點

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';