计算节点快速配置
本节将描述快速配置关系集群数据库HHDB Server的方法。本节仅介绍必要的配置功能,用于达到快速入门的目的。如果需要了解更多的配置功能,请参考管理平台文档。
在下面的例子中,将配置一个3个节点的数据分片,该分片使用名称为"test"的逻辑库,分片表名称为"customer",分片字段为"provinceid",自动分片表。
在配置HHDB Server前,请确保管理平台与计算节点已经正常启动,并且已经准备好了6个存储节点(此例子中,将以配置双主类型的数据节点为例,若只需要单库的数据节点,只需要准备3个实例即可)。
登录管理平台
在浏览器中输入管理平台的HTTP链接地址,并登录到管理平台;HTTP链接地址通常为部署管理平台的服务器IP,端口默认为3324,如http://192.168.200.89:3324/login.html。
管理平台提供了两类用户角色:超级管理员与普通用户,超级管理员默认初始用户名和密码分别为:admin,DRDS_management@2013;普通用户由超级管理员创建,默认密码为:service_hotdb@hotdb.com。
超级管理员登录后主要有"计算节点集群管理"、"用户管理"功能,管理员可以创建、编辑计算节点集群,并配置计算节点连接信息,添加管理平台用户以及为用户添加权限等。
添加计算节点集群
计算节点集群为一组具有高可用关系的计算节点服务,添加计算节点集群是为了将已经部署好的计算节点添加到管理平台进行管理,若要从头部署一套计算节点集群需要使用集群部署功能,请参考安装部署文档。
在计算节点集群管理页面点击"集群部署与配置"->添加计算节点集群,输入计算节点所在的服务器IP 服务端口、管理端口、连接管理端口的用户名、密码即可创建单计算节点,选择主备节点或多节点后可添加一组高可用的计算节点。
输入完成后,点击测试,连接成功后则可以将此计算节点集群分配给管理平台用户来配置管理。
添加管理平台用户
管理平台用户是管理、配置、监控、检测计算节点集群的用户,它有两种权限,一种为访问权限(只能查看部分页面),一种为控制权限(可编辑操作)。
管理员在创建管理平台用户时将计算节点集群分配给管理平台用户,同时分配控制权限,创建成功后,以管理平台用户登录,就可以管理、配置、监控计算节点集群了。
登录管理平台,在管理平台用户页面点击 "添加新用户" 输入用户名称,分配计算节点集群的控制权限。添加完成后,该用户登录后可以对计算节点进行管理。
创建数据库与存储节点用户
分别在6个存储节点上创建数据库与用户,登录存储节点,执行以下语句:
set session sql_log_bin=0;
//执行此语句是为了防止创建物理库和用户时同时操作了主备存储节点,如果开启gtid,然后后续又搭建复制,操作不当的情况下可能导致一定的复制中断或主从不一致的风险。
CREATE DATABASE db01 CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,PROCESS,REFERENCES,SUPER,LOCK TABLES,REPLICATION SLAVE,REPLICATION CLIENT,TRIGGER,SHOW VIEW,CREATE VIEW,CREATE ROUTINE,ALTER ROUTINE,EXECUTE,EVENT,RELOAD,CREATE TEMPORARY TABLES ON *.* TO 'hotdb_datasource'@'%' IDENTIFIED BY 'hotdb_datasource';
set session sql_log_bin=1;
注意
如果存储节点是8.0版本,授权语句需要增加XA_RECOVER_ADMIN权限。
hotdb_datasource账户是计算节点连接各个存储节点实例的唯一账户,所有添加的平台用户都是通过映射到hotdb_datasource账户来连接存储节点实例,各平台用户只作用在前端业务连接和用户访问控制。
通常在计算节点中create database创建的数据库称为"逻辑库",但是在关系集群数据库系统中称呼有所区别,一般因为其是实际保存数据的原因称为"物理库",或者称为"某个关系集群数据库"。
为了配置方便,6个存储节点上创建的数据库和用户需要保持一致。
添加逻辑库
通常在计算节点中create database创建的数据库称为"逻辑库",一个"逻辑库"可以为一个应用或一个微服务提供数据库服务。为了保持一致性,关系集群数据库系统同样通过"逻辑库"为一个应用或一个微服务提供数据库服务,但是关系集群数据库系统由多套实例组成(本例是6套),所以在HHDB Server中"逻辑库"是"全局逻辑库",即6套实例中"逻辑库"的集合,在HHDB Server中仍称为逻辑库。
逻辑库是计算节点中的虚拟数据库,用命令登录计算节点后,通过如下语句显示逻辑库列表:
show databases;
登录管理平台页面,选择"配置"->"逻辑库"->添加逻辑库,输入"test"逻辑库名称,点击"√",保存配置,逻辑库即添加成功。
赋予用户逻辑库权限
只有被赋予逻辑库权限的用户才能使用逻辑库。
登录管理平台页面,选择"配置"->"数据库用户",选择root用户,并点击"编辑"按钮。跳转到"编辑用户权限"页面,在下拉框中勾选创建好的逻辑库"test",点击"保存",权限赋予成功。
注意
管理平台安装后,系统默认创建一个平台用户root(密码DRDS_server@2013)。
添加存储节点组
添加存储节点组可以更方便地添加或修改一组具有相同参数值的存储节点。
登录关系集群数据库可视化管理平台页面,选择"配置"->"节点管理"->"存储节点组"->"添加组":
参数包括:
- 组名:输入存储节点组命名;
- 连接用户:有权限访问该物理库的用户名(上节添加的用户名);
- 连接用户密码:有权限访问该物理库的用户密码;
- 物理库名:存储节点中可引用的数据库名称,例如"db01"(3.4节添加的物理库);
- 备份用户:(选填)用于备份该物理库的用户名;
- 备份用户密码:(选填)用于备份该物理库的用户密码;
- 字符集:被连接的物理库字符集,默认utf8mb4;
- 最大连接数:物理库最大连接数,默认4200;
- 初始连接数:物理库初始连接数,默认32;
- 最大空闲连接数:物理库最大空闲连接数,默认512;
- 最小空闲连接数:物理库最小空闲连接数,默认32;
- 空闲检查周期(秒):物理库空闲检查周期,默认600。当连接长时间没有向服务器发请求的时候,定时断开这个连接,避免对数据库连接的浪费。
根据业务场景选择相同参数值设置为一个存储节点组,例如在本例中,下图中勾并输入的参数值组成一个存储节点组。
在添加节点时应用在若干个存储节点上,会自动填充组内预设的参数值;修改组内某一参数时,组内所有存储节点的该条参数被批量修改。
添加数据节点与存储节点
在本案例中,将6个存储节点分成3组(3分片),每组两个存储节点(一主一备)。上述描述对应到关系集群数据库系统为:全量数据由3个数据节点组成,每个数据节点下各有2个存储节点。我们需要在平台做如下操作:添加3个数据节点,并为这3个数据节点分别添加2个存储节点。
登录管理平台页面,选择"配置"->"节点管理"->"添加节点":
可以批量添加新的数据节点与其对应存储节点,也可以为已有的数据节点添加存储节点,此处仅介绍批量添加新的数据节点和存储节点,操作演示如下:
1.填写数据节点参数:在此例子中,需要添加数据节点个数为3个,数据节点类型为双主(也可以选择其他类型)。此例子中,存储节点组选择不使用组,你也可以在下拉菜单中选择使用上小节添加的存储节点组,以此批量添加或修改相似参数。没有特殊要求时,节点前缀、编码位数、起始编码可使用默认值。填入参数后点击【生成】。
2.根据提示信息填写存储节点配置参数。
参数包括:
- 数据节点:默认根据之前填写的参数生成,可修改;
- 存储节点类型:默认根据之前填写的参数生成,可修改;
- 存储节点组:默认根据之前填写的参数生成,可修改;
- 存储节点名称:默认勾选自动生成,也可以取消勾选后在文本框中输- 入存储节点命名,例如"ds_01";
- 主机名:输入存储节点的主机IP;
- 端口号:输入存储节点端口;
- 连接用户:有权限访问该物理库的用户名(3.4节添加的用户名);
- 连接用户密码:有权限访问该物理库的用户密码;
- 物理库名:存储节点中可引用的数据库名称,例如"db01" (3.4节添加的物理库);
- 备份用户:(选填)用于备份该物理库的用户名;
- 备份用户密码:(选填)用于备份该物理库的用户密码;
- 监听程序主机名:(选填)安装监听程序可用于解决计算节点集群模式的性能线性扩展问题。默认存储节点所在服务器的主机名;
- 监听端口:(选填)用于设置监听程序启动端口;
- 监听程序服务端口:(选填)监听程序服务端口是计算节点通过监听程序连接存储节点的端口,若一个监听程序需要监听多个存储节点,则需要为其分别填写不同的服务端口;
- 自动主从搭建:选择后,管理平台会自动根据配置信息为相应的存储节点搭建复制关系;
- 主存储节点:仅在需要搭建双主带从或多级从的复制关系时才需要填写此参数。可将当前存储节点需要搭建复制关系的主存储节点名称复制后粘贴于此。默认时为系统根据配置自动判断。
填写完参数后,点击【测试连接】验证输入无误且所有存储节点连接成功后,点击【保存并返回】,成功添加3个数据节点及其分别对应的6个存储节点。
添加分片规则
添加分片规则的目的是为表的水平拆分提供手动设置的路由方法及算法,如果希望使用自动分片方式创建表信息,则可跳过此步骤。
登录管理平台页面,选择"配置"->"分片规则"->添加分片规则。
根据业务场景,输入配置参数,包括:
- 分片规则名称:默认生成,取消勾选后可修改;
- 分片类型:包括ROUTE,RANGE,MATCH,SIMPLE_MOD,CRC32_MOD。以RANGE为例,若要了解更多分片规则可以查看更详细的功能说明文档,请参考管理平台文档;
- 设置方式:包括自动设置和手动设置,以自动设置为例。选择自动设置,管理平台根据配置参数自动计算值范围并自动划分数据节点;选择手动设置可以手动输入数据节点对应落入的值范围;
- 数据节点:选择分片的数据节点;
- 值范围:输入分片字段的全部值范围,管理平台结合选择的节点数自动计算步长。
点击【预览】查看生成结果,点击【修改】可修改值范围或数据节点,以解决数据倾斜问题。
点击【保存并返回】添加分片规则。
添加表信息
登录管理平台页面,选择"配置"->"表信息"->添加表信息
根据业务场景,选择表类型后输入配置参数,在此例子中,在水平分片表页面下,添加参数配置如下:
- 逻辑库:下拉菜单中选择上节添加的逻辑库test;
- 默认分片字段:在填写表名称时,表名称与其对应的分片字段应使用英文冒号间隔,若未填写分片字段,则取默认分片字段。所以此处填写"provinceid";
- 分片方式:在此例子中,选择自动分片,也可以选择上节添加的分片规则应用于此;
- 数据节点:选择分片的数据节点,此例子中,选择3.8节添加的数据节点;
- 请填写表名称:输入"customer",添加多表但不同分片字段时,可以输入"customer:provinceid"表示。
点击【保存】,成功添加customer自动分片表。注:该表引用的分片规则是AUTO_CRC32类型(AUTO_MOD 与 AUTO_CRC32分片类型区别可查看页面中的"方式说明")。
校验并动态加载配置信息
登录管理平台页面,对计算节点数据库用户,逻辑库,数据节点,存储节点,故障切换,分片规则,表信息,子表信息做的任何修改,都需要进行"动态加载",新的配置信息才能生效。
若计算节点未启动,将不能执行动态加载,因此需先启动计算节点。
登录管理平台页面,选择"配置"->配置校验,在页面中点击"开始校验",若没有出现配置错误的提示,则表示配置信息无误。
在页面中点击"动态加载",若页面提示"动态加载成功",则配置信息在计算节点中已经成功生效。
登录计算节点并开始使用
使用命令行,指定安装部署时的VIP地址或者计算节点IP(如果未安装VIP情况),登录到计算节点,格式如下:
mysql -u<数据库用户> -p<数据库用户对应的密码> -h<计算节点的VIP或IP> -P<计算节点对应的端口> -D<数据库库名>
部署完成后,默认的信息如下:
- 数据库用户为root;
- 数据库root用户默认的密码为:DRDS_server@2013;
- 计算节点的VIP或IP根据实际部署地址填写(以192.168.210.97为例),若在计算节点所在的服务器进行登陆,可以直接使用本地地址127.0.0.1进行登陆;
- 计算节点端口默认为3323;
- HHDB Server的数据库库名默认有hotdb。
登陆示例如下:
root> mysql -uroot -pDRDS_server@2013 -h192.168.210.97 -P3323 -Dhotdb
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 234359
Server version: 5.7.42 HHDB-14.0.0 HHDB Server
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
执行customer的建表语句:
CREATE TABLE `customer`(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(32) NOT NULL,
`telephone` VARCHAR(16) NOT NULL,
`provinceid` TINYINT UNSIGNED NOT NULL DEFAULT 0,
`province` ENUM ('Anhui','Aomen','Beijing','Chongqing','Fujian','Gansu','Guangdong','Guangxi','Guizhou','Hainan','Hebei','Heilongjiang','Henan','Hubei','Hunan','Jiangsu','Jiangxi','Jilin','Liaoning','Neimenggu','Ningxia','Qinghai','Shaanxi','Shandong','Shanghai','Shanxi','Sichuan','Taiwan','Tianjin','Xianggang','Xinjiang','Xizang','Yunnan','Zhejiang') NULL,
`city` VARCHAR(16) NULL default '',
`address` VARCHAR(64) NULL,
PRIMARY KEY(`id`),
UNIQUE KEY(`telephone`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
计算节点将在各个数据节点创建customer表。可以登录到各个存储节点上,验证customer是否已经被创建。
或在管理平台"配置"->"表信息"页面,找到上节添加的表配置,在表结构一列中点击【未创建】跳转到普通DDL页面。
输入数据库用户名密码,并选择test逻辑库后,输入建表语句,点击【执行】添加表结构。
分片表customer创建成功后,可以连接计算节点执行下面的SQL语句,操作数据:
INSERT INTO customer VALUES (21,'何重庆','13912340021',4,'Chongqing','重庆','某某街某某号');
INSERT INTO customer VALUES (22,'吕重庆','13912340022',4,'Chongqing','重庆','某某街某某号');
INSERT INTO customer VALUES (25,'孔福州','13912340025',5,'Fujian','福州','某某街某某号');
INSERT INTO customer VALUES (26,'曹兰州','13912340026',6,'Gansu','兰州','某某街某某号');
INSERT INTO customer VALUES (67,'岑南昌','13912340067',17,'Jiangxi','南昌','某某街某某号');
INSERT INTO customer VALUES (68,'薛长春','13912340068',18,'Jilin','长春','某某街某某号');
INSERT INTO customer VALUES (69,'雷沈阳','13912340069',19,'Liaoning','沈阳','某某街某某号');
INSERT INTO customer VALUES (70,'贺呼和浩特','13912340070',20,'Neimenggu','呼和浩特','某某街某某号');
INSERT INTO customer VALUES (71,'倪银川','13912340071',21,'Ningxia','银川','某某街某某号');
INSERT INTO customer VALUES (72,'汤西宁','13912340072',22,'Qinghai','西宁','某某街某某号');
INSERT INTO customer VALUES (73,'滕西安','13912340073',23,'Shaanxi','西安','某某街某某号');
INSERT INTO customer VALUES (74,'殷济南','13912340074',24,'Shandong','济南','某某街某某号');
INSERT INTO customer VALUES (93,'顾台北','13912340093',28,'Taiwan','台北','某某街某某号');
INSERT INTO customer VALUES (94,'孟天津','13912340094',29,'Tianjin','天津','某某街某某号');
INSERT INTO customer VALUES (95,'平香港','13912340095',30,'Xianggang','香港','某某街某某号');
INSERT INTO customer VALUES (96,'黄乌鲁木齐','13912340096',31,'Xinjiang','乌鲁木齐','某某街某某号');
INSERT INTO customer VALUES (99,'萧杭州','13912340099',34,'Zhejiang','杭州','某某街某某号');
INSERT INTO customer VALUES (100,'尹杭州','13912340100',34,'Zhejiang','杭州','某某街某某号');
标签:customer,存储,数据库,某某,介绍,添加,分片,hhdb,节点
From: https://www.cnblogs.com/henghuixinda/p/18567698