当前位置: 首页 > news >正文

openGauss3.10企业版单机部署(openEuler20.03 SP3)

目录.png

文章目录

  • 1、服务器准备
  • 2、操作系统环境准备
  • 3、上传、解压 openGauss3.10企业版 软件包
  • 4、执行安装程序
  • 5、安装后的一些操作
  • 6、附录:安装程序输出

1、服务器准备

  • 操作系统
    openEuler20.03 SP3,x86_64架构。

openEuler 22.03 LTS SP3 是openEuler 22.03 LTS的补丁版本,生命周期与LTS版本相同。

  • 内存
    4G

4G用于学习或者测试;生产环境根据资源情况分配,至少要8G以上。

  • 存储
    / 100G
    /gauss 200G

挂载目录 /gauss ,如果是测试,给个200G虚拟磁盘;如果是生产根据业务需求及资源情况分配。

  • CPU
    2C

2C 是测试环境的最低要求;生产环境根据资源情况分配,至少8C以上。

  • 主机名
    qdog160

主机名见文知意,符合业务要求即可。可用 hostnamectl set-hostname [主机名] 修改。

2、操作系统环境准备

  • hosts文件配置
echo "192.168.59.160 qdpg160" >> /etc/hosts
  • 创建用户组
groupadd dbgrp
useradd -g dbgrp -d /home/omm -m omm
echo Zqd@123 | passwd --stdin omm
  • 创建相关目录
cd /gauss
mkdir -p {gaussdb,archive,scripts,backup,soft}
chown -R omm:dbgrp /gauss
  • 修改内核参数
#编辑 sysctl.conf 文件
vim /etc/sysctl.conf
#将下面的参数加入 sysctl.conf 文件
vm.swappiness=1
fs.aio-max-nr=1048576
fs.file-max=6815744
net.ipv4.tcp_retries1=5
net.ipv4.tcp_syn_retries=5
net.ipv4.tcp_synack_retries=5
net.ipv4.tcp_retries2=12
net.ipv4.ip_local_port_range=26000 65535
vm.min_free_kbytes=512000
net.ipv4.tcp_fin_timeout=60
net.ipv4.tcp_sack=1
net.ipv4.tcp_timestamps=1
vm.extfrag_threshold=500
vm.overcommit_ratio=90
#加载内核参数,此操作只针对文件中的动态参数可以生效,静态参数依然需要重启系统才可生效。
sysctl -p
  • 关闭透明大页
