发表人:shiwei 2023-11-10 09:12:19 最新回复: 2023-11-10 09:15:05
一、数据库部署
GeoEast V4.x系统的数据库目前采用的PG9.6,gaussdb3采用的是9.2的内核,其客户端和服务器的通讯协议差异较小。gasssdb5需要更高版本的C库,部分依赖库缺失,目前操作系统离线安装升级的方式行不通,因此采用gaussdb3进行适配。本次采用的极简单机版。
1、包下载
① 从openGauss开源社区下载对应平台的安装包。
通过https://opengauss.org/zh/download/登录openGauss开源社区,选择对应平台的极简版安装包。
② 检查安装包。
解压安装包,检查安装目录及文件是否齐全。在安装包所在目录执行以下命令:
tar -jxf openGauss-3.1.1-CentOS-64bit.tar.bz2
2、服务器配置
① 修改/etc/selinux/config文件中的“SELINUX”值为“disabled”。
a.使用VIM打开config文件。
vim /etc/selinux/config
b. 修改“SELINUX”的值“disabled”。
SELINUX=disabled
② 重新启动操作系统。
reboot
③ 检查防火墙是否关闭。
systemctl status firewalld
a.若防火墙状态显示为active (running),则表示防火墙未关闭,
b.若防火墙状态显示为inactive (dead),则无需再关闭防火墙。
systemctl disable firewalld.service
systemctl stop firewalld.service
④ 设置字符集参数
a.将各数据库节点的字符集设置为相同的字符集,可以在/etc/profile文件中添加“export LANG=XXX”(XXX为Unicode编码)。
vim /etc/profile
b.关闭RemoveIPC
在各数据库节点上,关闭RemoveIPC。CentOS操作系统默认为关闭,可以跳过该步骤。
修改/etc/systemd/logind.conf文件中的“RemoveIPC”值为“no”。
使用VIM打开logind.conf文件。
vim /etc/systemd/logind.conf
修改“RemoveIPC”值为“no”。
RemoveIPC=no
3、添加系统用户
① 添加opengauss用户
useradd opengauss
② 添加opengauss用户密码
passwd 111111
③ 将文件夹/opt/software/openGauss赋予opengauss权限
chown -R opengauss:opengauss /opt/software/openGauss
系统内geoeast 属于gs或ge组的,opengauss系统默认会创建到gs组,这样会引起系统组的管理不一致问题,因此opengauss不能够创建gs用户
安装检查项:
4、安装
① 使用普通用户登录到openGauss包安装的主机,解压openGauss压缩包到安装目录。
tar -jxf openGauss-x.x.x-openEuler-64bit.tar.bz2 -C /opt/software/openGauss
② 假定解压包的路径为/opt/software/openGauss,进入解压后目录下的simpleInstall。
cd /opt/software/openGauss/simpleInstall
③ 执行install.sh脚本安装openGauss。
sh install.sh -w " Gauss123456 “ –p 5632 &&source ~/.bashrc
问题1:报错 limit,数据库启动不起来
.bashrc ulimit -n 1000000
ulimit -a系统下设置的是204800,修改ulimit –n 204800即可
注释:这个问题不仅仅存在与opengauss数据库的部署上,在大规模集群和高并发场景下,PG等相同内核的数据库均有这个问题,DBA在部署时候,要关注这个问题。
5、Demo创建了postgres的初始
a.Gauss节点gsql登录和操作
gsql -d postgres -p 5632
createdb postgre -p 5632
createdb ndp -p 5632
b.非guass节点psql登录
此处需要切换postgre的csh,source .cshrc才可以连接。
一、gauss服务器部署
GeoEastV4.x提供了高度集成的工具buildDB来部署数据库结构,gauss数据库具有自己的特性,部分功能无法正常执行,部分程序和脚本需要根据数据库类型进行调整。
问题1:admin1用户无法创建
用户密码必须8位三种字符。
不支持superuser,其他权限需要授权。
数据库需要修改owner。
问题2:其他节点连接gauss数据库,系统报错Forbid remote connection with trust method!
修改配置文件
Postgresql.conf
开放listen_addresses="*"Pg_hba.conf
需要调整原来的trust认证方式为md5认证方式;重启数据库
问题3:客户端无法连接服务器:
3.1 Python 数据库客户端连接采用库:
采用psycopg2-2.9.6
QencryptPasswordConnpg12编译可以通过.
3.2 采用C Libpq登录,采用pg9.6客户端即可。问题4:SQL的部分函数支持不友好。
Gauss数据库在对含有nextval()函数的SQL,执行不友好。仅exec能够获取返回的char*。
问题4会引起Builddb出错:
4.1 pg9.6服务端的扩展插件在gaussdb上无法运行,其源码编译包需要对python等库进行编译,dev包目前还未释放,定制插件编译可能消耗较多时间。需要调整服务端对路径的创建,个人建议可以采用python脚本或者shell脚本进行创建。
4.2需要调整创建tablespace;user;schema;的接口和sql脚本。
GaussSQL脚本调整:
替换TABLESPACE等关键词
替换USING INDEX等关键词
外键部分需要替换,可参考sqlite脚本,后期会添加guass_sql脚本文件夹.
可以将脚本调整为psycopg2能够直接执行的简单脚本
问题5:登录GeoEast系统报错,显示数据源,不显示数据库。
是由于用户认证失败引起的,可以强行修改连接用户。通过cpool进行连入。Geoeast认证登录cpool修改
问题6:GeoEast批量写入记录失败
GeoEast 在对bdo,bo对象批量写入数据异常,仅能写入一条记录
Bdo对象构建时候,调用sequence ,由于执行接口调用原因,返回值均为0
可以修改自增sequence 或者是调整接口。
调整代码后。能够创建成功。

采用批量导入工具,对dqzj_train数据进行了导入测试,各类型数据均能够正常加载到GeoEast系统里。
在国产数据库上进行部署和测试,对于大规模并发,AI运维等场景下,Gauss提供了一种可能性。