cd cantian-connector-mysql
wget https://github.com/mysql/mysql-server/archive/refs/tags/mysql-8.0.26.tar.gz --no-check-certificate
tar -zxf mysql-8.0.26.tar.gz
<SwitchA>system-view
[~SwitchA]vlan 20
[*SwitchA]interface Eth-Trunk 21
[*SwitchA-Eth-Trunk21]port link-type trunk
[*SwitchA-Eth-Trunk21]port trunk allow-pass vlan 20
[*SwitchA-Eth-Trunk21]mode lacp-dynamic
[*SwitchA-Eth-Trunk21]trunkport 10GE 1/0/2
[*SwitchA-Eth-Trunk21]trunkport 10GE 2/0/2
[*SwitchA-Eth-Trunk21]commit
[~SwitchA-Eth-Trunk21]quit
[~SwitchA]quit
<SwitchA>save
Warning: The current configuration will be written to the device. Continue? [Y/N]:y
Now saving the current configuration to the slot 1 ....
Info: Save the configuration successfully.
Now saving the current configuration to the slot 2 ...........
Info: Save the configuration successfully.
<SwitchA>system-view
[~SwitchA]vlan 77
[*SwitchA]interface Eth-Trunk 30
[*SwitchA-Eth-Trunk30]port link-type trunk
[*SwitchA-Eth-Trunk30]port trunk allow-pass vlan 77
[*SwitchA-Eth-Trunk30]mode lacp-static
[*SwitchA-Eth-Trunk30]trunkport 10GE 1/0/5
[*SwitchA-Eth-Trunk30]trunkport 10GE 2/0/5
[*SwitchA-Eth-Trunk30]commit
[~SwitchA-Eth-Trunk30]quit
[~SwitchA]quit
<SwitchA>save
Warning: The current configuration will be written to the device. Continue? [Y/N]:y
Now saving the current configuration to the slot 1 ....
Info: Save the configuration successfully.
Now saving the current configuration to the slot 2 ...........
Info: Save the configuration successfully.
<SwitchA>system-view
[~SwitchA]vlan 77
[*SwitchA]interface Eth-Trunk 31
[*SwitchA-Eth-Trunk31]port link-type trunk
[*SwitchA-Eth-Trunk31]port trunk allow-pass vlan 77
[*SwitchA-Eth-Trunk31]mode lacp-dynamic
[*SwitchA-Eth-Trunk31]trunkport 10GE 1/0/1
[*SwitchA-Eth-Trunk31]trunkport 10GE 2/0/1
[*SwitchA-Eth-Trunk31]commit
[~SwitchA-Eth-Trunk31]quit
[~SwitchA]quit
<SwitchA>save
Warning: The current configuration will be written to the device. Continue? [Y/N]:y
Now saving the current configuration to the slot 1 ....
Info: Save the configuration successfully.
Now saving the current configuration to the slot 2 ...........
Info: Save the configuration successfully.
nmcli connection reload
nmcli connection up bond-绑定网口
nmcli connection up bond-slave-端口1
nmcli connection up bond-slave-端口2
nmcli connection up 绑定网口.VLAN
例如:
[root@host ~]# nmcli connection reload
[root@host ~]# nmcli connection up bond-storage_bond
[root@host ~]# nmcli connection up bond-slave-eth15
[root@host ~]# nmcli connection up bond-slave-eth16
[root@host ~]# nmcli connection up storage_bond.77
nmcli connection reload
nmcli connection up bond-绑定网口
nmcli connection up bond-slave-端口1
nmcli connection up bond-slave-端口2
nmcli connection up 绑定网口.VLAN
例如:
[root@host ~]# nmcli connection reload
[root@host ~]# nmcli connection up bond-bussiness_bond
[root@host ~]# nmcli connection up bond-slave-eth11
[root@host ~]# nmcli connection up bond-slave-eth13
[root@host ~]# nmcli connection up bussiness_bond.10
systemctl status cantian.timer
[root@host ~]# systemctl status cantian.timer
cantian.timer - Run every 5s and on boot
Loaded: loaded (/etc/systemd/system/cantian.timer; enabled; vendor preset: disabled)
Active: active (waiting) since Mon 2024-02-05 05:45:34 EST; 20h ago
Trigger: Tue 2024-02-06 02:43:37 EST; 3s left
执行以下命令,查看Cantian引擎的日志监控任务是否完成启动。
systemctl status cantian_logs_handler.timer
若“Active”的回显内容为“active”,表示日志监控任务启动完成。例如:
[root@host ~]# systemctl status cantian_logs_handler.timer
cantian_logs_handler.timer - Run every 60minutes and on boot
Loaded: loaded (/etc/systemd/system/cantian_logs_handler.timer; enabled; vendor preset: disabled)
Active: active (waiting) since Mon 2024-02-05 05:45:35 EST; 20h ago
Trigger: Tue 2024-02-06 02:45:45 EST; 1min 42s left
cd /home/regress/CantianKernel/build
sh Makefile.sh mysql
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/regress/cantian-connector-mysql/bld_debug/library_output_directory
rm -rf /home/regress/mydata/*
cd /home/regress/CantianKernel/build
sh Makefile.sh mysql
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/regress/cantian-connector-mysql/bld_debug/library_output_directory
# node0
cd /home/regress/CantianKernel/build
sh Makefile.sh mysql_package_node0
# node1
cd /home/regress/CantianKernel/build
sh Makefile.sh mysql_package_node1
Cantian Storage Engine
数据存储加速引擎
一、工程说明
编程语言:C
编译工程:cmake或make,建议使用cmake
目录说明:
二、编译指导
2.1 概述
本文档介绍如何对Cantian引擎源码进行编译,生成Cantian引擎软件包。图1说明了Cantian引擎的编译流程。 如需在计算云进行开发者验证调试,请参考第四章
图 1 Cantian引擎编译流程

2.2 准备编译环境
硬件要求
主机数量:1台
推荐主机硬件规格:
ARM架构的主机编译后生成Cantian引擎ARM类型的软件包,X86架构的主机编译后生成Cantian引擎X86类型的软件包
操作系统要求
Cantian引擎支持的操作系统(Linux 64-bit)如下,建议Cantian引擎的编译操作系统与运行操作系统一致:
软件要求
Cantian引擎编译过程所依赖的软件如表1 环境构建依赖所示。
表 1 软件依赖
2.3 版本编译
2.3.1 下载源码
本节介绍如何下载Cantian引擎源码以及其他依赖源码。
前提条件
已在主机正确安装并配置Git软件。
操作步骤
使用root用户登录主机。
创建并进入源码下载目录。
此处以将源码下载到目录“/ctdb/cantian_compile”为例进行说明,您可根据实际环境进行替换。
执行以下命令下载Cantian引擎源码。
执行以下命令下载Cantian-Connector-MySQL源码,用于编译Cantian引擎对接MySQL的插件。
进入Cantian-Connector-MySQL源码目录,执行以下命令下载MySQL-8.0.26版本源码,用于编译Cantian引擎对接MySQL的插件。
2.3.2 标题
mv mysql-server-mysql-8.0.26 mysql-source ```
2.3.3 准备容器镜像
Cantian引擎仅支持在容器内编译,本节介绍两种准备容器镜像的方法:①通过Cantian-Connector-MySQL源码中的Dockerfile文件自行构建容器镜像;②通过Docker Hub直接获取容器镜像。如果执行编译的主机无法连接网络,则可选择第一种方式,否则两种方式任选其一。
容器镜像依赖软件介绍
如果用户自行制作容器镜像,镜像中需包含表1中的依赖软件。
表 1 容器镜像依赖软件软件
前提条件
使用Dockerfile构建镜像
介绍如何使用Dockerfile构建编译容器镜像。
使用root用户登录主机。
执行以下命令进入Dockerfile文件所在目录。
其中,“_code_dir_”为源码下载到的目录。
如,以源码下载到“/ctdb/cantian_compile”为例,执行以下命令:
构建容器镜像。
当前主机环境为x86时,执行以下命令:
当前主机环境为arm时,执行以下命令:
构建完成后,执行以下命令查看容器镜像。
“cantian_dev“即为构建的容器镜像。
回显类似如下:
通过Docker Hub获取镜像
介绍如何通过Docker Hub获取编译容器镜像。
使用root用户登录主机。
从Docker Hub获取编译容器镜像。
设置镜像标签。
执行以下命令查看容器镜像。
“cantian_dev“即为从Docker Hub获取的容器镜像,如图所示。
回显类似如下:
2.3.4 编译源码
本节介绍如何在容器环境编译Cantian引擎源码,并生成Cantian引擎软件包。Cantian-Connector作为Cantian引擎运行的必要组件,会在Cantian引擎的自动化编译脚本中一同编译,并打包进Cantian引擎软件包。
编译脚本介绍
build_cantian.sh是编译过程中的入口脚本,其集成了软件编译和打包的功能。以sh build_cantian.sh [option]执⾏,[option]参数说明如表1所示。
表 1 编译脚本参数说明
前提条件
操作步骤
启动容器。
Cantian引擎源码提供了容器的启动和初始化脚本container.sh,该脚本可以自动化准备编译Cantian引擎所需的环境设置,推荐使用该脚本启动编译容器。
使用root用户登录主机。
执行以下命令进入container.sh所在目录。
其中,“_code_dir_”为源码下载到的目录。
如,以源码下载到“/ctdb/cantian_compile”为例,执行以下命令:
执行脚本,启动并进入编译容器。
进入编译脚本目录。
执行编译脚本,生成Cantian引擎软件包。
其中,“_option_”为表1中的参数选项,指定编译realase或debug版本的软件包。
进入编译目标目录,获取Cantian引擎软件包。
回显类似如下表示编译成功:
编译生成的Cantian引擎软件包名如下,请以实际生成的包名为准:
三、安装与卸载Cantian引擎
3.1 安装前规划
安装Cantian引擎前,请先完成软件和硬件的准备、以及相关的网络和存储规划。
3.1.1 组网规划
介绍Cantian引擎规划的原则、硬件的基本配置和软件要求,以及存储设备所需配置的文件系统。
规划原则
规划时,应确保为Cantian引擎规划了如下两个网络平面:
图 1 逻辑组网图

硬件&软件准备
请在规划时,准备好安装Cantian引擎的硬件基本配置和软件包。
表 1 硬件基本配置表
对于X86服务器/ARM服务器,推荐使用如下型号或者不低于如下型号性能CPU的服务器:
ARM:Kunpeng 920-4826/Kunpeng 920-6426
X86:Intel Xeon Gold 6248/Intel Xeon Gold 6348/Intel Xeon Gold 5218/Intel Xeon Gold 6230R
对于X86服务器,若选择其他型号的CPU,请通过以下命令确认该CPU是否支持constant_tsc特性,避免因CPU不支持constant_tsc特性导致数据库服务器的时间精度无法保证。
表 2 软件配置表
对于ARM的“openEuler 2203 sp1”,请登录OpenEuler网站,选择“AArch64”架构和“服务器”场景,下载软件包类型为“Offline Standard ISO”的软件包。
文件系统规划
安装Cantian引擎时,需要使用存储设备的4个文件系统,请为各个文件系统做好相关的容量规划。
表 3 文件系统分配表
3.1.2 规划样例
在有条件的情况下,建议采取交换机冗余连接的组网方式,提升网络的可靠性。同时,设备也支持直接连接的方式进行组网。
3.1.2.1 规划样例(交换机组网)
本节以通过交换机实现冗余连接的组网方式为样例进行介绍,实际规划时请根据需要进行调整。
组网规划
通过使用双交换机、组成不同环路的方式形成冗余连接,同时使用10GE端口组成Cantian引擎心跳网络和NAS共享网络。
图 1 组网规划

硬件准备
组网中使用的硬件设备,应具有足够数目的10GE端口用于完成组网。
表 1 硬件配置表
服务器地址规划
对服务器地址的规划,包含业务网络、Cantian引擎心跳网络和NAS共享网络的地址规划。
业务网络:用作向数据库服务器提供业务,该网络的地址规划如表2所示。
表 2 业务网络地址规划
Cantian引擎心跳网络:用作部署Cantian引擎的数据库服务器间通信,该网络的地址规划如表3所示。
表 3 Cantian引擎心跳网络地址规划
NAS共享网络:用作共享存储NAS共享,该网络的地址规划如表4所示。
表 4 NAS共享网络地址规划
存储NAS共享网络地址规划
表 5 存储NAS共享网络地址规划
3.1.2.2 规划样例(直连组网)
在未部署交换机的情况下,可通过不同设备间的直接连接进行组网。
组网规划
在服务器与服务器之间、服务器与存储设备之间,通过连接各个设备的以太端口组成Cantian引擎心跳网络和NAS共享网络。
图 1 组网规划

硬件准备
组网中使用的硬件设备,应具有足够的端口数目用于完成组网。
表 1 硬件配置表
服务器地址规划
对服务器地址的规划,包含业务网络、Cantian引擎心跳网络和NAS共享网络的地址规划。
业务网络:用作向数据库服务器提供业务,该网络的地址规划如表2所示。
表 2 业务网络地址规划
Cantian引擎心跳网络:用作部署Cantian引擎的数据库服务器间通信,该网络的地址规划如表3所示。
表 3 Cantian引擎心跳网络地址规划
NAS共享网络:用作共享存储NAS共享,该网络的地址规划如表4所示。
表 4 NAS共享网络地址规划
存储NAS共享网络地址规划
表 5 存储NAS共享网络地址规划
3.2 安装Cantian引擎
请根据实际的硬件情况和网络规划进行网络配置,并安装Cantian引擎软件。
3.2.1 配置10GE交换机
若规划了交换机,请根据规划,将业务网络和Cantian引擎心跳网络、以及NAS共享网络接入10GE交换机,此处以规划样例(交换机组网)为例、使用CE6857交换机进行配置介绍。
前提条件
配置前,需确保使用的端口无其他配置,您可以使用clear configuration interface命令来一键式清除接口下的配置。
为与业务网络和Cantian引擎心跳网络连接的交换机端口配置动态LACP模式
此处以“10GE 1/0/2”和“10GE 2/0/2”两个端口为例:
配置Trunk21和动态LACP模式,将两个端口的VLAN配置为20并加入Trunk21。完成后,保存配置信息。
为与NAS共享网络连接的交换机端口配置静态/动态LACP模式
对端为存储设备,配置与存储设备相连的交换机端口的静态LACP模式
此处以“10GE 1/0/8”和“10GE 2/0/8”两个端口为例:
配置Trunk30和静态LACP模式,并将Trunk30端口的VLAN配置为77。
对端为数据库服务器,配置与数据库服务器相连的交换机端口的动态LACP模式。
此处以“10GE 1/0/6”和“10GE 2/0/6”两个端口为例:
配置Trunk31和静态LACP模式,并将Trunk31端口的VLAN配置为77。
3.2.2 配置服务器网络
安装Cantian引擎前,请在数据库服务器上对用于业务网络和Cantian引擎心跳网络、以及NAS共享网络的端口进行配置。
配置服务器网络(交换机组网)
本章节中涉及的交换机、服务器配置,以及使用的VLAN、IP地址等参数的数值均来自规划样例(交换机组网)中规划的数据,仅作为样例进行展示。实际配置时,请根据实际的硬件配置和网络规划为准。
配置用于NAS共享网络的端口
每台数据库服务器NAS共享网络使用2个10Gb端口,2个端口进行接口模块内组Bond,并采用Bond4模式。
操作步骤
登录数据库服务器。
依次执行以下命令,创建绑定口。
以绑定网口名为“storage_bond”的eth15端口和eth16端口为例:
修改Bond口配置文件“ifcfg-bond-绑定网口”(例如:ifcfg-bond-storage_bond),配置文件所在目录/etc/sysconfig/network-scripts/。
请对如下参数进行修改,其他参数保持不变:
在/etc/sysconfig/network-scripts/目录下,新建VLAN配置文件ifcfg-bond-绑定网口.VLAN,其中,“绑定网口”和“VLAN”为NAS共享网络使用的绑定网口名和VLAN,例如:ifcfg-bond-storage_bond.77。
依次执行以下命令,重启网络服务。
例如:
完成重启后,请对存储IP地址进行Ping操作,可以Ping通即配置成功。
配置用于业务网络和Cantian引擎心跳网络的端口
数据库服务器业务网络和Cantian引擎心跳网络使用10Gb端口,建议在接口模块之间组Bond,并采用Bond4模式。
操作步骤
登录数据库服务器。
依次执行以下命令,创建绑定口。
以绑定网口名为“bussiness_bond”的eth11端口和eth13端口为例:
修改Bond口配置文件“ifcfg-bond-绑定网口”(例如:ifcfg-bond-bussiness_bond),配置文件所在目录/etc/sysconfig/network-scripts/。
请对如下参数进行修改,其他参数保持不变:
在/etc/sysconfig/network-scripts/目录下,新建VLAN配置文ifcfg-bond-绑定网口.VLAN,其中,“绑定网口”和“VLAN”为端口规划的绑定网口名和VLAN,例如:ifcfg-bond-bussiness_bond.10。
依次执行以下命令,重启网络服务,对其他配置完成的同平面IP进行Ping,可以Ping通即配置成功。
例如:
完成重启后,请对其他配置完成的同平面IP地址进行Ping操作,可以Ping通即配置成功。
配置服务器网络(直连组网)
配置用于NAS共享网络的端口
操作步骤
登录数据库服务器。
在/etc/sysconfig/network-scripts/目录下,修改已存在的VLAN配置文件“ifcfg-端口名”,其中,“端口名”为NAS共享网络使用的物理网口名,例如:ifcfg-eth13。
请对如下参数进行修改:
其他参数保持不变。
依次执行以下命令,重启网络服务。
例如:
完成重启后,请对存储IP地址进行Ping操作,可以Ping通即配置成功。
配置用于业务网络和Cantian引擎心跳网络的端口
操作步骤
登录数据库服务器。
在/etc/sysconfig/network-scripts/目录下,修改已存在的VLAN配置文件“ifcfg-端口名”,其中,“端口名”为业务网络或Cantian引擎心跳网络使用的物理网口名,例如:ifcfg-eth11。
请对如下参数进行修改:
其他参数保持不变。
依次执行以下命令,重启网络服务。
例如:
完成重启后,请对其他配置完成的同平面IP地址进行Ping操作,可以Ping通即配置成功。
3.2.3 配置存储网络
在部署Cantian引擎前,您还需在存储设备上进行如下的配置:
3.2.4 部署Cantian引擎
前提条件
在Cantian引擎部署到数据库服务器前,请确保各个数据库服务器的时间一致,否则在数据库服务器故障、cms进程故障、网络故障时,时间偏大的数据库服务器会被自动移出集群。
已准备好CRT证书和CA证书。
服务器上未创建目录“/dev/shm”,或服务器上已存在目录“/dev/shm”且用户具有该目录及文件的drwxrwxrwt权限:
若存在目录“/dev/shm”,进入该目录并执行以下命令,查看用户是否拥有drwxrwxrwt权限。
回显样例如下:
若用户没有drwxrwxrwt权限,请执行以下命令修改用户目录权限:
python的依赖库pyopenssl和cryptography已存在:
执行以下命令,确认python的依赖库pyopenssl和cryptography是否存在。
若回显显示“Package(s) not found:”,表示对应的依赖库不存在。
例如,当pyopenssl依赖库不存在,回显如下:
若缺少依赖库pyopenssl或cryptography,请执行以下命令分别进行安装:
操作步骤
登录第一台数据库服务器。
通过执行以下命令,创建新的用户和组,以ctdba:ctdba为例。建议为用于安装Cantian引擎的各个数据库服务器设置相同的用户和组。
执行以下命令,设置数据库服务器的hostname。
其中,“name”为设置的数据库服务器hostname。
执行以下命令,上传Cantian引擎安装包并解压。
其中,“path”为安装包的上传路径,“Installation Package”为编译指导中编译生成的软件包。
此处以软件包名称为“Cantian_24.06_x86_64_RELEASE.tgz”、将包放到目录“/ctdb/cantian_install”为例进行说明。最终的参数配置以编译指导中编译生成的软件包和实际的安装路径为准。
修改配置文件config_params_file.json,相关参数如表1所示。
配置文件的所在路径与4中Cantian引擎安装包的存放路径相关,以安装包的存放路径是“/ctdb/cantian_install”为例:该文件的所在路径为:/ctdb/cantian_install/cantian_connector/action/config_params_file.json。
表 1 config_params_file.json文件参数说明
执行以下命令,进行Cantian引擎的安装:
若是首次安装Cantian引擎、或上次是通过override方式卸载了Cantian引擎,请执行以下命令进行安装:
其中,“path”为4中安装包的上传路径,以该路径是“/ctdb/cantian_install”为例:
根据回显的提示,依次输入:
脚本运行完成后,最后回显“install success”即安装成功。
若上次是通过reserve方式卸载了Cantian引擎,请执行以下命令进行安装:
其中,“path”为4中安装包的上传路径,以该路径是“/ctdb/cantian_install”为例:
脚本运行完成后,最后回显“install success”即安装成功。
登录另一台数据库服务器,重复执行2~6,在另一台数据库服务器上安装Cantian引擎。
两台数据库服务器均完成Cantian引擎的安装后,别在两台数据库服务上执行以下命令启动Cantian引擎。
您可以通过以下步骤查询相关启动任务是否完成、集群状态是否正常,判断Cantian引擎是否启动成功:
执行以下命令,查看Cantian引擎的系统定时任务是否完成启动。
若“Active”的回显内容为“active”,表示系统定时任务启动完成。例如:
执行以下命令,查看Cantian引擎的日志监控任务是否完成启动。
若“Active”的回显内容为“active”,表示日志监控任务启动完成。例如:
依次执行以下命令,切换为cantian用户后,查看Cantian引擎的集群状态是否正常。
回显中,若集群里两台数据库服务器的“STAT”值为“ONLINE”、“WORK_STAT”值为“1”、“ROLE”值为“REFORMER”,表示集群状态正常。例如:
3.3 卸载Cantian引擎
系统支持通过override方式或reserve方式卸载Cantian引擎。卸载时,请在两台数据库服务器上使用相同的方式对Cantian引擎进行卸载。
3.3.1 通过override方式卸载Cantian引擎
若无需对数据库服务器的数据进行备份,请通过override方式卸载Cantian引擎。
注意事项
操作步骤
登录数据库服务器。
执行以下命令,停止数据库服务器上运行的Cantian引擎。
登录另一台数据库服务器,重复执行2,停止另一台数据库服务器上运行的Cantian引擎。
依次在两台数据库服务器上执行以下命令,卸载数据库服务器上安装的Cantian引擎。
(可选)若卸载失败,请执行下列命令进行强制卸载。
若依然无法卸载,请联系技术工程师。
3.3.2 通过reserve方式卸载Cantian引擎
若需对数据库服务器的数据进行备份,请通过reserve方式卸载Cantian引擎。
操作步骤
登录数据库服务器。
执行以下命令,对数据库服务器的数据进行备份。
执行以下数据,停止数据库服务器上运行的Cantian引擎。
登录另一台数据库服务器,重复执行2和3,停止另一台数据库服务器上运行的Cantian引擎。
依次在两台数据库服务器上执行以下命令,卸载数据库服务器上安装的Cantian引擎。
若无法卸载,请联系技术工程师。
四、对接MySQL
4.1 安装MySQL
请安装与Cantian引擎匹配的8.0.26版本的MySQL。
4.2 加载插件依赖库
Cantian引擎支持通过物理方式和容器方式加载插件依赖库。
4.2.1 通过物理方式加载插件依赖库
本章节介绍在数据库服务器上如何通过直接加载或启动MySQL进程的方式加载插件依赖库。
前提条件
将如下的文件分别拷贝到插件路径下。
拷贝完成后,请确保对上述文件的读写权限、与对插件目录下原有的其他文件的读写权限相同。
在数据库服务器的MySQL安装目录下,获取libmysqlclient.so.21文件的所在路径,并将该文件拷贝至插件路径下。若libmysqlclient.so.21不存在,请安装对应操作系统的相关MySQL软件包。
操作步骤
登录第一台数据库服务器。
进入目录“/dev/shm”,执行以下命令,确认用户拥有该目录及文件的rw(读写)权限。
回显样例如下:
加载插件ctc.so的依赖库。
方法一:打开MySQL客户端,依次执行以下命令,直接加载插件ctc.so的依赖库。
方法二:通过启动MySQL进程、加载插件ctc.so的依赖库。
执行以下命令,初始化MySQL。
参数说明:
例如:
执行以下命令,启动MySQL。
参数说明:
例如:
登录另一台数据库服务器,重复执行2和3,为另一台数据库服务器加载插件ha_ctc.so的依赖库。
五、健康巡检
通过脚本对Cantian引擎执行健康巡检,以便了解Cantian引擎各模块的运行状态。
前提条件
Cantian引擎已正确安装且正常运行。
背景信息
巡检Cantian引擎
以SSH方式(如PuTTY),依次登录所有Cantian引擎节点。
执行以下命令切换至cantian帐号。
依次在所有Cantian引擎节点执行以下命令进行巡检:
全量巡检:
部分巡检:
图 1 查看巡检项

根据回显提示,输入ctsql用户名、密码。
执行结果,回显类似如下。
查看巡检结果。
巡检完成后,巡检结果将保存在目录“/opt/cantian/action/inspections_log”下,以“inspection_时间戳”命名,并且只保存最近9次的巡检结果文件。
巡检MySQL(仅容器部署MySQL场景支持)
依次进入所有部署MySQL的容器,执行以下巡检命令。
全量巡检:
部分巡检:
图 2 查看巡检项

查看巡检结果。
巡检完成后,巡检结果将保存在目录“/mf_connector/inspection/inspections_log”下,以“inspection__时间戳_”命名。并且只保存最近9次的巡检结果文件。
巡检结果查询如下:
六、Cantian云主机开发编译部署
6.1 环境准备
6.1.1 下载最新docker镜像
x86版本
ARM版本
6.1.2 下载cantian源码
1.执行以下命令下载Cantian引擎源码。
2.执行以下命令下载Cantian-Connector-MySQL源码,用于编译Cantian引擎对接MySQL的插件。
3.执行以下命令,下载MySQL-8.0.26版本源码,用于编译Cantian引擎对接MySQL的插件,并将源码拷贝到cantian-connector-mysql/mysql-source目录下。
4.创建与cantian、cantian-connector-mysql同级的cantian_data目录用于存放相关数据。
6.1.3 启动容器
进入cantian目录,启动容器。
container.sh按
startnode
和dev
参数启动时会执行代码拷贝的操作,具体操作参考脚本中sync_mysql_code
函数6.2 Cantian编译部署
6.2.1 cantian编包
以下命令在容器内使用。若为双节点,则只需在其中一个节点执行一次。为方便描述,后续双节点仅需在一个节点的操作默认在node0进行
6.2.2 cantian部署
配置core_pattern(在两个节点上配置,用于记录core file)
单节点部署Cantian
双节点部署Cantian
node0
node1
验证cantian状态是否正常
6.2.3 卸载cantian
需要使用gaussdba用户执行卸载命令 如果存在与cantiand相连的mysqld进程,执行以下指令,先停止mysqld进程再停止cantiand:
卸载指令:
如果出现报错,部分目录无法删除,则可以使用root用户手动清理相关目录
6.3 mysql编译部署
6.3.1 mysql编译
6.3.1.1 元数据归一
元数据归一需要应用patch,修改源码
编译: 双节点部署时,如果使用手动部署,则两个节点需要分别执行编译。若使用脚本部署,只需在一个节点编译即可
特别地,若在node0完成cantian的编译,在node1编译mysql前需要先执行以下命令
6.3.1.2 非归一
双节点部署时,非归一版本只需要在其中一个节点编译mysql即可
6.3.2 mysql部署
6.3.2.1 元数据归一(手动拉起)
初始化: 双节点仅需在其中一个节点执行初始化命令,且在初始化前,需保证
/home/regress/mydata
下没有文件需先执行部署: 双节点在初始化后分别执行部署命令。若在node0完成初始化,则node1需先执行以下命令
部署命令为:
6.3.2.2 元数据归一/非归一(脚本)
双节点拉起前需分别执行以下命令
以下为使用
install.py
脚本拉起的命令6.3.2.3 拉起检验
6.4 日志和gdb调试
参天日志位置:
mysql日志位置:
双节点下,gdb attach进程前需要同步心跳