- 关于PTK
- 快速入门
- 使用指南
- 使用参考
- 配置文件示例
- 命令介绍
- ptk
- ptk completion
- ptk view-static-config
- ptk init-cluster
- ptk collect
- ptk rec-guc
- ptk cache
- ptk gen-ptkc
- ptk manage
- ptk demo
- ptk meta
- ptk version
- ptk self
- ptk gen-om-xml
- ptk env
- ptk gen-static-config
- ptk cluster
- ptk cluster createdb
- ptk cluster uninstall-compat-tools
- ptk cluster install-compat-tools
- ptk cluster install-mogila
- ptk cluster rename
- ptk cluster throwout
- ptk cluster takeover
- ptk cluster uninstall-cm
- ptk cluster install-cm
- ptk cluster gen-cert-files
- ptk cluster load-cm-vip
- ptk cluster del-kerberos-auth
- ptk cluster add-kerberos-auth
- ptk cluster uninstall-kerberos-server
- ptk cluster install-kerberos-server
- ptk cluster is-in-upgrade
- ptk cluster upgrade-rollback
- ptk cluster upgrade-commit
- ptk cluster upgrade
- ptk cluster demote
- ptk cluster promote
- ptk cluster refresh
- ptk cluster shell
- ptk cluster modify-comment
- ptk cluster show-config
- ptk cluster set-guc
- ptk cluster show-guc
- ptk cluster set-hba
- ptk cluster show-hba
- ptk cluster scale-out
- ptk cluster scale-in
- ptk cluster uninstall-mogha
- ptk cluster install-mogha
- ptk cluster list-plugins
- ptk cluster install-plugin
- ptk cluster inspect
- ptk cluster failover
- ptk cluster switchover
- ptk cluster build
- ptk cluster status
- ptk cluster restart
- ptk cluster stop
- ptk cluster start
- ptk uninstall
- ptk ls
- ptk install
- ptk exec
- ptk template
- ptk encrypt
- ptk checkos
- ptk download
- ptk candidate
- 故障排查
- FAQ
- 发布记录
- 社区
- 附录:YAML语法
集群缩容
通过一系列操作,在原有集群上,减少数据库节点。
目的
出于业务,成本,资源分配,风险等因素的考虑,满足用户对集群水平缩容的需求,PTK 为用户提供了一键缩容的功能。
缩容命令
ptk cluster -n <CLUSTER_NAME> scale-in [-H|--host HOST] [-i|--id ID] [--skip-clear-user] [--skip-clear-db] [--force]
缩容前后的拓扑样例
一主N备M级联
假设原集群拓扑结构为:
standby1 -- cascade_standby1, cascade_standby2
/
primary
\
standby2 -- cascade_standby3
使用缩容命令删除 standy2
后,结构变更为:
standby1 -- cascade_standby1, cascade_standby2
/ \
primary \
\
standby2 cascade_standby3
说明:此时 standby2
不在集群中,同时原 standby2
下游节点的 upstream 变更为 standby1
。
PTK 逻辑:若缩容目标节点角色为 standby
,若该节点有下游节点且还有其他 standby
节点,则会将缩容节点的所有下游节点 upstream 指向其余的 standby
节点。
一主一备一级联
假设原集群拓扑结构为:
primary -- standby -- cascade_standby
使用缩容命令删除 standy
后,结构变更为:
primary standby cascade_standby
说明:此时3个节点直接没有任何关联,均独立。
QA
集群可以扩容吗?
可以。参考扩容文档
一直执行缩容,可以将集群缩为空吗?
不可以。缩容之后,集群最少会有一个可用的数据节点。
缩容能直接缩主节点吗?
不可以。缩容后至少会有一个节点存活,该节点为主节点。
若想缩主节点所在的服务器节点,该如何处理?
可考虑使用如下步骤完成:
- 使用
switchover
命令切换主备。 - 缩容原主节点所在的节点(现备所在的节点)
对于带 CM 组件的集群,可以缩容吗?若可以,有限制吗?
可以。
限制:缩容后的集群数据库节点至少为2个节点。CM 节点至少为2个节点,因为 CM 的仲裁机制需至少保证2节点。
补充:带 CM 组件的集群缩容时,对即将缩容的目标节点,会缩容该节点上的数据库节点和 CM 节点。
--skip-clear-db 有什么用?何时应该使用它?
作用:PTK 在对目标节点缩容时,默认会杀掉该节点上的数据库进程,并清除 DB 的相关文件,重新对剩余节点重写 postgresql.conf
文件中的复制流信息。而 --skip-clear-db
的作用则是跳过清除 DB 相关文件这一步操作。
何时使用:想保留数据节点的信息时使用。
--skip-clear-user 有什么用?何时应该使用它?
作用:PTK 在对目标节点缩容时,一般情况下会删除掉该节点下的数据库用户。
何时使用:不想删除目标节点的数据库用户时使用。
--force 有什么用?何时应该使用它?
作用:可能存在的情况是待缩容节点由于特殊原因无法正常链接,在执行缩容流程时进行的一些检查不能通过,导致不能缩容就抛出错误。--force
的作用则是跳过这些检查。
何时使用:在某些节点链接不上时继续执行缩容任务。
若当前集群有 CM 组件,且安装了 VIP,缩容后会有影响吗?
无影响。PTK 针对已经安装了 VIP 的集群,在缩容后会重新刷新 CM-VIP,以保证 CM-VIP 的基本信息正确。