#检查透明大页当前状态,[]内的值是always,说明是开启状态。
cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
#编辑开机自启动任务脚本文件 rc.local
vim /etc/rc.d/rc.local
#在文件末尾加入下面的shell(如果不重启服务器,直接执行如下shell,可以立即生效)
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
#给开机自启动任务脚本文件 rc.local 添加执行权限
chmod +x /etc/rc.d/rc.local
#此时再进行检查,透明大页已关闭
[root@qdpg154 ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
[root@qdpg154 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
  • 禁用RemoveIPC
#禁用RemoveIPC
sed -i '/^RemoveIPC/d' /etc/systemd/logind.conf
sed -i '/^RemoveIPC/d' /usr/lib/systemd/system/systemd-logind.service
echo "RemoveIPC=no" >> /etc/systemd/logind.conf
echo "RemoveIPC=no" >> /usr/lib/systemd/system/systemd-logind.service
#重新加载参数生效
systemctl daemon-reload
systemctl restart systemd-logind

RemoveIPC是控制 用户 完全退出操作系统时,是否自动清理其创建的IPC对象(例如共享内存段、信号量等)。如果设置为yes,则会清理,如果设置为no,则不会清理。
这本来是操作系统用于防止用户完全退出操作系统后,其残留的IPC资源继续占用系统资源,以及避免其他用户或者进程可能会访问到其残留的共享内存中的数据等问题。
但是对于数据库而言,这个参数如果设置为yes,那么当数据库用户完全退出操作系统时,数据库核心进程所使用的共享内存段就被操作系统清理了,数据库随之崩溃。

但是我检查了 openEuler20.03 的 RemoveIPC 参数,发现其默认值就是 no , 但是官方说要配置,那还是配置一下,防止意外。

  • 资源限制参数
#编辑limits.conf
vim /etc/security/limits.conf
#将下面的限制参数,加入 limits.conf 文件。
*    soft    nproc    	65535
*    hard    nproc    	65535
*    soft    nofile     65535
*    hard    nofile     65535
*    soft    stack    	65535
*    hard    stack    	65535
*    soft    memlock    65535
*    hard    memlock    65535

openGauss 的安装程序会修改资源限制参数,但是它修改的资源限制参数有些夸张,这里还是自定义。

openGauss的安装程序会自己生成环境变量,在安装完成后,记得在omm的用户的 .bashrc 环境变量文件中,删除资源限制参数;否则会出一些问题。

bashrc.png

  • 修改安全配置
#禁用 selinux
setenforce 0
sed -i 's/^SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/config
#禁用防火墙
systemctl stop firewalld
systemctl disable firewalld
  • libreadline.so 调整
    openEuler20.03 SP3 操作系统没有 libreadline.so.7,但在openGauss安装程序的第6步、第7步都需要用到libreadline.so.7。所以需要创建软链接解决兼容性问题。
#查看 openEuler20.03 SP3 的共享库
ldconfig -p | grep libreadline.so
#创建软链接
cd /usr/lib64
ln -s libreadline.so.8 libreadline.so.7

3、上传、解压 openGauss3.10企业版 软件包

上传到 /gauss/soft 目录,解压它。

tar -zxvf openGauss-3.1.0-openEuler-64bit-all.tar.gz
tar -jxvf openGauss-3.1.0-openEuler-64bit.tar.bz2 -C /gauss/gaussdb/

4、执行安装程序

进入到 openGauss-3.1.0-openEuler-64bit.tar.bz2 解压后的 simpleInstall 目录,找到 install.sh 安装脚本文件,执行它。

su - omm
cd /gauss/gaussdb/simpleInstall
./install.sh -w Omm_5228 #这里的 -w Omm_5228 是指定数据库初始化用户的密码。

安装程序在第7步时会启动数据库,可以在安装完后检查数据库状态。

#查询数据库状态
gs_ctl query -D /gauss/gaussdb/data/single_node -Z single_node
#输出如下时,说明数据库处于一个正常状态,也说明部署成功了。
[2025-08-07 21:47:33.795][9614][][gs_ctl]: gs_ctl query ,datadir is /gauss/gaussdb/data/single_nodeHA state:local_role                     : Normalstatic_connections             : 0db_state                       : Normaldetail_information             : NormalSenders info:
No informationReceiver info:
No information

安装程序的输出,因为太长太多,所以放在博客末尾供各位同学参考。

5、安装后的一些操作

openGauss 的安全策略做的很好,在刚安装完成后,只能远程登录,不能远程登录。而且初始化用户,也就是管理用户是无论怎样,都不允许远程登录。

5.1、先使用初始化用户本地登录

写到这里,对于新接触openGauss的同学,可以先思考下初始化用户是哪个?

思考 3 秒结束…

答案是 omm 用户,是我们一开始创建的omm操作系统用户;这一点在执行安装程序的输出中的第6步可以看得到。

#安装程序的输出相关 demo:
[step 6]: init datanode
The files belonging to this database system will be owned by user “omm”.
This user must also own the server process.

gsql -d postgres -p 5432 -U omm

5.2、创建普通用户,用于远程连接 openGauss

#创建用户
create user zqd with password 'Zqd_2025';
#创建数据库
create database userdb owner zqd;
#授权
grant all privileges on all tables in schema public to zqd;
grant all privileges on database userdb to zqd;
grant all privileges to zqd;

5.3、修改 listen_addresses 参数
listen_addresses 参数可以在postgresql.conf中修改,然后重启数据库;也可以在gsql命令行中修改,然后重启数据库。推荐在gsql命令行中修改。

alter system set listen_addresses='0.0.0.0';

然后,重启数据库。

gs_ctl restart -D /gauss/gaussdb/data/single_node -Z single_node

5.4、修改 pg_hba.conf 文件
在集群环境下,可以使用 gs_guc 命令修改,但是单机环境使用此命令可能会出问题;所以建议直接修改 pg_hba.conf 文件。

cd /gauss/gaussdb/data/single_node
#编辑pg_hba.conf文件
vim pg_hba.conf
#在 # IPv4 local connections: 下添加如下内容:
#TYPE  DATABASE  USER   ADDRESS           METHODhost  userdb    zqd    192.168.59.1/24   sha256

然后,重启数据库。

gs_ctl restart -D /gauss/gaussdb/data/single_node -Z single_node

此时已经可以用zqd用户进程远程登录。

远程登录.png

6、附录:安装程序输出

输出末尾,有 openGauss 的启动、停止、重启命令。

输出相关demo:
[complete successfully]: You can start or stop the database server using:
gs_ctl start|stop|restart -D $GAUSSHOME/data/single_node -Z single_node’

安装程序输出:

[omm@qdog160:/gauss/gaussdb/simpleInstall]$./install.sh -w Omm_5228
[step 1]: check parameter
[step 2]: check install env and os setting
[step 3]: change_gausshome_owner
[step 4]: set environment variables[step 6]: init datanode
The files belonging to this database system will be owned by user "omm".
This user must also own the server process.The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".creating directory /gauss/gaussdb/data/single_node ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 32MB
creating configuration files ... ok
Begin init undo subsystem meta.
[INIT UNDO] Init undo subsystem meta successfully.
creating template1 database in /gauss/gaussdb/data/single_node/base/1 ... The core dump path is an invalid directory
2025-08-07 15:45:35.083 [unknown] [unknown] localhost 139793166476160 0[0:0#0]  [BACKEND] WARNING:  macAddr is 12/701730088, sysidentifier is 797139/2368214680, randomNum is 3863615128
ok
initializing pg_authid ... ok
setting password ... ok
initializing dependencies ... ok
loading PL/pgSQL server-side language ... ok
creating system views ... ok
creating performance views ... ok
loading system objects' descriptions ... ok
creating collations ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
initialize global configure for bucketmap length ... ok
creating information schema ... ok
loading foreign-data wrapper for distfs access ... ok
loading foreign-data wrapper for log access ... ok
loading hstore extension ... ok
loading foreign-data wrapper for MOT access ... ok
loading security plugin ... ok
update system tables ... ok
creating snapshots catalog ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok
freezing database template0 ... ok
freezing database template1 ... ok
freezing database postgres ... okWARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run gs_initdb.Success. You can now start the database server of single node using:gaussdb -D /gauss/gaussdb/data/single_node --single_node
orgs_ctl start -D /gauss/gaussdb/data/single_node -Z single_node -l logfile[step 7]: start datanode
[2025-08-07 15:45:53.156][10531][][gs_ctl]: gs_ctl started,datadir is /gauss/gaussdb/data/single_node
[2025-08-07 15:45:53.196][10531][][gs_ctl]: waiting for server to start...
.0 LOG:  [Alarm Module]can not read GAUSS_WARNING_TYPE env.0 LOG:  [Alarm Module]Host Name: qdog1600 LOG:  [Alarm Module]Host IP: qdog160. Copy hostname directly in case of taking 10s to use 'gethostbyname' when /etc/hosts does not contain <HOST IP>0 LOG:  [Alarm Module]Cluster Name: dbCluster0 LOG:  [Alarm Module]Invalid data in AlarmItem file! Read alarm English name failed! line: 570 WARNING:  failed to open feature control file, please check whether it exists: FileName=gaussdb.version, Errno=2, Errmessage=No such file or directory.
0 WARNING:  failed to parse feature control file: gaussdb.version.
0 WARNING:  Failed to load the product control file, so gaussdb cannot distinguish product version.
The core dump path is an invalid directory
2025-08-07 15:45:53.280 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  when starting as multi_standby mode, we couldn't support data replicaton.
gaussdb.state does not exist, and skipt setting since it is optional.2025-08-07 15:45:53.291 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  [Alarm Module]can not read GAUSS_WARNING_TYPE env.2025-08-07 15:45:53.291 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  [Alarm Module]Host Name: qdog1602025-08-07 15:45:53.291 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  [Alarm Module]Host IP: qdog160. Copy hostname directly in case of taking 10s to use 'gethostbyname' when /etc/hosts does not contain <HOST IP>2025-08-07 15:45:53.291 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  [Alarm Module]Cluster Name: dbCluster2025-08-07 15:45:53.291 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  [Alarm Module]Invalid data in AlarmItem file! Read alarm English name failed! line: 572025-08-07 15:45:53.294 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  loaded library "security_plugin"
2025-08-07 15:45:53.295 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] WARNING:  could not create any HA TCP/IP sockets
2025-08-07 15:45:53.296 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] WARNING:  could not create any HA TCP/IP sockets
2025-08-07 15:45:53.296 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] WARNING:  No explicit IP is configured for listen_addresses GUC.
2025-08-07 15:45:53.296 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  InitNuma numaNodeNum: 1 numa_distribute_mode: none inheritThreadPool: 0.
2025-08-07 15:45:53.297 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  reserved memory for backend threads is: 220 MB
2025-08-07 15:45:53.297 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  reserved memory for WAL buffers is: 128 MB
2025-08-07 15:45:53.297 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  Set max backend reserve memory is: 348 MB, max dynamic memory is: 11071 MB
2025-08-07 15:45:53.297 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  shared memory 356 Mbytes, memory context 11419 Mbytes, max process memory 12288 Mbytes
2025-08-07 15:45:53.387 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [CACHE] LOG:  set data cache  size(402653184)
2025-08-07 15:45:53.460 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [SEGMENT_PAGE] LOG:  Segment-page constants: DF_MAP_SIZE: 8156, DF_MAP_BIT_CNT: 65248, DF_MAP_GROUP_EXTENTS: 4175872, IPBLOCK_SIZE: 8168, EXTENTS_PER_IPBLOCK: 1021, IPBLOCK_GROUP_SIZE: 4090, BMT_HEADER_LEVEL0_TOTAL_PAGES: 8323072, BktMapEntryNumberPerBlock: 2038, BktMapBlockNumber: 25, BktBitMaxMapCnt: 512
2025-08-07 15:45:53.524 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  gaussdb: fsync file "/gauss/gaussdb/data/single_node/gaussdb.state.temp" success
2025-08-07 15:45:53.524 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  create gaussdb state file success: db state(STARTING_STATE), server mode(Normal), connection index(1)
2025-08-07 15:45:53.661 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  max_safe_fds = 976, usable_fds = 1000, already_open = 14
The core dump path is an invalid directory
2025-08-07 15:45:53.662 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  user configure file is not found, it will be created.
2025-08-07 15:45:53.664 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  the configure file /gauss/gaussdb/etc/gscgroup_omm.cfg doesn't exist or the size of configure file has changed. Please create it by root user!
2025-08-07 15:45:53.664 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [BACKEND] LOG:  Failed to parse cgroup config file.
2025-08-07 15:45:53.729 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [EXECUTOR] WARNING:  Failed to obtain environment value $GAUSSLOG!
2025-08-07 15:45:53.729 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [EXECUTOR] DETAIL:  N/A
2025-08-07 15:45:53.729 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [EXECUTOR] CAUSE:  Incorrect environment value.
2025-08-07 15:45:53.729 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [EXECUTOR] ACTION:  Please refer to backend log for more details.
2025-08-07 15:45:53.741 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [EXECUTOR] WARNING:  Failed to obtain environment value $GAUSSLOG!
2025-08-07 15:45:53.741 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [EXECUTOR] DETAIL:  N/A
2025-08-07 15:45:53.741 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [EXECUTOR] CAUSE:  Incorrect environment value.
2025-08-07 15:45:53.741 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [EXECUTOR] ACTION:  Please refer to backend log for more details.
2025-08-07 15:45:53.741 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [EXECUTOR] WARNING:  Failed to obtain environment value $GAUSSLOG!
2025-08-07 15:45:53.741 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [EXECUTOR] DETAIL:  N/A
2025-08-07 15:45:53.741 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [EXECUTOR] CAUSE:  Incorrect environment value.
2025-08-07 15:45:53.741 [unknown] [unknown] localhost 139938700800896 0[0:0#0]  0 [EXECUTOR] ACTION:  Please refer to backend log for more details.[2025-08-07 15:45:54.556][10531][][gs_ctl]:  done
[2025-08-07 15:45:54.556][10531][][gs_ctl]: server started (/gauss/gaussdb/data/single_node)
import sql file
Would you like to create a demo database (yes/no)? yes
Load demoDB [school,finance] success.
[complete successfully]: You can start or stop the database server using:gs_ctl start|stop|restart -D $GAUSSHOME/data/single_node -Z single_node'
http://www.dtcms.com/a/319972.html

相关文章:

  • 嵌入式学习硬件(一)ARM体系架构
  • 【数字图像处理系列笔记】Ch05:傅里叶变换与频率域滤波
  • 哈勃网络计划大规模升级卫星以创建全球蓝牙层
  • AI代码审查大文档处理技术实践
  • mysql如何实现备份某个数据库并还原备份
  • RHCA - CL260 | Day04:对象存储、存储池、用户认证
  • Mysql自定义顺序查询
  • 预约时间组件
  • 能源材料顶刊AEM:钛酸锂“双模储能”设计范式——兼得高能量与高功率密度
  • 智慧能源设备巡检准确率↑32%:陌讯多模态融合算法实战解析
  • Redis模块-RedisJson
  • Q-Learning详解:从理论到实践的全面解析
  • 数据合规——解读跨境电商隐私合规白皮书(2024)【附全文阅读】
  • React(三):脚手架、组件化、生命周期、父子组件通信、插槽、Context
  • AR技术:制造业质量控制的“智能革新”
  • 第五十三篇:LLaMA.cpp的“量化秘籍”:Q4_K_M、Q5_K_S深度解析
  • Numpy科学计算与数据分析:Numpy数组索引与切片入门
  • Linux学习记录 DNS
  • “认知裂缝边缘”地带
  • 河南萌新联赛2025第(四)场:河南大学
  • Taro 扩展 API 深度解析与实战指南
  • 考研复习-计算机组成原理-第三章-存储系统
  • 广州工艺品摆件三维扫描逆向建模抄数设计-中科米堆CASAIM
  • [三数之和]
  • [安卓按键精灵开发工具]本地数据库的初步学习
  • Day116 若依融合mqtt
  • Minio 分布式集群安装配置
  • 28 HTB Forest 机器 - 容易 (1)
  • (附源码)基于Web的物流信息管理系统
  • 解锁webpack核心技能(二):配置文件和devtool配置指南