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

如何快速部署一套智能化openGauss测试环境

一、openGauss介绍

openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行,允许用户自由地复制、使用、修改和分发软件。openGauss内核深度融合了华为在数据库领域多年的研发经验,结合企业级场景需求,持续构建竞争力特性。旨在为企业级应用提供高性能、高可靠性、高安全性的数据库解决方案。

二、openGauss部署流程

2.1、软硬件环境要求

介绍openGauss的软硬件环境要求。建议部署openGauss的各服务器具有等价的软硬件配置。

  • 表 1 硬件环境要求

    介绍openGauss的软硬件环境要求。建议部署openGauss的各服务器具有等价的软硬件配置。
    -表1 列出了openGauss服务器应具备的最低硬件要求。在实际产品中,硬件配置的规划需考虑数据规模及所期望的数据库响应速度。请根据实际情况进行规划。

题目配置描述
内存功能调试建议32GB以上。性能测试和商业部署时,单实例部署建议128GB以上。复杂的查询对内存的需求量比较高,在高并发场景下,可能出现内存不足。此时建议使用大内存的机器,或使用负载管理限制系统的并发。
CPU功能调试最小1×8核,2.0GHz。性能测试和商业部署时,建议1×16核,2.0GHz。CPU超线程和非超线程两种模式都支持。说明:个人开发者最低配置2核4G,推荐配置4核8G。目前,openGauss仅支持ARM服务器和基于x86_64通用PC服务器的CPU。
硬盘用于安装openGauss的硬盘需最少满足如下要求:至少1GB用于安装openGauss的应用程序。每个主机需大约300MB用于元数据存储。预留70%以上的磁盘剩余空间用于数据存储。建议系统盘配置为RAID1,数据盘配置为RAID5,且规划4组RAID5数据盘用于安装openGauss。有关RAID的配置方法在本手册中不做介绍。请参考硬件厂家的手册或互联网上的方法进行配置,其中Disk Cache Policy一项需要设置为Disabled,否则机器异常掉电后有数据丢失的风险。openGauss支持使用SSD盘作为数据库的主存储设备,支持SAS接口和NVME协议的SSD盘,以RAID的方式部署使用。
网络要求300兆以上以太网。建议网卡设置为双网卡冗余bond。有关网卡冗余bond的配置方法在本手册中不做介绍。请参考硬件厂商的手册或互联网上的方法进行配置。
  • 表 2 软件环境要求

软件类型配置描述
Linux操作系统ARM:openEuler 20.03LTS(推荐采用此操作系统)openEuler 22.03LTS 麒麟V10 Asianux 7.5 x86:openEuler 20.03LTS openEuler 22.03LTS entOS 7.6 Asianux 7.6 。说明:1、当前安装包只能在英文操作系统上安装使用;2、OM工具已经支持对基于openEuler/Centos等商业操作系统的安装使用,具体配置信息可以查看OM中的osid.conf文件。
Linux文件系统剩余inode个数 > 15亿(推荐)
工具bzip2
Python支持Python3.6+
  • 表 3 软件依赖要求

所需软件建议版本
libaio-devel建议版本:0.3.109-13
readline-devel建议版本:7.0-13
libnsl(openEuler+x86环境中)建议版本:2.28-36
  • openGauss的软件依赖要求如表3 所示。
    建议使用上述操作系统安装光盘或者源中,下列依赖软件的默认安装包,若不存在下列软件,可参看软件对应的建议版本。

2.2、环境规划
类型名称
主机名称Node1
主机IP192.168.1.101
操作系统版本CentOS 7.9
openGauss版本openGauss_6.0.0-RC1 极简版
部署方式单机模式
2.3、检查环境
  • 操作系统版本:

[root@Node1 ~]#[root@Node1 ~]# cat /etc/redhat-releaseCentOS Linux release 7.9.2009 (Core)[root@Node1 ~]#
  • CPU核数:

    [root@Node1 ~]# cat /proc/cpuinfo | grep "physical id" | uniq | wc -l [root@Node1 ~]#

  • 内存大小:

    [root@Node1 ~]# free -h              total        used        free      shared  buff/cache   availableMem:           7.6G        1.8G        3.6G        304M        2.3G        5.3GSwap:          4.0G          0B        4.0G[root@Node1 ~]#

2.4、安装依赖
yum install bzip2 libaio-devel readline-devel wget

