【AntDB数据库】AntDB数据库群管理MGR部署(二)

集群管理MGR部署

第八步:启动agent

有两种方式:一次启动全部agent和启动指定的主机agent。

注意:password是host表中主机user对应的linux系统密码,用于与主机通信,而非AntDB数据库的用户密码。

当密码是以数字开头时,需要加上单引号或者双引号,例如password ‘12345z’是正确的,password 12345z则会报错;如果密码不是以数字开头,则加不加引号都行。

  • 一次启动全部agent:
start agent all  password '123456';
  • 启动指定的agent,多个主机需要多次执行,例如:
start agent adb01,adb02 password '123456';
start agent adb03 password '123456';

当密码不对,启动agent失败时,报错如下:

postgres=# start agent adb01 password '123456abc';     
  hostname  | status |                description                 
------------+--------+------------------------------------------- 
 adb01      | f      | Authentication failed (username/password) 
(1 row) 

第九步:配置集群节点

Node表中添加gtmcoord、coordinator、datanode master、datanode slave等节点信息。

注意:host名称必须来自host表,端口号不要冲突,path指定的文件夹下必须为空,否则初始化将失败并报错。这种设置,是防止用户操作时,忘记当前节点下还有有用的数据信息。

添加命令:

add节点 command
添加coordinator信息 add coordinator master 名字(path = 'xxx', host='localhost1', port=xxx);
添加datanode master信息 add datanode master 名字(path = 'xxx', host='localhost1', port=xxx);
添加datanode slave信息,从节点与master不同名,所以指定的master必须存在,同异步关系通过SYNC_STATE参数设置 add datanode slave 名字 for master_name (host='localhost2', port=xxx, path='xxx', SYNC_STATE='sync');
添加gtmcoord信息,从节点必须与主节点不同名,所以指定的master必须存在,同异步关系通过SYNC_STATE参数设置 add gtmcoord master名字(host='localhost3',port=xxx, path='xxx');add gtmcoord slave名字 for maste_name(host='localhost2',port=xxx, path='xxx')

添加完成后,使用命令list node查看刚刚添加的节点信息

举例:(gtmcoord/datanode 均为一主一从)

add host adb01(port=22,protocol='ssh',adbhome='/opt/app/antdb',address="10.1.226.201",agentport=8432,user='antdb'); 
add host adb02(port=22,protocol='ssh',adbhome='/opt/app/antdb',address="10.1.226.202",agentport=8432,user='antdb'); 
add host adb03(port=22,protocol='ssh',adbhome='/opt/app/antdb',address="10.1.226.203",agentport=8432,user='antdb'); 
add coordinator master cn1(host='adb01', port=5432,path = '/home/antdb/data/cn1'); 
add coordinator master cn2(host='adb02', port=5432,path = '/home/antdb/data/cn2'); 
add datanode master dn1_1(host='adb01', port=14332,path = '/home/antdb/data/dn1_1'); 
add datanode slave dn1_2 for dn1_1 (host='db02',port=14332,path='/home/antdb/data/dn1_2'); 
add datanode master dn2_1(host='adb02', port=24332,path = '/home/antdb/data/dn2_1'); 
add datanode slave dn2_2 for dn2_1(host='adb01',port=24332,path='/home/antdb/data/dn2_2'); 
add gtmcoord master gc_1(host='adb03',port=6655, path='/home/antdb/data/gc_1'); 
add gtmcoord slave gc_2 for gc_1(host='adb02',port=6655,path='/home/antdb/data/gc_2'); 

生产环境节点部署建议:

  • 每个主机上最多一个coordinator,每个coordinator的端口保持一致。
  • 整个集群中的coordinator数量不建议超过6个。
  • 因应用也可以连接gtmcoord,所以在部署的时候,有gtmcoord的主机就不需要再部署coordinator了。
  • datanode的端口可以按照一组节点(一主多从为一组,比如dn1_x)在不同的主机上使用同一个端口。

第十步:init all 初始化集群

集群的节点都已经添加完成,此时就可以使用命令init all来初始化集群了。如下所示,可以看到init all内部的操作步骤。

postgres=# init all ; 
    operation type     | nodename | status | description  
-----------------------+----------+--------+------------- 
 init gtmcoord master  | gc_1      | t      | success 
 start gtmcoord master | gc_1      | t      | success 
 init coordinator      | cn1        | t      | success 
 init coordinator      | cn2        | t      | success 
 start coordinator     | cn1        | t      | success 
 start coordinator     | cn2        | t      | success 
 init datanode master  | dn1_1      | t      | success 
 init datanode master  | dn2_1      | t      | success 
 start datanode master | dn1_1      | t      | success 
 start datanode master | dn2_1      | t      | success 
 init gtmcoord slave   | gc_2      | t      | success 
 start gtmcoord slave  | gc_2      | t      | success 
 init datanode slave   | dn1_2      | t      | success 
 init datanode slave   | dn1_2      | t      | success 
 start datanode slave  | dn2_2      | t      | success 
 start datanode slave  | dn2_2      | t      | success 
 config coordinator    | cn1        | t      | success 
 config coordinator    | cn2        | t      | success 
(18 rows) 

如果 init all 中间出现错误,部分节点init失败,想要重新初始化,可以执行以下命令,清理环境后重新初始化。

stop all mode i; --停止所有节点
clean all; --清空节点目录
init all; --重新初始化

通过monitor all 查看集群各个节点的运行状态:

postgres=# monitor all ; 
 nodename |    nodetype           | status | description |     host     | port  | recovery  |  boot time                       |     nodezone  
----------+-----------------+--------+-------------+--------------+------------ --------+----- --------+-------------+--------------+------------ 
 cn1      | coordinator  master   | t      | running     | 10.1.226.201 |  5432 | false      | 2020-09-01 10:09:30.123+08      | local  
 cn2      | coordinator  master   | t      | running     | 10.1.226.202 |  5432 | false      | 2020-09-01 10:09:30.123+08      | local      
 dn1_1    | datanode master       | t      | running     | 10.1.226.201 | 14332 | false      | 2020-09-01 10:09:30.123+08      | local      
 dn1_2    | datanode slave        | t      | running     | 10.1.226.202 | 14332 | true       | 2020-09-01 10:09:30.123+08      | local      
 dn2_1    | datanode master       | t      | running     | 10.1.226.202 | 24332 | false      | 2020-09-01 10:09:30.123+08      | local      
 dn2_2    | datanode slave        | t      | running     | 10.1.226.201 | 24332 | true       | 2020-09-01 10:09:30.123+08      | local      
 gc_1     | gtmcoord master       | t      | running     | 10.1.226.203 |  6655 | false      | 2020-09-01 10:09:30.123+08      | local      
 gc_2     | gtmcoord slave        | t      | running     | 10.1.226.202 |  6655 | true       | 2020-09-01 10:09:30.123+08      | local      
(8 rows) 

至此,AntDB集群初始化完成!

其中:recovery 字段表示节点是否处于 recovery 状态,正常情况下,master 节点的值为 false, slave 节点的值为 true.

注意:init all会包含start all操作,仅在初始化集群的时候使用,后续如需启动集群,请使用start all命令。

可以通过psql命令登录gtmcoord master或者coord master 节点:

psql -p 5432  #登录coord 
psql -p 6655  #登录gtmcoord 

注意:应用需要连接gtmcoord或者coord,进行增删改查等操作,而非adbmgradbmgr只是用于管理集群。

AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔电信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。

你可能感兴趣的:(国产数据库,AISWare,AntDB,AntDB,java,数据库,开发语言)