polardb源码分析

编译并启动galaxyengine(polardb存储层)

我是搭建了一个虚拟机-centos7.6,以下搭建步骤摘录自官方文档

cmake . \ -DFORCE_INSOURCE_BUILD=ON \ -DCMAKE_BUILD_TYPE="Debug" \ -DSYSCONFDIR="/u01/mysql" \ -DCMAKE_INSTALL_PREFIX="/u01/mysql" \ -DMYSQL_DATADIR="/u01/mysql/data" \ -DWITH_BOOST="./extra/boost/boost_1_70_0.tar.gz"

1
2
make -j8
make install
  • 启动galaxyengine
1
2
3
mkdir -p /u01/my3306/{data,log,run,tmp,mysql}
/u01/mysql/bin/mysqld --defaults-file=my.cnf --initialize-insecure
/u01/mysql/bin/mysqld --defaults-file=my.cnf

注意要以非root用户执行启动

这样就启动了galaxyengine(可以认为就是启动了一个mysql, 计算层galaxysql要与一个mysql进行交互)

导入galaxysql(polardb计算层)到idea

导入polardx-rpc模块

polardb把galaxysql的rpc模块拆分出galaxyglue项目https://github.com/ApsaraDB/galaxyglue.git,所以要把galaxysql导入本地idea需要做以下操作:

1
2
3
4
5
6
7
8
# 移动rpc代码到galaxysql目录下的polardbx-rpc
mv galaxyglue galaxysql/polardbx-rpc

# 进入代码目录
cd galaxysql/

# 编译打包
mvn install -D maven.test.skip=true -D env=release

导入idea

配置信息-server.properties

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# PolarDB-X 服务端口
serverPort=8527
# PolarDB-X RPC 端口
rpcPort=9090
# MetaDB地址
metaDbAddr=192.168.1.8:4886
# MetaDB私有协议端口
metaDbXprotoPort=32886
# MetaDB用户
metaDbUser=my_polarx
metaDbName=polardbx_meta_db_polardbx
# PolarDB-X实例名
instanceId=polardbx-polardbx
metaDbPasswd=123456
initializeGms=false
dnList=192.168.1.8:4886
polarxPasswd=123456
rootPasswd=Cliu123#
galaxyXProtocol=1
dnPasswdKey=asdf1234ghjk5678
storageDbXprotoPort=32886
polarxRootUser=polardbx_root
polarxRootPasswd=123456
allowManagerLogin=1

先设置initializeGms=true运行程序,初始化完成后把initializeGms=false然后再起服务。