1 概述
浪潮信息KOS是浪潮信息基于Linux Kernel、OpenAnolis等开源技术自主研发的一款服务器操作系统,支持x86、ARM等主流架构处理器,性能和稳定性居于行业领先地位,具备成熟的 CentOS 迁移和替换能力,可满足云计算、大数据、分布式存储、人工智能、边缘计算等应用场景需求。
TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。https://cn.pingcap.com/product/
2 安装准备
2.1 操作环境
操作系统版本:KOS 5.8 (4.18.0-372.41.1.kos5.x86_64)
测试架构:x86_64,4个12核4G虚拟机
2.2 软件版本
TiDB v5.1.0
TiUP v1.13.0
3 部署本地测试集群
可以利用单台机器环境快速部署 TiDB 测试集群,体验 TiDB 集群的基本架构。
3.1 本地部署测试
在终端中执行下面的命令可以下载安装TiUP
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
脚本会自动下载并配置环境。应用环境变量:
source .bash_profile
TiDB运行依赖libnsl,需要额外安装libnsl:
dnf install libnsl
使用tiup playground可以指定TiDB版本和组件个数。
tiup playground v5.1.0 --db 1 --pd 2 --kv 3 --monitor
可以看到TiDB playground 集群已经启动,可以开始访问。需要注意,以这种方式执行的playground,在结束部署测试后 TiUP 会清理掉原集群数据。
3.2 访问TiDB数据库
安装mysql客户端以访问数据库:
dnf install mysql
安装后可以按照提示使用mysql访问TiDB数据库:
mysql --comments --host 127.0.0.1 --port 4000 -u root
查看数据库:show databases;
查看数据库中的表:show tables from mysql;
创建数据库samp_db:create database if not exists samp_db;
4 部署标准集群
4.1 数据库集群准备
本文参考TiDB手册中的TiFlash部署拓扑进行安排。文档中的基础需求为3个TiDB实例,3个PD实例,3个TiKV实例,1个TiFlash实例,1个Monitoring & Grafana实例。一台机器上可以部署多个实例。
为了测试部署标准集群,这里一共创建了4个一样的虚拟机:1个机器(192.168.122.62)部署TiFlash和Monitoring & Grafana,另外3个机器(39,93,224)每个上面均部署1个TiDB实例、1个PD实例和1个TiKV实例。
为了满足集群需求,在4个机器中均安装sshpass和numactl。
dnf install -y sshpass numactl
为了方便测试,需要将4个机器的防火墙禁用
systemctl stop firewalld
systemctl disable firewalld
4.2 安装TiUP组件
在终端中执行下面的命令可以下载安装TiUP
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
脚本会自动下载并配置环境。应用环境变量:
source .bash_profile
安装cluster组件
tiup cluster
安装完成后可以看到命令提示:
4.3 安装TiDB集群
可以通过TiUP创建集群初始化配置文件:
tiup cluster template > topology.yaml
请根据不同的集群拓扑,编辑 TiUP 所需的集群初始化配置文件。这里根据4.1中的拓扑配置修改了yaml文件中的实例类型和host地址。
修改好配置文件后可以使用check命令进行风险检查和修复,-p参数会提示输入机器的SSH密码:
tiup cluster check ./topology.yaml --user root -p
tiup cluster check ./topology.yaml --apply --user root -p
检查后的结果如下所示,需要一一分析排查。其中os-version可以忽略。
确认集群环境没有问题后,可以使用deploy命令进行集群部署:
tiup cluster deploy tidb-kos v5.1.0 ./topology.yaml --user root -p
可以看到集群tidb-kos部署成功,可以开始启动集群:
tiup cluster start tidb-kos --init
可以看到集群启动成功。执行集群初次启动后会生成数据库密码,后续访问数据库需要使用该密码。
可以使用tiup cluster查看集群的信息和状态:
tiup cluster list
tiup cluster display tidb-kos
4.4 访问TiDB数据库集群
使用mysql客户端访问TiDB,其中ip地址可以选择部署了tidb实例中的任意一个。在访问时需要使用-p,输入数据库密码才可以访问。
mysql -u root -h 192.168.122.39 -P 4000 -p
在数据库中查看TiDB版本
select tibd_version()\G
查看 TiKV状态、存储情况以及启动时间
select STORE_ID,ADDRESS,STORE_STATE,STORE_STATE_NAME,CAPACITY,AVAILABLE,UPTIME from INFORMATION_SCHEMA.TIKV_STORE_STATUS;
创建数据库、创建表、插入数据、查询数据:
create database pingcap;
use pingcap;
CREATE TABLE `tab_tidb` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL DEFAULT '',
`age` int(11) NOT NULL DEFAULT 0,
`version` varchar(20) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `idx_age` (`age`)
);
insert into `tab_tidb` values (1,'TiDB',5,'TiDB-v5.1.0');
select * from tab_tidb