最近有个 OpenTenBase开源核心贡献挑战赛 领导建议大家都去试试,我也去凑了下热闹,发现能力有限一时半会是搞不明白了,最多也就是能搞搞文档翻译,或者写点操作手册啥的。
不过不管怎么样,先把开发环境搭上,得空也能玩一下。
啥是OpenTenBase
想了解的可以直接上官方源码地址去看看。
一句话就是,腾讯基于Postgres-XL(基于PostgreSQL)开发的分布式数据库系统。
开整
没有独立的Linux机器可用,经常要玩玩游戏,也不可能把小本本换成Linux,所以计划使用虚拟机开发。
- 宿主系统 :WIN11 家庭版
- 虚拟机:VirtualBox 7.0
- 虚拟操作系统:CentOS-7-x86_64-Minimal-2009
- 内存大于4G
- IDE: Eclipse IDE for C/C++ Developers 2023-12
- 终端工具:MobaXterm v23.2
CentOS上安装基础包
yum groupinstall "X Window System"
yum -y install gcc make readline-devel zlib-devel openssl-devel uuid-devel bison flex
yum -y install gdb git java-1.8.0-openjdk.x86_64
关于X环境,执行xclock能弹出一个小闹钟就可以了。
新建开发账号
这里我用的是opentenbase
#开发账号
useradd opentenbase
#开发目录
mkdir -p /data/opentenbase
chown -R opentenbase.opentenbase /data/opentenbase
下载源码
建议把官方代码以fork到自己的仓库里然后下载自己仓库的代码,这样以后修改了可以直接向自己的库里提交。
cd /data/opentenbase
git clone https://github.com/OpenTenBase/OpenTenBase.git
下载Eclipse
wget https://mirrors.nju.edu.cn/eclipse//technology/epp/downloads/release/2023-12/R/eclipse-cpp-2023-12-R-linux-gtk-x86_64.tar.gz
tar xzvf eclipse-cpp-2023-12-R-linux-gtk-x86_64.tar.gz
导入工程
# 配置环境变量,可以把环境变量添加取.bash_profile中
export SOURCECODE_PATH=/data/opentenbase/OpenTenBase
export INSTALL_PATH=/data/opentenbase/install
# 生成Makefile
cd $SOURCECODE_PATH
./configure --prefix=${INSTALL_PATH}/opentenbase_bin_v2.0 --enable-user-switch --with-openssl --with-ossp-uuid CFLAGS=-g --enable-depend --enable-cassert --enable-debug
#编译生成
make clean
make -sj
make install
chmod +x contrib/pgxc_ctl/make_signature
cd contrib
make -sj
make install
# 运行eclipse
cd /data/opentenbase/eclipse
./eclipse
设置workspace
调试
调试前要先用之前生成的程序部署一套数据库环境,只在本机部署即可,不同节点用端口区分即可。部署文档请参考官方github,以后有时间出一个详细文档。
确认调试进程号
登录数据库通过pg_stat_activity表查pid,或通过 select pg_backend_pid(); 查询
绑定调试进程