《PolarDB for PostgreSQL源码与应用实战》——PolarDB-PostgreSQL开源核心Feature介绍(1) https://developer.aliyun.com/article/1232762?groupCode=polardbforpg
(二)三种部署方式
下面再介绍一下部署,包含三种方式。
第一种是一键式的部署,为了便于用户使用,用户只要调用OneKey.sh脚本就可以完成部署,它会默认地在单机上生成一个有三副本的一套环境,但前提是需要安装系统的一些配置。
第二种是Docker部署,有很多Docker的使用者,可以用Docker的命令来生成这一套,这种环境在Docker里面生成。另外,它也是使用默认的三副本的环境。
如果大家想自定义安装,安装一个不是三副本的,比方说安装流复制或者安装不同的机器,就可以用第三种方式。下面我们分别介绍一下这几种方式的使用。
(三)环境依赖设置
首先是安装整个OS系统依赖包相关的一些配置,这里面包含依赖的软件包的安装,另外需要安装系统的环境变量,要为系统增加互信,互信增加了之后,在某个节点执行命令之后,因为这两个机器建立了互信,所以不需要再输入密码了,这样便于进行后面的一些操作。
这个过程我们也可以做一个简单的演示依赖。
首先可以看一下这个命令,刚才的点了之后它会让我们输入ROOT密码,因为这些包已经都安装完成了,之后可以看一下
我们环境变量的配置。
看到这个环境变量的文件,其实我已经把信息加进来了,要改的主要就是PASS和LIBRARY PASS相关的这两个路径要设
置上来,便于它在敲命令的时候,自动到我们的安装目录下去找这个程序,否则可能找不到。
上面有其他的路径,比方说这套系统里面有多套PG环境,可以通过这种方式来切换环境,这里面的用户名大家可以换成自己的用户名。
接下来我们看一下运行的互信命令,它会把你的Key拷贝过来,这样多个机器上就可以建立互信。
在建立互信时,本机的IP也要输入一下,来建立互信,这样才能全都打通。另外因为现在这个已经安装过一次,执行过命
令了,所以这里面提示已经安装过了,否则会跟大家一样显示“执行成功”。
互信相关的配置完成以后,系统的环境就部署完了,之后就可以调用我们的脚本了。
(四)一键式部署
1、一键式部署
$ ./onekey.sh all
2、系统状态检查
查看已安装的PolarDB进程:
$ ps -ef|grep polardb
查看复制状态:
$ psql -p 10001 -d postgres -c "select * from pg_stat_replication;"
查看Paxos角色及状态:
$ psql -p 10001 -d postgres -c "select * from polar_dma_cluster_status;"
3、一键式部署原理
一键式脚本使用说明: Usage: onekey.sh [all|build|configure|deploy|setup|dependencies|cm|clean]
4、环境清理(会删除数据,慎用)
onekey脚本可以在这个界面来看一下。
onekey在程序的顶层目录下,首先我们去执行这个脚本,加一个参数‘all’,就是一键式把所有的信息都装上。首先可以看
到,它其实是做了一个编译的过程,所以如果你要调用onekey,其实前面编译都是不用关心的,它会自动实现。
这里简单介绍一下onekey脚本的工作原理,其实很简单,它里面包含了很多个跟安装部署有关的步骤,这个all相当于就是所有步骤的一个集合,如果大家对整个集群相关的一些命令不是很了解的话,也可以通过这个文件去查看它的用法。
首先路径我们是指定了刚才的安装路径,就是PolarDB下面的PolarDB home目录,这个目录就相当于是我们编辑以后程序会安装到这里。在这里我们首先会去调用它的build命令来进行编译,编译好以后就创建了一个目录用来存我们的配置文件,之后调用pg_ctl底下提供了一个命令,有一个prepare的参数会生成各种各样的配置模板,standalone就是单机的模板。我们现在生成的单机模板具有三个副本,它会把模板生成到这个文件里,所以等下可以打开这个文件,看一下它参数的使用情况。
下面的这些步骤分别使用了它的模板来进行部署,部署相当于把刚才编译好的程序安装到各个机器上,因为你可能有多台
机器,‘all’是会把它部署到各个机器上,之后就会把这个系统的环境进行一个clean,它其实是一个相对比较危险的动作,会删除数据,所以大家在用之前需要小心一点。
这个init相当于就是调用init DB来创建整个数据库,并且启动整个集群。之后是Deploy,相当于可以deploy all也可以deploy cm,cm就是我们的经营管理。最后我们调用了一个monitor,查看一下集群的部署是否成功,它的状态怎样。执行完后,相当于刚才就调用了这样的一条命令,onekey.all做的事情刚才已经讲了,先编译之后进行初始化,初始化的时候创建了DB,之后创建了它需要的一些扩展,并且server也启动起来了。
从monitor看,目前这三个节点也都已经启动起来。可以认为这个环境是执行成功的,接下来我们看一下进程。
可以看到这几个进程都是存在的,第一个是dn.master,相当于主节点的进程,下面这个是它的备节点,再下面是它的第二个备节点。可以看到这几个节点都是启动的,包括它们内部的一些程序都是存在的,之后我们调用一条命令。
这条命令主要是调用psql连接到数据库‘_c’执行一条命令,查看一下我们集群的状态。
《PolarDB for PostgreSQL源码与应用实战》——PolarDB-PostgreSQL开源核心Feature介绍(3) https://developer.aliyun.com/article/1232755?groupCode=polardbforpg
$ ./onekey.sh clean