openGauss
开源数据库
openGauss社区官网
开源社区
oGRAC_编译安装基于本地盘的单节点环境
2025-12-01oGRAC使用入门
oGRAC_编译安装基于本地盘的单节点环境
一、编译安装
- 下载oGRAC源码:
git clone https://gitcode.com/opengauss/oGRAC.git - 安装依赖protobuf-devel:
yum install protobuf-devel - 执行如下命令编译:
cd build
sh local_install.sh compile
# 执行sh local_install.sh compile默认的安装用户名是ogracdba,如果用户不存在会自动创建,如果已存在会复用,但是复用时默认用户的家目录是/home/ogracdba,如果不是该目录,建议提前修改
# 也可以使用sh local_install.sh compile -u tester 指定其他安装用户名
# 编译过程中会自动下载依赖的三方库的源码并编译,会编译protobuf,需要提前安装protobuf-devel包,不然会提示缺少头文件
# 如果第一次编译已经编好三方库了,再次编译不想重编三方库的话,可以注释掉build/Makefile.sh中的调用func_prepare_dependency的地方,跳过三方库的下载和编译
- 执行如下命令安装:
cd build
sh local_install.sh install
- 安装完成后使用如下命令登陆:
su - ogracdba
ogsql / as sysdba -q
二、单节点本地盘性能压测指导
压测单节点本地盘性能的话,在安装的基础上主要有两个诉求:
- redo文件分盘
- 使用性能压测的默认配置参数,即集群安装时的配置参数
可以参考如下操作:
- 需要先提前创建好目录,并赋好权限
mkdir -p /usr2/ogractest/ograc_data
chown -R ogracdba:ogracdba /usr2/ogractest/
- 编译好源码后,改oGRAC/oGRAC-DATABASE-CENTOS-64bit下面的install.py 修改单节点安装时的redo文件安装到其他盘的位置(redo分盘), 添加redoPath,和sed替换redoPath的代码 修改
get_database_file函数
else:
dbDataPath = os.path.join(self.data, "data").replace('/', '\/')
redoPath = os.path.join("/usr2/cctest/cantian_data", "redo").replace('/', '\/')
self._sed_file("dbfiles2\/redo", redoPath, create_database_sql)
self._sed_file("dbfiles1", dbDataPath, create_database_sql)
self._sed_file("dbfiles2", dbDataPath, create_database_sql)
self._sed_file("dbfiles3", dbDataPath, create_database_sql)
return create_database_sql
主要是redoPath = os.path.join("/usr2/cctest/cantian_data", "redo").replace('/', '\/')和self._sed_file("dbfiles2\/redo", redoPath, create_database_sql) 两行
- 修改单节点默认安装使用的配置为集群默认安装使用的配置
修改oGRAC/oGRAC-DATABASE-CENTOS-64bit下面的funclib.py文件,把安装时的判断 else DefaultConfigValue.OGRACD_DBG_CONFIG改成 else DefaultConfigValue.OGRACD_CONFIG
# grep OGRACD_DBG_CONFIG *
funclib.py: OGRACD_DBG_CONFIG = {
funclib.py: cantiand_cfg = DefaultConfigValue.OGRACD_CONFIG if not in_container else DefaultConfigValue.OGRACD_DBG_CONFIG
funclib.py: cantiand_cfg = DefaultConfigValue.OGRACD_CONFIG if not in_container else DefaultConfigValue.OGRACD_DBG_CONFIG
funclib.py: cantiand_cfg = DefaultConfigValue.OGRACD_CONFIG if not in_container else DefaultConfigValue.OGRACD_DBG_CONFIG
修改oGRAC/oGRAC-DATABASE-CENTOS-64bit下面的funclib.py文件, 把OGRACD_CONFIG的这三行换掉
bash
"INTERCONNECT_ADDR": "", #input by user in command line parameter
"LSNR_ADDR": "", #input by user in command line parameter
"SHARED_PATH": "+vg1",
替换成:
"INTERCONNECT_ADDR": "127.0.0.1",
"LSNR_ADDR": "127.0.0.1",
"SHARED_PATH": "", #generate by installer