一、openGauss6.0.0-RC1 版本说明
openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss 6.0.0-RC1 是openGauss 2024年3月30日发布的创新版本,版本生命周期为 0.5 年。(创新版本命名:由原方案 XX.1.0 Preview (例:5.1.0 preview),调整为现方案 XX.0.0-RCx),本次发布包含 2 个数据库服务端安装版本:企业版、轻量版,用户可根据使用场景需要下载不同版本,并基于此进行场景化验证。openGauss 6.0.0 LTS 版本将在 2024 年 9 月 30 日进行发布。
openGauss版本号采用点分位命名规则(XX.Y.0)模式,创新版在版本号后增加“-RCx”表示。其中XX.0.0表示LTS版本,Y表示补丁版本,XX.0.0-RCx表示创新版本。正常每两年发布一个LTS版本,创新版本供用户联创测试使用;LTS版本作为长期支持版本,可规模上线使用。涉及重大问题修复时,会按需发布补丁版本。
openGauss生命周期初步规划为:
LTS版本发布间隔周期2年,社区提供3年维护支持。
创新版本发布间隔周期0.5年,社区提供0.5年维护支持。
二、openGauss 6.0.0-RC1 新特性
内核能力增强
企业级特性
1、存储过程增强:支持存储过程覆盖率测试并输出html报告,同时允许创建procedure时忽略依赖关系进行创建。
2、开箱最优:提供gs_perfconfig工具辅助对openGauss进行性能调整,基于环境信息与业务信息,自动调整操作系统以及数据库参数,达到开箱性能即最优。
3、其他能力增强:支持龙芯平台编译,支持中文日志;安装易用性提升,支持一站式交互安装,并解除对root用户的依赖。
内核四高能力
1、高性能
分区表性能:在多分区表场景(大于3000分区)下,TPCC数据导入耗时下降13%,TPCC性能提升30%;分区表数据操作(查询、插入、更新、删除等)耗时下降50%。
主备复制性能:支持UWAL组件,利用RDMA的CPU卸载、内核Bypass、零拷贝优势,由远程内存直接访问网卡,将WAL记录由单边操作传输至远端备库的持久化存储设备,加速主备XLog复制;基于SCM加速日志持久化,提供append语义,大IO后拆分后多并发写入,加速IO落盘。整体性能提升大于20%。
2、高可用
支持异步备升主数据找回能力, 新增gs_retrieve工具实现对旧主未同步到异步备的数据通过逻辑解码的方式找回,满足异步备升主场景RPO≈0。
3、高智能
新增dataVec向量数据库插件,作为为专有大模型的向量数据存储和检索的底座,支持向量数据的存储、 相似度计算,支持针对向量数据建立索引(IVFFLAT),加速查询。
4、高安全
在鲲鹏服务器上,通过CPU加解密指令实现对国密SM4算法加速,性能提升约5%。
DataPod三层资源池化架构持续创新
支持SPQ多机并行查询框架
基于资源池化架构所有节点都共享集群内的资源,支持生成多机执行计划,并将计划分发到各节点执行,查询节点可汇聚各节点数据实现所有读节点并行查询,充分发挥集群的OLAP能力,使资源池化同时具备较强的TP和AP能力,满足资源池化(一主两备)场景下TPC-H&TPC-DS相比单节点SMP提升大于2.6倍。
新增DMS资源统计视图
query_all_drc_info:支持收集DMS资源池中所有的页面信息和锁信息;
get_instr_wait_event:支持收集DMS相关命令字的等待时延等信息;
query_node_reform_info_from_dms:支持收集DMS中reform流程相关的状态信息。
DSS功能增强
DSS支持NoF/NoF+协议,支持该协议的IOFence、文件读写、查询设备信息、适配CM和OM等能力,用于对接支持该协议的磁盘阵列,典型业务下相比采用SCSI3协议的TPCC性能提升10%。DSS服务端支持创建线程池;DSS支持黑匣子诊断,提高运维能力。
容灾能力增强
1、 集群内高可用:支持XLog按需回放,实时解析XLog构建页面多版本恢复链,在主机故障时备机快速对外提供服务,实现典型业务负载下RTO<10s;
2、 集群间高可用:容灾支持两种方式,基于Dorado同步复制实现主备双集群方案,适用于百公里级别的同城双中心容灾场景,支持RPO=0,典型业务负载下RTO<30s;基于流复制的主备双集群方案,可灵活部署,适用于同城或异地容灾场景。
DataKit数据全生命周期管理工具链能力增强
迁移能力
1、兼容性评估:支持从MySQL源库、文件、业务进程中解析和采集SQL并输出兼容性报告,支持展示不兼容SQL的初始位置,便于快速定位业务不兼容点。对Mybatis/iBatis ORM框架评估,提取SQL正确率高于99.5%。
2、前置检测:数据迁移增加前置检测机制,包括:三方件kafka服务可用性、磁盘空间、源端和目的端数据库可用性、连接用户权限、数据库参数、大小写参数、目的端数据库B兼容性模式等检测,支持迁移前调整内核参数。
3、增量迁移:增量迁移支持JDBC超时重连、流量控制、新增按表回放方式,可根据不同业务场景选择事务级并行回放和表级并行回放。
4、反向迁移:反向迁移支持JDBC超时重连、流量控制、自定义设置迁移结束后是否保留逻辑复制槽。
对象管理
数据开发插件:支持查看/修改用户/角色;SQL语句支持选中导出;新增对触发器、外部表、定时任务的操作;支持数据库断连后自动重连、配置自动断连时间。
智能运维
1、实例监控插件:增加新指标;优化采集架构,支持二级指标采集,可采集多个实例的指标。
2、智能诊断插件:增加诊断经验,包括:索引推荐、SMP并行查询、作业阻塞分析。
3、日志检索插件:增加CM日志采集,支持lucene语法搜索。
4、智能参数调优插件:结合机器学习方法,有效利用当前负载信息和数据库历史性能表现,推荐一组性能最优的参数。具体包括:支持负载特征分析,从用户负载中抽取出负载特征,多角度精准刻画负载;支持负载生成,根据配置项,生成指定规则的负载SQL;支持离线调优、在线调优和在线微调,通过多种模式给出最优参数。
安装部署
优化实例监控代理/服务端安装、日志检索代理/服务端安装,支持SQL诊断代理安装路径可选;支持资源池化双集群部署,支持安装、切换和状态查询操作。
生态兼容性增强
MySQL兼容
MySQL语法兼容性增强,完善系统函数、关键字、自定义变量、别名、JDBC等驱动数据类型表现等兼容;MySQL协议兼容增强,新增dolphin_hot_standby GUC参数,控制是否可以使用MySQL协议兼容端口连接备机,实现用户应用近似零修改迁移。
三、官网的安装流程
https://docs-opengauss.osinfra.cn/zh/docs/6.0.0-RC1/docs/InstallationGuide/%E4%BA%86%E8%A7%A3%E5%AE%89%E8%A3%85%E6%B5%81%E7%A8%8B.html
四、openGauss 6.0.0-RC1安装准备
说明:本次部署的环境是centos7.9,cpu 2核 X86架构,内存5G,硬盘300G
1、安装准备
1.1 硬件环境要求
下表列出了openGauss服务器应具备的最低硬件要求。在实际产品中,硬件配置的规划需考虑数据规模及所期望的数据库响应速度。请根据实际情况进行规划。
1.2 软件环境要求
1.3 软件依赖要求
注意:python3 也需要安装,建议版本3.6.8及以上
2、安装包下载并上传到服务器
安装包下载地址:https://opengauss.org/zh/download/
软件包下载后上传到服务器的/opt/software目录
3、安装软件依赖包
yum install -y libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel bzip2
4、操作系统设置
4.1 关闭SELINUX
vi /etc/selinux/config
修改SELINUX=disabled
或者
sed -i ‘s/^SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
4.2 关闭防火墙
systemctl disable firewalld.service
systemctl stop firewalld.service
systemctl status firewalld
4.3 关闭 swap 交换
swapoff -a
4.4 关闭RemoveIPC
CentOS操作系统默认为关闭,可以跳过该步骤。
(1) 修改/etc/systemd/logind.conf文件中的“RemoveIPC”值为“no”
vim /etc/systemd/logind.conf
RemoveIPC=no
(2) 修改/usr/lib/systemd/system/systemd-logind.service文件中的“RemoveIPC”值为“no”
vim /usr/lib/systemd/system/systemd-logind.service
RemoveIPC=no
(3) 重启服务
systemctl daemon-reload
systemctl restart systemd-logind.service
(4) 结果验证确认
loginctl show-session | grep RemoveIPC
systemctl show systemd-logind | grep RemoveIPC
4.5 关闭THP
#检查THP开启情况
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
##关闭THP
echo never > /sys/kernel/mm/transparent_hugepage/enabled
## 设置重启后自动关闭
chmod +x /etc/rc.d/rc.local
systemctl enable rc-local.service
cat >> /etc/rc.d/rc.local <<EOF
swapoff -a
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
EOF
4.6 设置网卡MTU值
执行如下命令查询服务器的网卡名称。
ifconfig
使用如下命令将各数据库节点的网卡MTU值设置为相同大小。MTU值推荐8192,要求不小于1500。
ifconfig 网卡编号 mtu 值
4.7 设置root用户远程登录
检查主机的 sshd_config 文件内 PermitRootLogin 是否为 yes,如果不是,需要修改为 yes,并重启 sshd 服务
cat /etc/ssh/sshd_config | grep PermitRootLogin
PermitRootLogin yes
vi /etc/ssh/sshd_config
# 重启sshd服务
systemctl restart sshd
4.8 设置内核参数
vi /etc/sysctl.conf
net.ipv4.tcp_max_tw_buckets = 10000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_retries1 = 5
net.ipv4.tcp_syn_retries = 5
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_retries2 = 12
vm.overcommit_memory = 0
net.ipv4.tcp_rmem = 8192 250000 16777216
net.ipv4.tcp_wmem = 8192 250000 16777216
net.core.wmem_max = 21299200
net.core.rmem_max = 21299200
net.core.wmem_default = 21299200
net.core.rmem_default = 21299200
net.ipv4.ip_local_port_range = 26000 65535
kernel.sem = 250 6400000 1000 25600
net.core.somaxconn = 65535
net.ipv4.tcp_syncookies = 1
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 60
kernel.shmall = 1152921504606846720
kernel.shmmax = 18446744073709551615
net.ipv4.tcp_sack = 1
net.ipv4.tcp_timestamps = 1
vm.extfrag_threshold = 500
vm.overcommit_ratio = 90
vm.swappiness = 0
#内核参数生效
sysctl -p
4.9配置资源限制
vi /etc/security/limits.conf
* soft nofile 1000000
* hard nofile 1000000
* soft nproc 655360
* hard nproc 655360
* soft memlock unlimited
* hard memlock unlimited
* soft core unlimited
* hard core unlimited
* soft stack unlimited
* hard stack unlimited
4.10安装python3
#安装python3
yum install -y python3
#设置python指向python3
cd /usr/bin
ln -s python3 python
#查看python版本
python -V
输出:Python 3.6.8
4.11创建用户及用户组
groupadd -g 1101 dbgrp
useradd -g dbgrp -u 1101 -m omm
passwd omm
4.12 安装包解压
cd /opt/software
tar -zxvf openGauss-6.0.0-RC1-CentOS-64bit-all.tar.gz
tar -zxvf openGauss-6.0.0-RC1-CentOS-64bit-om.tar.gz
4.13 创建安装目录并授权
mkdir -p /data/opengauss
chown -R omm: /data/opengauss
chmod -R 755 /data/opengauss
4.14 编辑xml配置文件
vi /opt/software/script/cluster_config.xml
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<!-- 数据库名称 -->
<PARAM name="clusterName" value="dbCluster" />
<!-- 数据库节点名称(hostname) -->
<PARAM name="nodeNames" value="node1" />
<!-- 数据库安装目录-->
<PARAM name="gaussdbAppPath" value="/data/opengauss/install/app" />
<!-- 日志目录-->
<PARAM name="gaussdbLogPath" value="/data/opengauss/log/omm" />
<!-- 临时文件目录-->
<PARAM name="tmpMppdbPath" value="/data/opengauss/tmp" />
<!-- 数据库工具目录-->
<PARAM name="gaussdbToolPath" value="/data/opengauss/install/om" />
<!-- 数据库core文件目录-->
<PARAM name="corePath" value="/data/opengauss/corefile" />
<!-- 节点IP,与数据库节点名称列表一一对应 -->
<PARAM name="backIp1s" value="192.168.100.10"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- 节点1上的部署信息 -->
<DEVICE sn="node1">
<!-- 节点1的主机名称 -->
<PARAM name="name" value="node1"/>
<!-- 节点1所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.100.10"/>
<PARAM name="sshIp1" value="192.168.100.10"/>
<!--dbnode-->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="15400"/>
<PARAM name="dataNode1" value="/data/opengauss/install/data/dn"/>
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
</DEVICELIST>
</ROOT>
五、预安装(root用户)
cd /opt/software/script
-U omm -G dbgrp -X ./cluster_config.xml
#日志如下:
Parsing the configuration file.
Successfully parsed the configuration file.
Installing the tools on the local node.
Successfully installed the tools on the local node.
Setting host ip env
Successfully set host ip env.
Are you sure you want to create the user[omm] (yes/no)? yes
Preparing SSH service.
Successfully prepared SSH service.
Checking OS software.
Successfully check OS software.
Checking OS version.
Successfully checked OS version.
Checking cpu instructions.
Successfully checked cpu instructions.
Creating cluster's path.
Successfully created cluster's path.
Set and check OS parameter.
Setting OS parameters.
Successfully set OS parameters.
Warning: Installation environment contains some warning messages.
Please get more details by "/opt/software/script/gs_checkos -i A -h node1 -X /opt/software/script/cluster_config.xml --detail".
Set and check OS parameter completed.
Preparing CRON service.
Successfully prepared CRON service.
Setting user environmental variables.
Successfully set user environmental variables.
Setting the dynamic link library.
Successfully set the dynamic link library.
Setting Core file
Successfully set core path.
Setting pssh path
Successfully set pssh path.
Setting Cgroup.
Successfully set Cgroup.
Set ARM Optimization.
No need to set ARM Optimization.
Fixing server package owner.
Setting finish flag.
Successfully set finish flag.
Preinstallation succeeded.
六、正式安装(omm用户)
su - omm
gs_install -X /opt/software/script/cluster_config.xml --gsinit-parameter="--locale=en_US.utf8"
#安装日志如下
Parsing the configuration file.
Successfully checked gs_uninstall on every node.
Check preinstall on every node.
Successfully checked preinstall on every node.
Creating the backup directory.
Successfully created the backup directory.
begin deploy..
Installing the cluster.
begin prepare Install Cluster..
Checking the installation environment on all nodes.
begin install Cluster..
Installing applications on all nodes.
Successfully installed APP.
begin init Instance..
encrypt cipher and rand files for database.
Please enter password for database:
Please repeat for database:
begin to create CA cert files
The sslcert will be generated in /data/opengauss/install/app/share/sslcert/om
NO cm_server instance, no need to create CA for CM.
Non-dss_ssl_enable, no need to create CA for DSS
Cluster installation is completed.
Configuring.
Deleting instances from all nodes.
Successfully deleted instances from all nodes.
Checking node configuration on all nodes.
Initializing instances on all nodes.
Updating instance configuration on all nodes.
Check consistence of memCheck and coresCheck on database nodes.
Configuring pg_hba on all nodes.
Configuration is completed.
The cluster status is Normal.
Successfully started cluster.
Successfully installed application.
end deploy..
检查数据库运行状态
[omm@node1 ~]$ gs_om -t status --detail
[ Cluster State ]
cluster_state : Normal
redistributing : No
current_az : AZ_ALL
[ Datanode State ]
node node_ip port instance state
------------------------------------------------------------------------------------------------
1 node1 192.168.100.10 15400 6001 /data/opengauss/install/data/dn P Primary Normal
七、openGauss 6.0.0-RC1连接测试
1、gsql连接
[omm@node1 ~]$ gsql -d postgres -p 15400 -r
gsql ((openGauss 6.0.0-RC1 build ed7f8e37) compiled at 2024-03-31 11:59:31 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
openGauss=# select version();
version
-----------------------------------------------------------------------------------------------------------------------------------------------------------
(openGauss 6.0.0-RC1 build ed7f8e37) compiled at 2024-03-31 11:59:31 commit 0 last mr on x86_64-unknown-linux-gnu, compiled by g++ (GCC) 10.3.0, 64-bit
(1 row)
2、dbeaver连接
2.1 dbeaver设置
菜单栏选择数据库->选择驱动管理器->选择新建->选择库->添加文件->点击找到类
菜单栏选择数据库->选择新建数据库连接->选择刚才添加的opengauss驱动
填写JDBC URL、用户名、密码
jdbc url格式:jdbc:opengauss://ip地址:port/数据库名
2.2 dbeaver测试连接
八、碰到的问题
1、python3: No such file or directory
[root@node1 script]# ./gs_preinstall -U omm -G dbgrp -X ./cluster_config.xml
/usr/bin/env: python3: No such file or directory
解决办法:
cd /usr/bin
ln -s python3 python
附录、参考文档
https://docs-opengauss.osinfra.cn/zh/docs/6.0.0-RC1/docs/InstallationGuide/%E5%AE%89%E8%A3%85%E5%87%86%E5%A4%87_%E4%BC%81%E4%B8%9A%E7%89%88.html
https://mp.weixin.qq.com/s/5FheKwFj56gVzpE1Pxxh9w
点击查看原文跳转作者文章