《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL 基础入门(4) https://developer.aliyun.com/article/1232837?groupCode=polardbforpg
集群配置
接下来介绍集群相关的一些配置。
1、公共配置
2、DN配置
3、分布式扩展、及其他CN、GTM配置,多DN配置
集群配置里包含几个部分,第一个部分是公共配置,这里比较重要的是安装路径是怎样的,另外Standalone控制单机版还是集群版,包括备份目录的设置,还有角色的设置。
还有一些DN相关,包括DN的公共部分,DN主备,可以看到跟主相关的都是Master,备相关的都是slave参数,包括IP地址、端口、同步状态,还有相关路径,包括数据路径、日志路径、开发日志等。第三个节点名字叫learner,但是这个learner就是第二个备,它有可能配置成follower,也可能配成learner。
另外就是我们为了分布式,扩展了CN和GTM相关的一些配置,另外多个CN的配置,当然如果有集群,我们一套机器里面可能有多个CN,也可能有更多的DN,这种情况下该如何配置。
简单来看一下配置文件。
这个配置文件是生成的配置文件在这个目录下了。先看一下默认单机的模板,可以看到它的公共的部分,跟datanode相
关的几个节点的路径,刚才那几个进程显示的路径在这个位置。之后它的Master相关的一些IP地址的配置,slave相关的
一些地址的配置,learned的一些配置。还有比方说我们配置好以后,每个DN节点,其实类似于一个PG节点的角色,PG
内部也要配置很多参数,所以我们可以简单追加一些对于PG的设置,比方说内存使用多大,或者连接数,这些配置都可
以在这里进行配置。包括hba还有配置文件,我们可以使用自己的配置文件来进行配置,在这里面进行一个设置。这个就
是单机版的情况。
下面看一下集群版,虽然现在还不支持集群版,但是它的配置基本上如图所示,可以看到有很多东西比较类似,属于公共的部分。
但是这里面会用到GTM相关的一些东西,还有coord这些是我们没有开源的部分。
里配置的是三个datanode,可以看到写法是这样的,用空格把它们隔开,三个datanote的名字、部署的机器、IP地
址、分别的端口都在上面。
这套三个DN都是的Master配置,之后我们还需要配置对应的这三个Masters的slave的配置,就是它的备机。可以看到备
机也是三个,前两个配了,我不想让第三个有备机,所以我就设置成None,这样的话可以看到它有多个DN的情况下的一
些配置,其他跟单机配置是类似的。
以上就是集群相关参数配置的讲解。
运维管理
1、启动所有节点
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf start all
2、停止所有节点
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf stop all
3、部署集群及集群管理
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf deploy all
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf deploy cm
4、集群初始化
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf init all
5、集群状态检查
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf monitor all
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf monitor datanode datanode_1
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf healthcheck all
6、节点 failover
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf failover datanode datanode_1
7、查看节点配置
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf log var all
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf log var datanodeNames
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf show configuration all
8、集群清理
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf clean all
运维管理包括系统启动,用stop all或者start all来进行启动和停止。
另外就是部署,刚才已经简单提到了,包括init初始化集群,包括查看它的相关状态,查看状态可以通过指定某一个DN来
查看。目前只有一个DN,现在inti all就可以了,一个DN的三副本都可以查看到。以后有多个DN或者有CN的场景,我们可以在这个地方指定,只查看某一个时间点,前面这些start命令也都是这种情况,可以指定只启动或停止一个DN节点,包括failover的命令,也都是可以单独指定某个节点。
还有查看系统的参数配置,PG的参数配置等操作,下面简单演示一下。
这里面先看一下它的Monitor,所有节点的状态会打印出来,这里面datanode1已经打印出来。
还可以看到它的一些集群的配置参数,包括CN和GTM其实都是空着的。这里包括它的一些log参数,还有一些其它的配置
信息。
这就是所有跟配置和运维相关的命令。
获取帮助
最后介绍一下,如果大家在使用PolarDB的时候出现了某些问题,如何来获取帮助。
集群配置文件说明 – 基本参数说明
如上所示,主要有三种途径。
第一种,在Readme文档里面有各个架构文档,还有其他文档的导航,大家可以去这些文档查看帮助。
第二种,可以在我们的网站上提一些Issues,另外也可以查看一些别人的发起的问题,并且这里面有回复,具有一定的借鉴意义。
第三种,扫码钉钉群,目前我们钉钉群里已经有将近五千个PG爱好者,也包含阿里内部很多技术专家,所以如果大家这
个在里面提问,很快就会得到回复,这也是很好的学习途径。
现在我们看一下网站画面。
其实在Code的主页里显示的就是Readme的信息了,这里面可以看到Reamme的基本介绍,包括导航安装,可以导航到
架构里面去。
如果没有上文刚才提到的部署相关的东西,在这里边也可以看到,在Docker情况下我们怎么部署;怎么去部署几个系统环境的三个准备;怎么调用一键式的命令;怎么去查看我们的这个系统部署是否是成功了;最后在这种源码部署的场景下,怎么去修改配置,怎么产生配置,怎么去启动,这些运维的命令也都在里边。
后面有架构相关的一些文档,包括Roadmap,包括其它相关技术点的介绍。除此之外,刚才演示的Issues这边可以看到
大量的issue,这里很多大家原先出现的问题已经得到了解决,从这里也可以获取一些帮助。