GaussDB_on_kylinV10SP3_单节点安装过程

济南小老虎 / 2024-02-21 / 原文

GaussDB_on_kylinV10SP3_单节点安装过程


背景

OpenGauss的搭建和部署非常简单
但是GaussDB的就比较复杂.

我理解openGauss的简单版本应该就是PG内核直接使用
但是GaussDB的版本应该是更换了存储殷勤,所以部署起来比较复杂.

自己的理解可能不正确.

注意本次只是进行: 单节点中心化的GaussDB的安装与部署.
不进行分布式的创建, 主要是进行兼容性的验证. 

关于介质获取

我这里是同事给了部分资料,比较简单.
GaussDB的获取好像比较麻烦 需要企业邮箱等. 

同事给的资料主要如下:
GaussDB_X86_Kylinv10_Centralized.zip
GaussDBInstaller.zip

需要注意 TPOPS 应该使用与管理的,单纯功能兼容性验证可以不安装

前置处理

useradd omm 
passwd omm
ssh-keygen
ssh-copy-id root@ip
ssh-copy-id omm@ip
# 建议设置上 免密登录比较省事.

systemctl stop firewalld && systemctl disable firewalld
修改参数
vim /etc/security/limits.conf
增加如下内容: 
*    hard nproc 1000000
*    hard nofile 1000000
*    soft nproc 1000000
*    soft nofile 1000000
mkdir /data

关于操作系统兼容性

一开始想试用UOS1060E 进行安装
想着 1060E 是UOS基于 OpenEuler创建的发行版
本来以为应该没问题的
但是发现部署过程中总是出问题
同样的文件放到 银河麒麟V10SP3上面立马就成功.
真是一个很悲伤的故事. 

建议使用银河麒麟/openEuler 进行部署
避免遇到跟我一样的兼容性的问题.

另外 银河麒麟V10SP3 已经是python3.7.9了
可以满足安装需求, 如果不是这个版本可能需要升级python3.
之前有过很多文档, 这里不在复述.

关于部署过程

解压缩文件
mkdir /data
unzip GaussDBInstaller.zip -d /data

另外将
GaussDB_X86_Kylinv10_Centralized.zip 
进行解压缩, 需要注意有好几层. 需要多次解压缩
GaussDB_X86_Kylinv10_Centralized.zip 
->GaussDB_X86_Kylinv10_Centralized_2.23.01.220_20230609012225.tar.gz
->->GaussDB-Kernel_503.1.0.SPC1100.B005_Om_X86_Centralized.tar.gz
里面有:
GaussDB-Kernel_503.1.0.SPC1100_Kylin_64bit_Agent.tar.gz
GaussDB-Kernel_503.1.0.SPC1100_Kylin_64bit_Om.tar.gz

将这两个文件放到
/data/GaussDBInstaller/pkgDir/
才可以进行下一步的操作. 

配置文件处理-1

主要需要两个配置文件
第一个: /data/GaussDBInstaller/install_cluster.conf
# 注意需要修改密码 还有ip地址
# 如果密码不正确 建议进行 ssh互信处理.
# 注意两个配置文件IP地址都需要修改为自己本地的
# 注意阿里云不能使用外部地址,只能使用内网地址
[COMMON]
os_user = omm
os_user_group = ${os_user}
os_user_home = /home/${os_user}
os_user_passwd = Testxxxxxxxx
root_passwd = Testxxxxxxxx
ssh_port = 22
node_ip_list = 172.24.110.194

[OMAGENT]
gauss_home = /data/cluster
om_agent_port = 30170
mgr_net = eth0
data_net = eth0
virtual_net = eth0
log_dir = ${gauss_home}/logs/gaussdb
cn_dir = ${gauss_home}/data/cn
gtm_dir = ${gauss_home}/data/gtm
cm_dir = ${gauss_home}/data/cm
tmp_dir = ${gauss_home}/temp
data_dir = ${gauss_home}/data/dn
tool_dir = ${gauss_home}/tools
etcd_dir = ${gauss_home}/data/etcd


配置文件处理-2

第二个:  /data/GaussDBInstaller/install_cluster.json
{
    "rdsAdminUser": "rdsAdmin",        #管理员账号
    "rdsAdminPasswd": "Testxxxxxxxx",
    "rdsMetricUser": "metricUser",
    "rdsMetricPasswd": "Testxxxxxxxx",
    "rdsReplUser": "repUser",
    "rdsReplPasswd": "Testxxxxxxxx",
    "rdsBackupUser": "backupUser",
    "rdsBackupPasswd": "Testxxxxxxxx",
    "dbPort":"30100",                #DB端口
    "dbUser": "root",                #给用户分配的最高权限账户
    "dbUserPasswd": "Testxxxxxxxx",
    "clusterMode": "ha",
    "params": {
        "enable_thread_pool": "off"
    },
    "cnParams": {},
    "dnParams": {},
    "cmParams": {},
    "clusterConf": {
        "clusterName": "GSCloud",
                "gtmFree": 1,
                "encoding": "utf8",
                "shardingNum": 1,
                "replicaNum": 1,
                "solution": "hws",
                "shards": [
                        [{
                        "rack": "KylinServerV10SP1",
                        "az": "AZ1",
                        "ip": "172.24.110.194",
            "dataIp": "172.24.110.194",
            "virtualIp":"172.24.110.194"
                        }
                ]],
                "cm": [
                        {
                        "rack": "KylinServerV10SP1",
                        "az": "AZ1",
                        "ip": "172.24.110.194",
            "dataIp": "172.24.110.194",
            "virtualIp":"172.24.110.194"
                        }
                ]
    }
}

一个命令安装

cd /data/GaussDBInstaller
python3 gaussdb_install.py --action main

一个命令就可以完成安装

参数修改

可以使用 omm 账户进行修改
su - omm

gs_guc reload -Z datanode -I all -N all -c "session_timeout=36000"
gs_guc reload -Z datanode -I all -N all -h "host all all 10.0.0.0/8 sha256"

登录数据库:
gsql -d postgres -p 30100 -U root -W Testxxxxxxxx 

crontab错误修改方式

Exception: [GAUSS-61101] : Failed to do crontab

一般的处理方式为:
echo "omm" >> /etc/cron.allow