当前位置: 首页 > 工具软件 > InfiniDB > 使用案例 >

Infinidb 使用笔记1

姚阳德
2023-12-01
最近在研究 Infinidb,记录之。

安装

安装方式很多,可以选择从源码直接编译安装, 源码的下载路径在:
https://github.com/infinidb
里面有infinidb 和 mysql 两个目录,可以只下 infinidb.
具体的安装说明在
https://github.com/infinidb/infinidb的 README.md中有。

需要注意的是
1. 源码编译的过程非常的久,我机器上差不多快1小时。
2. 编译过程中可能碰到如下错误:
      libtool CDPATH: command not found
原因是 automake的 文件可能使用旧版本的 libtool生成的(github上的),解决办法就是重新生成一下就好:
依次执行:
cd mysql
automake --add-missing
aclocal
autoreconf
libtoolize
然后就可以  ./configure --prefix=...

3. 如果编译的使用指定了 prefix 那么编译出的可执行文件是生成在 prefix目录里的,在那里会有一个Calpont的文件夹。 但安装的时候还是需要把这个文件夹移动到  /usr/local 下,否则无法正确执行 postConfigure 进行安装。(这个限制似乎是写在代码里的。。。)

除了源码,可以使用简单的 RPM 安装。直接从社区 http://www.infinidb.org/ 上找到下载,应该有4个 RPM 包:
[root@host-10-0-32-13 ~]# rpm -qa | grep infi
infinidb-mysql-4.0.1-1.x86_64
infinidb-libs-4.0.1-1.x86_64
infinidb-storage-engine-4.0.1-1.x86_64
infinidb-platform-4.0.1-1.x86_64


配置

安装完之后就是配置,直接执行 /usr/local/Calpont/bin/postConfigure 就可以了。
具体步骤可以参看手册  CalpontInfiniDBInstallGu ide_401-1.pdf, 这里主要是列出一些需要注意的地方:

1. 安装前确保安装所涉及到的机器上没有infinidb相关的 rpm 和进程(主要是对于重新安装而言),否则可能会出现锁,或者其他奇怪的问题。
2. 如果选择 multiple 模式,需要注意 separate 和 combine 是两个完全不同的模式, separate是MPP模式,而combine的安装出来的多个PM是完全独立的。
3. 选择 multiple + separate 模式安装配置时,需要注意:一般而言本机是 PM1,所以在配置 PM1的 interface的时候要填写本机的 IP,否则安装会失败,并且出现各种奇怪的问题。
4. 安装过程中所有涉及到的机器都要安装 expect 库
5. 选择 multiple + separate 模式安装配置时,填写的 ip 必须是本机 ifconfig 里可以看到的 ip,否则MPP集群的高可靠就无法正确运行。(这主要是对于一些云平台的机器而言,如 openstack, 可以为云主机绑定一个ip对平台以外的用户提供服务,但这个 ip 在本机 ifconfig 里是看不到的。)
6. 选择 multiple + separate 模式安装配置时,如果想启用数据的高可用,那么安装过程中数据目录必须选择 external 的模式,这种模式下 infinidb会自动用 mount 和 umount 来自动挂载和卸载远程文件目录来实现高可用。
    以使用 nfs 为例, nfs的服务端配置这里略过:
    a. 首先在 nfs 服务端为每个 DBRoot 分配一个目录,如 172.16.72.100:/raid0/data/dennisd1
    b. 在每个PM的机器上配置 /etc/fstab 中添加所有 DBRoot 对于的 nfs 远程目录,如:

172.16.72.100:/raid0/data/dennisd1      /usr/local/Calpont/data1    nfs      noatime,nodiratime,auto 0 0
172.16.72.100:/raid0/data/dennisd2      /usr/local/Calpont/data2    nfs      noatime,nodiratime,auto 0 0

    c. 确保执行 postConfig之前,所有 PM 节点上 所有 DBRoot 的远程目录都被 umount 了

这样在一个 PM 出问题的时候,它所挂载的远程目录会自动挂载到别的 PM 去,这样确保数据访问的高可用。

高可靠

multiple + separate 模式下的Infinidb自动保证集群的高可靠,即无单点。
如 OAM PM 挂了, 会自动切换到它的 Hot Standby 上。(从cc的getprocessstatus中可以看出)
如 primary UM 挂了, DDL和DML process会在 Cold Standby上启动。
每次切换大约需要30s~1min。

关于Infinidb使用的后面记录吧。。。

转载请注明转自高孝鑫的博客

 类似资料: