【TBase开源版测评】体验安装
本次我们参考官方教程(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集群的机器的最低配置之类的。
- PHP定时执行任务
- 【前端开发系列】—— CSS3属性选择器总结
- 【设计模式】—— 原型模式Prototype
- 【设计模式】—— 创建者模式Builder
- 【设计模式】——抽象工厂Abstract Factory
- 【前端开发系列】—— 别说你不会Ajax
- 【前端开发系列】—— 通过鼠标浮动改变样式
- 【设计模式】—— 观察者模式Observer
- 【设计模式】—— 备忘录模式Memento
- 【设计模式】—— 中介者模式Mediator
- 【设计模式】—— 迭代模式Iterator
- 【设计模式】—— 解释器模式Interpret
- 【设计模式】—— 命令模式Commond
- 【设计模式】—— 职责链模式ChainOfResponsibility
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- LeetCode86|只出现一次的数字II
- LeetCode85|只出现一次的数字III
- LeetCode84|只出现一次的数字
- LeetCode83|排序矩阵查找
- LeetCode82|翻转字符串里的单词
- LeetCode81|移动零
- LeetCode80|反转字符串中的元音字母
- LeetCode79|平方数之和
- LeetCode91|寻找重复数
- LeetCode90|两个数组的交集
- LeetCode89|在排序数组中查找数字I
- LeetCode88|两数之和IV-输入BST
- LeetCode98|判定字符是否唯一
- LeetCode97|合并两个有序链表
- LeetCode99|数组中出现次数超过一半的数字