2.5、检查Python版本

[root@Node1 ~]# python --versionPython 2.7.5[root@Node1 ~]#[root@Node1 ~]# python3 --version-bash: python3: command not found[root@Node1 ~]#
  • 说明:本例未安装Python3,需安装Python3.


图片

代码如下:

yum install python3

2.6、关闭SELINUX

[root@Node1 ~]# sed -i  "s/SELINUX=enforcing/SELINUX=disabled/"  /etc/selinux/config[root@Node1 ~]#
2.7、关闭RemoveIPC
  • 说明:在各数据库节点上,关闭RemoveIPC。CentOS操作系统默认为关闭,可以跳过该步骤。

  1. [root@Node1 ~]#

  2. [root@Node1 ~]# cat>>/etc/systemd/logind.conf<<EOF

  3. > RemoveIPC=no

  4. > EOF

  5. [root@Node1 ~]#

  6. [root@Node1 ~]#

  7. [root@Node1 ~]# cat>>/usr/lib/systemd/system/systemd-logind.service<<EOF

  8. > RemoveIPC=no

  9. > EOF

  10. [root@Node1 ~]#

2.8、修改内核
  1. sysctl -w kernel.sem="250 85000 250 330"

2.9、关闭防火墙
[root@Node1 ~]#[root@Node1 ~]# systemctl disable firewalld.serviceviceRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.[root@Node1 ~]# systemctl stop firewalld.service[root@Node1 ~]#systemctl disable firewalld
2. 10、检查服务器主机时间
  1. [root@Node1 ~]# date

  2. Tue Aug 20 14:57:50 CST 2024

  3. [root@Node1 ~]#

  • 说明:如果当前时间与本地时间不一致,需修改。

2.11、关闭HISTORY记录
  1. [root@Node1 ~]# sed -i “s/HISTSIZE=1000/HISTSIZE=0/” /etc/profile

  2. [root@Node1 ~]#

2.12、修改字符集

查看本地字符集:

[root@Node1 ~]# localeLANG=en_US.UTF-8LC_CTYPE="en_US.UTF-8"LC_NUMERIC="en_US.UTF-8"LC_TIME="en_US.UTF-8"LC_COLLATE="en_US.UTF-8"LC_MONETARY="en_US.UTF-8"LC_MESSAGES="en_US.UTF-8"LC_PAPER="en_US.UTF-8"LC_NAME="en_US.UTF-8"LC_ADDRESS="en_US.UTF-8"LC_TELEPHONE="en_US.UTF-8"LC_MEASUREMENT="en_US.UTF-8"LC_IDENTIFICATION="en_US.UTF-8"LC_ALL=
  • 修改字符集:

[root@Node1 ~]#[root@Node1 ~]# cat>> /etc/profile<<EOF> export LANG=en_US.UTF08> EOF[root@Node1 ~]#
  • 查看字符集:

[root@Node1 ~]#[root@Node1 ~]# cat /etc/profile# /etc/profileunset iunset -f pathmungeexport LANG=en_US.UTF-8[root@Node1 ~]#
2.13、以上设置完毕,重启主机。

三、openGauss部署流程

3.1、新建管理用户
groupadd gauss -g 4000useradd gauss -g 4000 -u 4000echo "gauss"|passwd --stdin gauss
3.2、创建安装目录
  • 目录规划:

名称用途
openGauss数据库安装的主目录
install安装包上传目录

代码如下:

mkdir /openGauss /installchmod 755 -R /openGauss /installchown -R gauss:gauss /openGauss /install
3.3、配置sudo,使用root账户
sed -i.bak '100agauss ALL=(ALL) NOPASSWD:ALL' /etc/sudoers
3.4、安装包下载

官网地址:https://opengauss.org/zh/download/

  • 说明:

    1、根据操作系统,下载对应安装包;
    2、下载方式:在线下载,离线下载;
    3、切换gauss用户;
    4、本案例下载极简版部署。

图片

  • 代码如下:

