- 关于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 的基本信息正确。