本次我们参考官方教程(https://github.com/Tencent/TBase/wiki/1%E3%80%81TBase_Quick_Start )体验在虚拟机上安装TBaseV2。整个安装过程还是比较流畅的,对有过集群安装经验的人员来说,参考文档在安装过程中做了相应的调整还是可以完成安装的。但如果对于一个新手或是对postgresl数据库不太熟悉的人来说,安装文档还是有些地方说得不够详细的。
一、体验过程
1、前期规划
根据教程,我们计划将准备使用两台虚拟机搭建1GTM主,1GTM备,2CN主(CN主之间对等,因此无需备CN),2DN主,2DN备的集群,该集群为具备容灾能力的最小配置。机器IP规划为:
机器1:192.168.8.187 tbase187
机器2:192.168.8.188 tbase188
集群规划如下:
节点名称 | IP | 数据目录 |
---|---|---|
GTM master | 192.168.8.187 | /data/tbase/data/gtm |
GTM slave | 192.168.8.188 | /data/tbase/data/gtm |
CN1 | 192.168.8.187 | /data/tbase/data/coord |
CN2 | 192.168.8.188 | /data/tbase/data/coord |
DN1 master | 192.168.8.187 | /data/tbase/data/dn001 |
DN1 slave | 192.168.8.188 | /data/tbase/data/dn001 |
DN2 master | 192.168.8.188 | /data/tbase/data/dn002 |
DN2 slave | 192.168.8.187 | /data/tbase/data/dn002 |
2、安装centos 7 虚拟机
安装过程在此处就不再详细描述,建议大家给虚拟机的内存尽量的分配大一点(默认配置是1核1G,我改成了4核4G)。后期进行集群初始化时我就因为早期分配的内存太少,导致初始化总是无法完成。修改hostname文件,将两台机器命名为tbase187、tbase188,并在hosts添加记录
192.168.8.187 tbase187
192.168.8.188 tbase188
添加完后,hosts文件如下图:
3、根据教程添加用户tbase
mkdir /data
useradd -d /data/tbase tbase
此处因为后期有操作免密登录,创建的用户tbase最好给他添加一个密码
passwd tbased
实现集群规划中的两台机器免密登录,具体参考(https://blog.csdn.net/chenghuikai/article/details/52807074)
注:要实现的tbase用户的双机免密登录,所以在实际操作中要把用户切换到tbase,生成密钥之后需要再修改一下tbase用户下tbase目录归属和.ssh目录的权限。
4、下载源码并编译安装
如果在安装虚拟机的时候你已经将一些开发包选择安装了,那可能直接按教程进行下载源码就可以编译了,但如果你跟我一样资源有限,是选择的最小安装包,那可能在安装之前要先安装一些依赖包,或者是根据安装过程中的提示进行补充。
源码获取
cd /data/tbase
git clone https://github.com/Tencent/TBase
下载完成进行程序目录进行编译安装
由于我是最小化安装的centos 7,所以一些相关依赖没有安装,这里需要先安装依赖:
yum install gcc gcc-c++ openssl-deve uuid uuid-devel readline readline-devel flex bison zlib zlib-devel
重新进行编译。
./configure --prefix=/data/tbase/tbase_bin_v2.0 --enable-user-switch --with-openssl --with-ossp-uuid CFLAGS=-g
make clean
make && make install
在编译过程中,会有一些这样的提示,这块最好是先设置一下。以免在后期初始化集群的时候会出现问题。具体可以参考(https://cloud.tencent.com/developer/article/1435512)亲测可用。
经过一段时间的刷屏信息之后。
继续后续:
chmod +x contrib/pgxc_ctl/make_signature
cd contrib
make -sj
make install
如果看到下图,恭喜你万里长征第一步成功了
5、环境变量配置
在tbase用户下的~/.bashrc添加如下配置(集群中所有机器都需要配置)
export TBASE_HOME=/data/tbase/tbase_bin_v2.0
export PATH=$TBASE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$TBASE_HOME/lib:${LD_LIBRARY_PATH}
source ~/.bashrc
让配置起效。以上,已经配置好了所需要基础环境,可以进入到集群初始化阶段。
6、生成配置文件
su tbase
pgxc_ctl
进入pgxc_ctl配置工具
会在当前用户目录下创建一个pgxc_ctl目录,但没有配置文件,可以使用prepare config生成一个模板配置文件。然后exit退出pgxc_ctl工具。
此时在用户目录下的pgxc_ctl目录下会自动生成一个配置文件pgxc_ctl.conf,根据自己的实际需要进行相关配置调整。也可以直接使用官方教程中提供的配置文件进行调整。
7、分发二进制包
使用pgxc_ctl的命令deploy all进行二进制包的分发(此命令会对集群中的所有机器进行二进制包的分发,所以如果在集群中的机器使用这个命令,要配置本机用户的免密登录,还有一定要关掉防火墙)
8、使用init all进行集群初始化
看到下图时表示集群已经初始化完成:
使用monitor all命令来查看集群状态:
使用psql访问集群:
select * from pgxc_node;
二、体验总结
根据官方安装文档进行集群安装,其中有不少的坑对于新手来说还是有些困难的,建议官方对安装环境的最低要求有一个说明,比如安装TBase集群的机器的最低配置之类的。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。