[gauss@Node1 root]$ cd /install/[gauss@Node1 install]$[gauss@Node1 install]$ wget https://opengauss.obs.cn-south-1.myhuaweiclo ud.com/6.0.0-RC1/x86/openGauss-6.0.0-RC1-CentOS-64bit.tar.bz2--2024-08-22 13:50:00-- https://opengauss.obs.cn-south-1.myhuaweicloud. com/6.0.0-RC1/x86/openGauss-6.0.0-RC1-CentOS-64bit.tar.bz2Resolving opengauss.obs.cn-south-1.myhuaweicloud.com (opengauss.obs.cn-s outh-1.myhuaweicloud.com)... 122.9.127.163, 122.9.127.162Connecting to opengauss.obs.cn-south-1.myhuaweicloud.com (opengauss.obs. cn-south-1.myhuaweicloud.com)|122.9.127.163|:443... connected.HTTP request sent, awaiting response... 200 OKLength: 104672194 (100M) [application/x-bzip2]Saving to: ‘openGauss-6.0.0-RC1-CentOS-64bit.tar.bz2’100%[==============================>] 104,672,194 8.51MB/s in 9.2s2024-08-22 13:50:10 (10.9 MB/s) - ‘openGauss-6.0.0-RC1-CentOS-64bit.tar. bz2’ saved [104672194/104672194][gauss@Node1 install]$
3.5、解压安装包
[gauss@Node1 install]$[gauss@Node1 install]$ tar -jxf openGauss-6.0.0-RC1-CentOS-64bit.tar.bz2 -C /openGauss/[gauss@Node1 install]$
3.6、切换目录进行部署
[gauss@Node1 install]$[gauss@Node1 install]$ cd /openGauss/[gauss@Node1 openGauss]$ cd simpleInstall/[gauss@Node1 simpleInstall]$[gauss@Node1 simpleInstall]$ sh install.sh -w "openGauss@123" &&source ~/.bashrc[step 1]: check parameter[step 2]: check install env and os settinginstall.sh: line 91: netstat: command not found[step 3]: change_gausshome_owner[step 4]: set environment variables/home/gauss/.bashrc: line 16: ulimit: open files: cannot modify limit: Operation not permitted[step 6]: init datanodeThe files belonging to this database system will be owned by user "gauss".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 /openGauss/data/single_node ... okcreating subdirectories ... in ordinary occasionokcreating configuration files ... okselecting default max_connections ... 100selecting default shared_buffers ... 1024MBBegin init undo subsystem meta.[INIT UNDO] Init undo subsystem meta successfully.creating template1 database in /openGauss/data/single_node/base/1 ... The core dump path is an invalid directory2024-08-22 13:45:08.379 [unknown] [unknown] localhost 140231013186176 0[0:0#0] [BACKEND] WARNING: macAddr is 12/688892526, sysidentifier is 796943/2859364144, randomNum is 1821352okinitializing pg_authid ... oksetting password ... okinitializing dependencies ... okloading PL/pgSQL server-side language ... okcreating system views ... okcreating performance views ... okloading system objects' descriptions ... okcreating collations ... okcreating conversions ... okcreating dictionaries ... oksetting privileges on built-in objects ... okinitialize global configure for bucketmap length ... okcreating information schema ... okloading foreign-data wrapper for distfs access ... okloading foreign-data wrapper for log access ... okloading hstore extension ... okloading foreign-data wrapper for MOT access ... okloading security plugin ... okupdate system tables ... okcreating snapshots catalog ... okvacuuming database template1 ... okcopying template1 to template0 ... okcopying template1 to postgres ... okfreezing database template0 ... okfreezing database template1 ... okfreezing database postgres ... okWARNING: enabling "trust" authentication for local connectionsYou 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 /openGauss/data/single_node --single_nodeorgs_ctl start -D /openGauss/data/single_node -Z single_node -l logfile[step 7]: start datanode[2024-08-22 13:45:25.533][17277][][gs_ctl]: gs_ctl started,datadir is /openGauss/data/single_node[2024-08-22 13:45:25.559][17277][][gs_ctl]: waiting for server to start....0 LOG: [Alarm Module]can not read GAUSS_WARNING_TYPE env.0 LOG: [Alarm Module]Host Name: Node10 LOG: [Alarm Module]Host IP: Node1. 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 directory2024-08-22 13:45:25.617 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: when starting as multi_standby mode, we couldn't support data replicaton.2024-08-22 13:45:25.617 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: base_page_saved_interval is 400, ori is 400.gaussdb.state does not exist, and skipt setting since it is optional.2024-08-22 13:45:25.623 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: [Alarm Module]can not read GAUSS_WARNING_TYPE env.2024-08-22 13:45:25.623 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: [Alarm Module]Host Name: Node12024-08-22 13:45:25.623 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: [Alarm Module]Host IP: Node1. Copy hostname directly in case of taking 10s to use 'gethostbyname' when /etc/hosts does not contain <HOST IP>2024-08-22 13:45:25.623 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: [Alarm Module]Cluster Name: dbCluster2024-08-22 13:45:25.623 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: [Alarm Module]Invalid data in AlarmItem file! Read alarm English name failed! line: 572024-08-22 13:45:25.625 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: loaded library "security_plugin"2024-08-22 13:45:25.627 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] WARNING: could not create any HA TCP/IP sockets2024-08-22 13:45:25.627 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] WARNING: could not create any HA TCP/IP sockets2024-08-22 13:45:25.629 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: InitNuma numaNodeNum: 1 numa_distribute_mode: none inheritThreadPool: 0.2024-08-22 13:45:25.630 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: reserved memory for backend threads is: 220 MB2024-08-22 13:45:25.630 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: reserved memory for WAL buffers is: 128 MB2024-08-22 13:45:25.630 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: Set max backend reserve memory is: 348 MB, max dynamic memory is: 8141 MB2024-08-22 13:45:25.630 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: shared memory 3286 Mbytes, memory context 8489 Mbytes, max process memory 12288 Mbytes2024-08-22 13:45:25.658 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [CACHE] LOG: set data cache size(402653184)2024-08-22 13:45:25.679 [unknown] [unknown] localhost 140182952991360 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: 5122024-08-22 13:45:25.691 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: gaussdb: fsync file "/openGauss/data/single_node/gaussdb.state.temp" success2024-08-22 13:45:25.691 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: create gaussdb state file success: db state(STARTING_STATE), server mode(Normal), connection index(1)2024-08-22 13:45:25.714 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: max_safe_fds = 976, usable_fds = 1000, already_open = 14The core dump path is an invalid directory2024-08-22 13:45:25.715 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: user configure file is not found, it will be created.2024-08-22 13:45:25.718 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: the configure file /openGauss/etc/gscgroup_gauss.cfg doesn't exist or the size of configure file has changed. Please create it by root user!2024-08-22 13:45:25.718 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [BACKEND] LOG: Failed to parse cgroup config file.2024-08-22 13:45:25.811 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [EXECUTOR] WARNING: Failed to obtain environment value $GAUSSLOG!2024-08-22 13:45:25.811 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [EXECUTOR] DETAIL: N/A2024-08-22 13:45:25.811 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [EXECUTOR] CAUSE: Incorrect environment value.2024-08-22 13:45:25.811 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [EXECUTOR] ACTION: Please refer to backend log for more details.2024-08-22 13:45:25.829 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [EXECUTOR] WARNING: Failed to obtain environment value $GAUSSLOG!2024-08-22 13:45:25.829 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [EXECUTOR] DETAIL: N/A2024-08-22 13:45:25.829 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [EXECUTOR] CAUSE: Incorrect environment value.2024-08-22 13:45:25.829 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [EXECUTOR] ACTION: Please refer to backend log for more details.2024-08-22 13:45:25.896 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [EXECUTOR] WARNING: Failed to obtain environment value $GAUSSLOG!2024-08-22 13:45:25.896 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [EXECUTOR] DETAIL: N/A2024-08-22 13:45:25.897 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [EXECUTOR] CAUSE: Incorrect environment value.2024-08-22 13:45:25.897 [unknown] [unknown] localhost 140182952991360 0[0:0#0] 0 [EXECUTOR] ACTION: Please refer to backend log for more details.[2024-08-22 13:45:29.830][3269][][gs_ctl]: done[2024-08-22 13:45:29.830][3269][][gs_ctl]: server started (/openGauss/data/single_node)import sql fileWould you like to create a demo database (yes/no)? yesLoad 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_nodebash: ulimit: open files: cannot modify limit: Operation not permitted[gauss@Node1 simpleInstall]$
3.7、检查主备服务运行情况
[gauss@Node1 ~]$ gs_ctl status -D $GAUSSHOME/data/single_node -Z single_node[2024-08-22 14:51:09.100][2145][][gs_ctl]: gs_ctl status,datadir is /openGauss/data/single_nodegs_ctl: server is running (PID: 2070)/openGauss/bin/gaussdb "-D" "/openGauss/data/single_node"[gauss@Node1 ~]$
3.8、登录主备数据库
[gauss@Node1 simpleInstall]$ gsql -dpostgres -Ugauss -rgsql ((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=#openGauss=#openGauss=# \q[gauss@Node1 ~]$
3.9、使用Navicat premium测试连接

前提:

  • 1、修改postgresql.conf

编辑文件:vi $GAUSSHOME/data/single_node/postgresql.conf
取消注释:#listen_addresses = ‘localhost’
改为:listen_addresses = ‘*’
取消注释:#password_encryption_type = 2
改为:password_encryption_type = 1

  • 2、修改pg_hba.conf

操作:修改$GAUSSHOME/data/single_node/pg_hba.conf
在IPV4增加
host all all 0.0.0.0/0 sha256

  • 3、修改内容如下:
vi $GAUSSHOME/data/single_node/postgresql.conflisten_addresses = '*'password_encryption_type = 1vi $GAUSSHOME/data/single_node/pg_hba.confhost all all 0.0.0.0/0 sha256
  • 4、以上配置信息修改完成后,即可使用Navicat工具登录openGauss数据库。

图片

四、部署问题

4.1、缺少依赖
  • 报错截图如下

图片

  • 原因:未安装bzip2依赖包。

  • 安装bzip2依赖包方案如下图:

图片

4.2、修改内核参数
  • 报错截图如下:

图片

  • 原因:未修改内核参数。

  • 未修改内核参数方案如下图:

图片

4.3、bash: gs_ctl: command not found
  • 说明:在安装openGauss的时候,脚本会在.bashrc文件中自动添加
    ulimit -n 1000000
    在注释掉该配置后,切换用户就正常了。

  • 错误代码如下:

[gauss@Node1 simpleInstall]$[gauss@Node1 simpleInstall]$ gs_ctl restart -D $GAUSSHOME/data/single_node -Z single_nodebash: gs_ctl: command not found[gauss@Node1 simpleInstall]$[gauss@Node1 simpleInstall]$
  • 修改如下:

vi /home/gauss/.bashrc

图片

  • 使修改生效:

    source /home/gauss/.bashrc

五、智能化初体验

5.1、数据库自治运维平台——DBMind
DBMind作为openGauss数据库的一部分,为openGauss数据库提供了自动驾驶能力,是一款领先的开源数据库自治运维平台。通过DBMind, 您可以很容易地发现数据库的问题,同时可以实现秒级的数据库问题根因分析。
5.2、DBMind的特点
  • 架构先进
    DBMind采用了先进的插件化的架构形式,支持海量插件扩展;
  • 支持多种模式
    具备命令行交互式运行、服务式运行;
  • 面向云原生进行设计
    面向云原生进行设计,支持Prometheus,并提供多种丰富的exporter插件;
  • 提供丰富的对接模式
    可以很容易地与现有管理系统进行对接,支持RESTful API、Python SDK、命令行、Prometheus协议等模式;
  • 端到端的全流程自治运维
    支持端到端全流程的数据库自治运维能力,包括慢SQL根因分析、workload索引推荐、多指标关联挖掘、故障自修复、异常检测与根因分析等功能;
5.3、DBMind首页

图片

5.4、DBMind主服务节点信息

图片

5.5、DBMind报警信息

图片

5.6、DBMind智能调优、风险分析

图片

5.7、DBMind参数设置

图片

5.8、DBMind官网地址

部署手册:

https://docs-opengauss.osinfra.cn/zh/docs/latest/docs/AIFeatureGuide/DBMind%E9%83%A8%E7%BD%B2.html

安装包下载地址:

https://opengauss.obs.cn-south-1.myhuaweicloud.com/6.0.0-RC1/dbmind/arm/dbmind-installer-aarch64-python3.11.sh.tar.gz

六、总结

openGauss数据库正在积极集成智能化技术,以提升数据库的性能和运维效率。以下是openGauss智能化的一些关键特点:

  • 自调优:
    openGauss利用机器学习算法对数据库的性能参数进行自动调优,如缓存大小、连接数、查询优化等,以维持最佳性能状态。
  • 自诊断:
    通过实时监控和诊断数据库的运行状态,发现潜在的性能瓶颈和故障风险,为运维人员提供预警和故障排查依据。
  • 自安全:
    集成AI技术实现智能防火墙、入侵检测、数据泄露防护等安全功能,提高数据库的安全防护能力。
  • 自运维:
    实现自动化备份、恢复、扩容等功能,降低运维成本,提高运维效率。
  • 自愈:
    通过自我修复和恢复技术,提高数据库的可用性和稳定性,确保业务的连续性。

 

本文作者:沈阳

简介:目前从事于医疗信息化系统的维护。非常荣幸能在此与各位老师分享我在学习openGauss数据库时的一些见解和经验。

由于近几年的去“O”浪潮,要求我们必须要与时俱进,持续学习国产数据库。openGauss数据库学习,让我认识到要想学好国产数据库,必须学好openGauss数据库。openGauss数据库的学习,不仅深化了我对国产数据库技术的理解。还让我学习到openGauss充分运用智能化来优化运营效率以及提升用户体验方面的重要性。

本人积极参加社区活动、线下交流会、通过公众号等形式分享学习成果,让更多的人了解国产数据库的使用方法,为国产数据库社区贡献自己的力量,为信创国产化增砖添瓦。

相关文章:

如何快速部署一套智能化openGauss测试环境

一、openGauss介绍 openGauss是一款开源关系型数据库管理系统&#xff0c;采用木兰宽松许可证v2发行&#xff0c;允许用户自由地复制、使用、修改和分发软件。openGauss内核深度融合了华为在数据库领域多年的研发经验&#xff0c;结合企业级场景需求&#xff0c;持续构建竞争力…...

【设计模式】深入理解Python中的原型设计模式

深入理解Python中的原型设计模式 在软件开发中&#xff0c;有时需要创建对象的过程非常复杂或者代价较高&#xff0c;而在同一类对象的实例之间有很多重复的属性。为了避免重复构造对象&#xff0c;提升性能和效率&#xff0c;原型设计模式&#xff08;Prototype Pattern&…...

Django CORS配置方案

参考 https://pypi.org/project/django-cors-headers/ 在setting.py中设置 INSTALLED_APPS [......corsheaders, #添加此行 ]MIDDLEWARE[......corsheaders.middleware.CorsMiddleware, #添加此行django.middleware.common.CommonMiddleware,#django.middleware.csrf.CsrfVi…...

2024年开放式耳机哪个牌子好?推荐最好的顶级开放式耳机品牌

在当下&#xff0c;开放式耳机逐渐成为众多消费者的新宠。与传统入耳式耳机相比&#xff0c;开放式耳机展现出诸多独特之处。它可以呈现出更清晰的音质效果&#xff0c;让用户有更美妙的听觉体验。在佩戴感上&#xff0c;开放式耳机更为舒适&#xff0c;不会给耳朵带来压迫感。…...

零基础读懂Stable Diffusion!

前言 一文搞懂Stable Diffusion是什么&#xff0c;怎么训练和使用&#xff0c;语义信息影响生成图片的过程。>>[][加入极市CV技术交流群&#xff0c;走在计算机视觉的最前沿] 前几个月AIGC可谓是大热了一把&#xff0c;各种高质量的生成图片层出不穷&#xff0c;而其中…...

Hash Join 和 Index Join工作原理和性能差异

在数据库查询中&#xff0c;Hash Join 和 Index Join 是两种常见的表连接策略。了解它们的工作原理和性能差异有助于设计高效的数据库查询。我们可以使用 Java 模拟这两种不同的连接方式&#xff0c;并进行性能对比。 1. Hash Join 和 Index Join 的概念&#xff1a; Hash Joi…...

Apifox简介及使用

Apifox 是一款集 API文档管理、接口调试、接口自动化测试 和 Mock 功能于一体的全功能工具&#xff0c;旨在为开发者和测试人员提供一个高效的一站式解决方案。它融合了 Postman、Swagger、JMeter 等工具的优势&#xff0c;能够极大地提升团队协作和 API 开发的效率。 在实际开…...

十、IPD 实施细节(产品设计与开发管理)

产品设计与开发管理 产品设计与开发管理是IPD(集成产品开发)实施过程中的核心环节。它确保从概念设计到最终产品的实现能够按照预定的质量、成本、进度目标顺利完成,并与市场需求、技术发展及企业战略保持一致。IPD强调产品设计与开发管理过程中跨职能团队的协作、流程的系…...

MySQL-13.DQL-聚合函数

一.DQL-分组查询 二.聚合函数 -- DQL:分组查询 -- 聚合函数 -- 1.统计该企业员工数量 count select count(id) from tb_emp; select count(job) from tb_emp;select count(A) from tb_emp; select count(*) from tb_emp;-- 2.统计该企业最早入职的员工 min select min(entr…...

为什么跟别人学习如何证明定理要远比使用定理更有意义

目录 背景 为什么跟别人学习 什么是高人&#xff0c;如何判断 高人定义 如何判断一个人的能力&#xff1f; 如何考量一个人的成就&#xff1f; 只知道使用定理的局限性 1. 缺乏灵活性和适应性 2. 无法创新或拓展新方法 3. 容易误用或误解定理 4. 难以推理和分析复杂问…...

Qt在Win,Mac和Linux的开机自启设置

Windows Windows 使用注册表来管理开机自启的应用程序。 void runWithSystem(const QString& name, const QString& path, bool autoRun) {QSetting reg("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", QSetting::NativeForma…...

spring boot热部署

使用热部署解决了每次都需要重新启动的问题&#xff0c;但不过热部署的在对于改动比较小时速度可能快一些&#xff0c;改动大的话尽量停止 1.使用热部署之前需要在pom.xml文件中导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifa…...

网关与蓝牙网关有什么不同之处?

尽管蓝牙网关也属于网关的一种&#xff0c;但在实际应用和功能特性上&#xff0c;它们之间存在着显著的差异。接下来&#xff0c;我们将深入探讨蓝牙网关的独特之处&#xff0c;并与传统网关进行对比分析。 一、网关与蓝牙网关的共同之处 一对多配对能力&#xff1a;无论是网关…...

JAVA计算双十一多产品实付款优惠券的省钱方案

为了计算双十一期间多产品使用优惠券后的实付款省钱方案&#xff0c;我们需要一个更复杂的逻辑来处理优惠券的应用和叠加规则。以下是一个简化的Java示例&#xff0c;用于展示如何计算多种优惠券应用于多个产品后的实付款金额&#xff0c;并找出最省钱的方案。 首先&#xff0…...

零售行业的数字化营销转型之路

一方面&#xff0c;市场竞争激烈&#xff0c;电商平台、新兴品牌和跨界对手带来巨大压力。另一方面&#xff0c;消费者需求变化迅速&#xff0c;更加追求个性化、多元化和便捷化的购物体验&#xff0c;同时传统零售企业还面临着高成本压力&#xff0c;如租金、人力和库存等。 然…...

js的for in 和 for of的详解

for...in 和 for...of 是 JavaScript 中的两种循环结构&#xff0c;它们用于不同的场景&#xff0c;适用于不同的数据类型。下面将详细介绍它们的用法、区别以及适用场景。 1. for...in 循环 for...in 用于遍历对象的可枚举属性&#xff08;包括继承的属性&#xff09;。 语…...

前端工具函数库

流行的前端工具函数库 lodashlodash-es&#xff1a;用lodash-es代替lodashes-toolkit&#xff1a;https://www.npmjs.com/package/es-toolkitradash&#xff1a;https://github.com/sodiray/radash 补充信息&#xff1a; antd-mobile 已不再依赖 lodash&#xff0c; 淘汰 lo…...

Java程序设计:Spring boot(4)——Freemarker Thymeleaf视图技术集成

1 Freemarker 视图集成 SpringBoot 内部⽀持 Freemarker 视图技术的集成&#xff0c;并提供了⾃动化配置类 FreeMarkerAuto Configuration&#xff0c;借助⾃动化配置可以很⽅便的集成 Freemarker基础到 SpringBoot 环境中。这⾥借助⼊⻔项⽬引⼊ Freemarker 环境配置。 Start…...

JavaScript 第19章:Web Storage

在JavaScript中&#xff0c;Web存储&#xff08;Web Storage&#xff09;提供了一种在用户浏览器中持久化数据的方式。这里我们会探讨localStorage、sessionStorage以及IndexedDB&#xff0c;并提供一些简单的示例代码来展示它们的用法。 localStorage localStorage允许你在用…...

[山河2024] week2

官方WP出得很快。对照官的写下私的。大概出入不大&#xff0c;毕竟第2周。后边的才难。 Crypto E&R RSA因子分解题&#xff0c;把q的2进制反转后与p异或。关于异或的题很多&#xff0c;这个还真是头一回见&#xff0c;不过爆破方法还是一样的。 r_q int(bin(q)[2:][::…...

无限可能LangChain——开启大模型世界

什么是大语言模型&#xff1f; 大语言模型是一种人工智能模型&#xff0c;通常使用深度学习技术&#xff08;如神经网络&#xff09;来理解和生成人类语言。这些模型拥有非常多的参数&#xff0c;可以达到数十亿甚至更多&#xff0c;使得它们能够处理高度复杂的语言模式。 我…...

URL路径以及Tomcat本身引入的jar包会导致的 SpringMVC项目 404问题、Tomcat调试日志的开启及总结

一、URL路径导致的 SpringMVC项目 404问题 SpringMVC项目的各项代码都没有问题&#xff0c;但是在页面请求时仍然显示404&#xff0c;编译的时候报了下面的问题&#xff1a; org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录…...

如何引起Java中的System.in.read()函数的异常

演示的为:关闭标准输入流System.in后再调用System.in.read就会报出IOException import java.io.IOException; import java.io.InputStream;public class Test {public static void main(String[] args) {InputStream in System.in;try {in.close();System.in.read();}catch (…...

深入理解Flutter鸿蒙next版本 中的Widget继承:使用extends获取数据与父类约束

目录 写在前面 什么是Widget继承&#xff1f; 基本概念 StatelessWidget与StatefulWidget build方法 创建自定义Widget 1. 继承StatelessWidget 2. 继承StatefulWidget并访问父类的约束 3. 继承其他自定义Widget并获取数据 写在最后 写在前面 在Flutter中&#xff0c…...

Loss:Focal Loss for Dense Object Detection

目录 3. 焦点损失(Focal Loss)3.1. 平衡交叉熵3.2. 焦点损失定义3.3. 类别不平衡与模型初始化3.4. 类别不平衡与两阶段检测器4. RetinaNet 检测器。4.1. 推理与训练。3. 焦点损失(Focal Loss) 焦点损失(Focal Loss)旨在解决单阶段目标检测场景中训练时前景和背景类别之间…...

Unity3D中Excel表格的数据处理模块详解

前言 在Unity3D项目中&#xff0c;处理Excel表格数据是一项常见且重要的任务。通过Excel表格&#xff0c;我们可以方便地管理游戏配置、角色属性等数据内容。本文将详细介绍如何在Unity3D中实现Excel表格的数据处理模块&#xff0c;包括技术详解和代码实现。 对惹&#xff0c…...

【python】OpenCV—Fun Mirrors

文章目录 1、准备工作2、原理介绍3、代码实现4、效果展示5、参考 1、准备工作 pip install vacm2、原理介绍 在OpenCV中&#xff0c;VCAM 库是一个用于简化创建三维曲面、定义虚拟摄像机、设置参数以及进行投影任务的工具。它特别适用于实现如哈哈镜等图像变形效果。 一、VC…...

QT IEEE754 16进制浮点数据转成10进制

IEEE754标准转换QT代码 qtcreator使用的ieee754标准的4字节数组与浮点数之间的转换方法&#xff0c;ieee754的4位数组如果转换成二进制后&#xff0c;大体结构是&#xff1a; 位序号12-910-32意义 符号位&#xff0c; 正数为0&#xff0c;负数为1. 指数位&#xff0c; 指数是…...

无人机+视频推流直播EasyCVR视频汇聚/EasyDSS平台在森林防护巡检中的解决方案

随着科技的飞速发展&#xff0c;无人机技术在各个领域的应用日益广泛&#xff0c;特别是在森林防护与巡检方面&#xff0c;无人机以其独特的优势&#xff0c;为传统林业管理带来了革命性的变化。本文将探讨无人机在森林防护巡检中的解决方案&#xff0c;分析其工作原理、优势及…...

Rancher—多集群Kubernetes管理平台

目录 一、Rancher 简介1.1 Rancher 和 k8s 的区别 二、Rancher 安装及配置2.1 安装 rancher2.2 登录 Rancher 平台2.3 Rancher 管理已存在的 k8s 集群2.4 创建名称空间 namespace2.5 创建 Deployment 资源2.6 创建 service2.7 Rancher 部署监控系统 一、Rancher 简介 Rancher …...