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

孤举者难起,众行者易趋,openGauss 5.1.0版本正式发布!

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及GP 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

  • 前言
    • 📣 1.openGauss 5.1概述
    • 📣 2.新特性
    • 📣 3.官方说明及下载
    • 📣 4.部署前准备
      • ✨ 4.1 环境准备
      • ✨ 4.1 yum配置
      • ✨ 4.3 关闭SeLinux
      • ✨ 4.4 关闭防火墙
      • ✨ 4.5 设置时区和时间
      • ✨ 4.6 关闭RemoveIPC
      • ✨ 4.7 root用户远程登录
      • ✨ 4.8 python安装
    • 📣 5.一主一备安装
      • ✨ 5.1 前提条件
      • ✨ 5.2 安装包解压
      • ✨ 5.3 XML配置文件
      • ✨ 5.4 用户及组创建
      • ✨ 5.5 初始化安装
      • ✨ 5.6 正式安装

前言

2023年9月28日, openGauss 5.1.0 版本正式发布,内核四高能力持续增强,DataPod+DataKit 解决方案持续创新

📣 1.openGauss 5.1概述

openGauss 作为国内最具创新力的开源数据库社区,汇聚了 5000 多名开发者的力量,技术上坚持突破创新,持续在内核、架构、工具、兼容性等方面发力。openGauss 5.1.0 自 2023 年 3 月 31 日启动版本开发,历时 6 个月开发周期,凝聚社区 614 名开发者,累计合入 PR 3320 个,继承之前版本特性功能,内核四高能力持续增强,Datapod 三层资源池化架构持续创新,DataKit 数据全生命周期管理工具不断丰富,生态兼容能力进一步提升。

在这里插入图片描述

本次发布包含 2 个数据库服务端安装版本:企业版、轻量版,用户可根据使用场景需要下载不同版本,并基于此进行场景化验证,提前发现问题并反馈社区,
社区将在下个 LTS 版本发布前进行问题修复。
立即体验 openGauss 5.1.0 版本:https://opengauss.org/zh/download/

📣 2.新特性

1)内核四高能力持续增强
高性能:基础算子持续优化,Insert、Update、Delete、索引扫描性能提升 15%以上; 支持 shared buffer 按大页内存分配,实现 4k pagesize 环境中性能提升 5%;内核 GCC 版本升级到 GCC 10.3,采用 PGO 反馈优化,TPCC 性能提升 6%,持续提升内核性能。
高可用:页面级并行回放支持备机可读,保持 70W tpmC 场景主备 RTO < 10s 不变;文件级并行回放实现按批次分组并行分发,备机回放性能提升 50%以上;发布订阅支持用户自定义冲突解决方案,构建完整异地双活能力。
高安全:抽象加解密与密钥管理适配层,支持统一接口对接第三方密钥管理服务和加密机,兼容第三方 KMS。
高智能:优化慢 SQL 根因分析逻辑,增强输出结论, 有效发现与分析运行态风险;增强数据采集能力,有助于异常场景发现。

2)DataPod 三层资源池化技术架构持续创新
性能优化:通过备机可见性判断逻辑优化、主机推进 oldestxmin 逻辑优化、备机支持缓存快照信息等功能,实现 sysbench 场景 2 节点性能 6W tps,线性度 1.6 倍,相比优化前提升 50%。
写操作透明转发:应用可以从任何一个节点接入数据库,内核会将写操作透明转发到读写节点,本地只执行读操作,并保持事务一致性。该功能可以简化应用接入数据库,同时增强系统扩展性。
DSS 能力增强:DSS 支持通过 NoF+协议对接存储设备,实现更低时延的存储 IO;支持线程池模式,支持大并发 IO 读写处理;支持黑匣子诊断,提高运维能力。
算子卸载:支持对接分布式存储,并支持将算子卸载到存储设备,在存储上完成计算,以此消减存储层和计算层的网络 IO 流量,充分利用存储的 CPU 资源。该功能适合 AP 场景的复杂查询,在 100GB 和 1TB 两种数据量下的 TPC-H 性能提升了 40%。

3)DataKit 数据全生命周期管理工具不断丰富
告警中心:工具平台新增告警中心,为各功能插件提供统一的告警通知能力。
数据迁移插件:MySQL 全量迁移新增支持迁移 csv 格式数据、支持索引并行创建、安装包解除平台依赖、增强异常处理能力;MySQL 增量&反向迁移新增支持断点续传、支持迁移进度展示、反向迁移支持全量迁移;数据校验通过按表分片校验、与全量迁移流程深入配合,实现性能提升到 150MB/s。
数据开发插件:增强对表、视图、用户角色、函数、存储过程等对象的管理;新增支持存储过程、函数、匿名块的嵌套调试,减低开发调试难度。
智能运维插件:新增支持集群监控和智能诊断,能依据系统运行的历史数据进行不优 SQL、等待事件、锁等异常诊断,发现系统潜在风险。

4)生态兼容能力进一步提升
提供兼容性 SQL 评估能力,兼容性评估工具支持源库导出 SQL 评估
实现 Oracle 兼容性基础插件,打通 Oracle 兼容性插件流程
MySQL 兼容性进一步增强:
支持数据类型转换规则和 MySQL 一致
表达式和自定义变量支持设置字符集/字符序
支持设置客户端连接的字符集和字符序
支持 gb18030_chinese_ci、gb18030_bin、gbk_chinese_ci、gbk_bin 四种字符序
存储过程支持 resignal、signal、DIAGNOSTICS 语法,实现对报错、诊断信息的处理
支持对 MySQL 协议的兼容,包括 unix domain socket、MySQL 系统参数、用户建连断连、prepare-execute 协议、普通 SQL 执行协议等

📣 3.官方说明及下载

更多具体发行说明请参考官网:
https://docs.opengauss.org/zh/docs/5.1.0/docs/ReleaseNotes/Releasenotes.html
5.1.0版本下载地址
https://opengauss.org/zh/download/

在这里插入图片描述

📣 4.部署前准备

✨ 4.1 环境准备

1)硬件环境要求:
硬件配置的规划需考虑数据规模及所期望的数据库响应速度。请根据实际情况进行规划。

在这里插入图片描述

2)软件环境要求

在这里插入图片描述

3)软件依赖要求
建议使用上述操作系统安装光盘或者源中,下列依赖软件的默认安装包,
若不存在下列软件,可参看软件对应的建议版本。

在这里插入图片描述

##操作系统
$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)##主机host设置
主库:hostnamectl set-hostname opengauss51M
备库:hostnamectl set-hostname opengauss51B##内存
$ free -gtotal        used        free      shared  buff/cache   available
Mem:              3           0           2           0           0           2
Swap:             4           0           4##字符集确认
$ locale
LANG=en_US.UTF-8
LC_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=将各数据库节点的字符集设置为相同的字符集
字符集修改可以在/etc/profile文件中添加export LANG=en_US.UTF-8##host设置
vi /etc/hosts192.168.6.11 opengauss51m
192.168.6.12 opengauss51b

✨ 4.1 yum配置

注:两个节点均做如下操作,请将操作系统镜像文件上传到服务器##创建挂载目录
mkdir /cdromls -lrt /opt/CentOS-7-x86_64-DVD-2009.iso##挂载目录
mount -o loop /opt/CentOS-7-x86_64-DVD-2009.iso /cdrom##yum源配置文件
cd /etc/yum.repos.d/
mkdir bak
mv CentOS* bak##配置yum文件
vi local.repo[base-local]
name=CentOS7-local
baseurl=file:///cdrom
enabled=1
gpgcheck=0#清空并重载yum
yum clean all
yum makecache##安装依赖包
yum install libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel libnsl -y

✨ 4.3 关闭SeLinux

vi /etc/selinux/config
修改"SELINUX"的值"disabled",执行:wq保存并退出修改,重新启动操作系统
通过以下方法也可以修改
sed -i ‘s/^SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
setenforce 0
注:主库和备库同时修改,然后重启服务器
$ /usr/sbin/sestatus
SELinux status: disabled

✨ 4.4 关闭防火墙

注:主备库均做如下操作
1.检查防火墙是否关闭
systemctl status firewalld
若防火墙状态显示为active (running),则表示防火墙未关闭
若防火墙状态显示为inactive (dead),则无需再关闭防火墙
2.关闭防火墙并禁止开机重启
systemctl disable firewalld.service
systemctl stop firewalld.service

✨ 4.5 设置时区和时间

注:主备库均做如下操作[root@opengauss51m ~]# timedatectlLocal time: Sun 2023-10-01 07:29:16 CSTUniversal time: Sat 2023-09-30 23:29:16 UTCRTC time: Sat 2023-09-30 23:29:42Time zone: Asia/Shanghai (CST, +0800)NTP enabled: no
NTP synchronized: yesRTC in local TZ: noDST active: n/a时区及时间不对,请按以下方法来处理
如下命令将各数据库节点/usr/share/zoneinfo/目录下的时区文件拷贝为/etc/localtime文件
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime设置系统硬件时间
hwclock --set --date '2023-9-30 08:09:00'
同步系统硬件时间到系统时间
hwclock --hctosys为了保证主备节点时间同步,需要设置ntp时间同步即可
yum install -y ntp#没有联网的情况下,添加以下两条即可
--主库
vi /etc/ntp.conf
server 127.127.1.0
fudge 127.127.1.0 stratum 10--备库同步主库
vi /etc/ntp.conf
server 192.168.6.11启动ntp服务,并开机自启动
systemctl start ntpd
systemctl enable ntpd[root@opengauss51m ~]# ntpq -premote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*LOCAL(0)        .LOCL.          10 l    6   64    1    0.000    0.000   0.000[root@opengauss51b ~]# ntpq -premote           refid      st t when poll reach   delay   offset  jitter
==============================================================================192.168.6.11    LOCAL(0)        11 u   12   64    1    0.763  -897.44   0.000

✨ 4.6 关闭RemoveIPC

在各数据库节点上,关闭RemoveIPC。CentOS操作系统默认为关闭,可以跳过该步骤。
##修改/etc/systemd/logind.conf文件中的“RemoveIPC”值为“no”
vi /etc/systemd/logind.conf
RemoveIPC=no
修改/usr/lib/systemd/system/systemd-logind.service文件中的"RemoveIPC"值为"no"
vi /usr/lib/systemd/system/systemd-logind.service
修改"RemoveIPC"值为"no"
RemoveIPC=no
##重新加载配置参数
systemctl daemon-reload
systemctl restart systemd-logind
##检查修改是否生效
loginctl show-session | grep RemoveIPC
systemctl show systemd-logind | grep RemoveIPC

✨ 4.7 root用户远程登录

CentOS操作系统可以跳过该步骤。vi /etc/ssh/sshd_config
## 将"PermitRootLogin"改为"yes"
PermitRootLogin yes## 注释掉"Banner"所在的行
#Banner none## 重启生效
systemctl restart sshd.service

✨ 4.8 python安装

[root@opengauss51m ~]# python -V
Python 2.7.5CentOS:支持Python 3.6.X,python需要通过--enable-shared方式编译
1.依赖包安装
[root@opengauss51m ~]# yum install -y zlib*
[root@opengauss51m ~]# rpm -qa | grep zlib
zlib-1.2.7-18.el7.x86_64
zlib-devel-1.2.7-18.el7.x86_64--安装gcc
yum install gcc2.安装包下载
python官网 https://www.python.org/downloads/release/python-3615/下载安装包即可
安装包为:Python-3.6.15.tgz3.解压并编译
cd /opt
tar -zxvf Python-3.6.15.tgz
cd Python-3.6.15/
./configure --prefix=/usr/local/python3 --enable-shared4.编译安装
make -j4
make install
注意:make编译时间比较长,耐心等待5.OS上设置python的软连接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip6.环境校验
[root@opengauss51m ~]# python3 -V
Python 3.6.15[root@opengauss51m ~]# python3
Python 3.6.15 (default, Sep 30 2023, 08:38:09) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

在这里插入图片描述

📣 5.一主一备安装

✨ 5.1 前提条件

前提条件:
已完成用户组和普通用户的创建。
所有服务器操作系统和网络均正常运行。
普通用户必须有数据库包解压路径、安装路径的读、写和执行操作权限,并且安装路径必须为空。
普通用户对下载的openGauss压缩包有执行权限。
安装前请检查指定的openGauss端口矩阵中所有端口是否被占用,如果被占用请更改端口或者停止当前使用端口进程。

✨ 5.2 安装包解压

注意:上传安装包到服务器/opt/openGauss,主节点操作即可
mkdir /opt/openGauss
mkdir /openGauss  --openGauss安装目录##解压安装包
chmod 755 -R /opt/openGauss
cd /opt/openGauss
[root@opengauss51m openGauss]# tar -zxvf openGauss-5.1.0-CentOS-64bit-all.tar.gz
[root@opengauss51m openGauss]# ll
total 289664
-rw-r--r-- 1 root root 147430629 Sep 30 09:23 openGauss-5.1.0-CentOS-64bit-all.tar.gz
-rw-r--r-- 1 root root       105 Sep 28 00:26 openGauss-5.1.0-CentOS-64bit-cm.sha256
-rw-r--r-- 1 root root  22293217 Sep 28 00:26 openGauss-5.1.0-CentOS-64bit-cm.tar.gz
-rw-r--r-- 1 root root        65 Sep 28 00:25 openGauss-5.1.0-CentOS-64bit-om.sha256
-rw-r--r-- 1 root root  22681080 Sep 28 00:25 openGauss-5.1.0-CentOS-64bit-om.tar.gz
-rw-r--r-- 1 root root        65 Sep 28 00:26 openGauss-5.1.0-CentOS-64bit.sha256
-rw-r--r-- 1 root root 103664183 Sep 28 00:26 openGauss-5.1.0-CentOS-64bit.tar.bz2
-rw------- 1 root root        65 Sep 28 00:24 upgrade_sql.sha256
-rw------- 1 root root    522890 Sep 28 00:24 upgrade_sql.tar.gz[root@opengauss51m openGauss]# tar -zxvf openGauss-5.1.0-CentOS-64bit-om.tar.gz
[root@opengauss51m openGauss]# ll
total 289676
drwxr-xr-x 19 root root      4096 Sep 28 00:25 lib
-rw-r--r--  1 root root 147430629 Sep 30 09:23 openGauss-5.1.0-CentOS-64bit-all.tar.gz
-rw-r--r--  1 root root       105 Sep 28 00:26 openGauss-5.1.0-CentOS-64bit-cm.sha256
-rw-r--r--  1 root root  22293217 Sep 28 00:26 openGauss-5.1.0-CentOS-64bit-cm.tar.gz
-rw-r--r--  1 root root        65 Sep 28 00:25 openGauss-5.1.0-CentOS-64bit-om.sha256
-rw-r--r--  1 root root  22681080 Sep 28 00:25 openGauss-5.1.0-CentOS-64bit-om.tar.gz
-rw-r--r--  1 root root        65 Sep 28 00:26 openGauss-5.1.0-CentOS-64bit.sha256
-rw-r--r--  1 root root 103664183 Sep 28 00:26 openGauss-5.1.0-CentOS-64bit.tar.bz2
drwxr-xr-x 11 root root      4096 Sep 28 00:25 script
-rw-------  1 root root        65 Sep 28 00:24 upgrade_sql.sha256
-rw-------  1 root root    522890 Sep 28 00:24 upgrade_sql.tar.gz
-rw-r--r--  1 root root        32 Sep 28 00:25 version.cfg

✨ 5.3 XML配置文件

安装openGauss前需要创建cluster_config.xml文件。
cluster_config.xml文件包含部署openGauss的服务器信息、安装路径、IP地址以及端口号等。本次部署以一主一备的方式创建XML配置文件## 配置数据库名称及各项目录,获取XML文件模板,按照实际环境配置
[root@opengauss51m ~]# find / -name cluster_config_template.xml
/opt/openGauss/script/gspylib/etc/conf/cluster_config_template.xml[root@opengauss51m ~]# cd /opt/openGauss/script/gspylib/etc/conf/
[root@opengauss51m conf]# ll
total 28
-rwxr-xr-x 1 root root 1857 Sep 28 00:25 check_list.conf
-rwxr-xr-x 1 root root 1760 Sep 28 00:25 check_list_dws.conf
-rwxr-xr-x 1 root root 1437 Sep 28 00:25 cluster_config_template.xml
-rwxr-xr-x 1 root root  411 Sep 28 00:25 gs_collector.json
-rwxr-xr-x 1 root root  184 Sep 28 00:25 gs-OS-set.service
-rwxr-xr-x 1 root root 1834 Sep 28 00:25 guc_cloud_list.xml
-rwxr-xr-x 1 root root  930 Sep 28 00:25 guc_list.xml编辑配置XML文件:
vi /opt/openGauss/cluster_config.xml<?xml version="1.0" encoding="UTF-8"?>
<ROOT><!-- openGauss整体信息 --><CLUSTER><!-- 数据库名称 --><PARAM name="clusterName" value="opengauss" /><!-- 数据库节点名称(hostname) --><PARAM name="nodeNames" value="opengauss51m,opengauss51b" /><!-- 数据库安装目录,与数据库所需其它路径相互独立,没有包含关系--><PARAM name="gaussdbAppPath" value="/openGauss/app" /><!-- 日志目录--><PARAM name="gaussdbLogPath" value="/openGauss/log/omm" /><!-- 临时文件目录--><PARAM name="tmpMppdbPath" value="/openGauss/tmp"/><!-- 数据库工具目录--><PARAM name="gaussdbToolPath" value="/openGauss/om" /><!-- 数据库core文件目录--><PARAM name="corePath" value="/openGauss/corefile"/><!-- 节点IP,与数据库节点名称列表一一对应 --><PARAM name="backIp1s" value="192.168.6.11,192.168.6.12"/> </CLUSTER><!-- 每台服务器上的节点部署信息 --><DEVICELIST><!-- 节点1上的部署信息 --><DEVICE sn="opengauss51m"><!-- 节点1的主机名称 --><PARAM name="name" value="opengauss51m"/><!-- 节点1所在的AZ及AZ优先级 --><PARAM name="azName" value="AZ1"/><PARAM name="azPriority" value="1"/><!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --><PARAM name="backIp1" value="192.168.6.11"/><PARAM name="sshIp1" value="192.168.6.11"/><!--dn--><PARAM name="dataNum" value="1"/><PARAM name="dataPortBase" value="15400"/><PARAM name="dataNode1" value="/openGauss/data/dn,opengauss51b,/openGauss/data/dn"/><PARAM name="dataNode1_syncNum" value="0"/></DEVICE><!-- 节点2上的节点部署信息,其中"name"的值配置为主机名称 --><DEVICE sn="opengauss51b"><!-- 节点2的主机名称 --><PARAM name="name" value="opengauss51b"/><!-- 节点2所在的AZ及AZ优先级 --><PARAM name="azName" value="AZ1"/><PARAM name="azPriority" value="1"/><!-- 节点2的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --><PARAM name="backIp1" value="192.168.6.12"/><PARAM name="sshIp1" value="192.168.6.12"/></DEVICE></DEVICELIST>
</ROOT>

✨ 5.4 用户及组创建

注:只在主库上做操作即可
##创建用户组dbgrp
[root@opengauss51m ~]# groupadd dbgroup
##创建用户组dbgroup下的普通用户omm,并设置密码为Gauss_123
useradd -g dbgroup omm
passwd omm

✨ 5.5 初始化安装

注:只在主库上做操作即可,确保主库和备库root密码相同
安装执行成功之后,需要手动删除主机root用户的互信,即删除openGauss数据库各节点上的互信文件
rm –rf ~/.sshchmod 775 /openGauss -R
chown omm:dbgroup /openGauss -R[root@opengauss51m ~]# cd /opt/openGauss/script
[root@opengauss51m script]# ./gs_preinstall -U omm -G dbgroup -X /opt/openGauss/cluster_config.xml安装集群过程中,输入集群及omm用户密码:Gauss_123
/opt/openGauss/script/gs_checkos -i A -h opengauss51m,opengauss51b --detail

在这里插入图片描述

✨ 5.6 正式安装

#主库执行即可
在执行过程中,用户需根据提示输入数据库的密码,密码具有一定的复杂度,为保证用户正常使用该数据库,请记住输入的数据库密码设置的密码要符合复杂度要求:
最少包含8个字符,最多包含16个字符。
不能和用户名、当前密码(ALTER)、或当前密码反序相同。
至少包含大写字母(A-Z)、小写字母(a-z)、数字、非字母数字字符(限定为~!@#$%^&*()-_=+\|[{}];:,<.>/?)四类字符中的三类字符。##登录到openGauss的主机,并切换到omm用户
[root@opengauss51m ~]# su - omm
[omm@opengauss51m ~]$ ll /opt/openGauss/cluster_config.xml
-rw------- 1 omm dbgroup 2574 Sep 30 09:43 /opt/openGauss/cluster_config.xml[omm@opengauss51m ~]$ gs_install -X /opt/openGauss/cluster_config.xml此处指定数据库密码:Gauss_123

在这里插入图片描述

相关文章:

孤举者难起,众行者易趋,openGauss 5.1.0版本正式发布!

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…...

软考——软件设计师中级2023年11月备考(1.计算机组成原理)

一、计算机组成原理 1.数据的表示 1.1 十进制转R进制 方法&#xff1a;对十进制数除R取余&#xff0c;最后对余数取倒序 如&#xff1a; 1.2 原码反码补码 1.3 浮点数 1.4 校验码 —— 海明码 &#xff08;非重点&#xff0c;了解即可&#xff09; 海明码的构成方法&…...

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(四)

思维导图 一、日期对象 1.1 实例化 实例化&#xff0c;默认得到当前时间&#xff0c;也可以指定时间 1.2 日期对象方法 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible&q…...

【前端】HTML5 Audio 预加载 按照队列顺序播放音频, 可以陆续往队列中加内容

【前端】Audio 按照队列顺序播放音频, 可以陆续往队列中加内容 var 音频库 {} var 当前音频集合 [] /*** 将文本添加到队列中* 持续去播放* 播放过的音频会自动从队列中删除* * 已规划* 要保障同时进行加载的数据不能超过5个(线程池 5)* * param 文本*/播放音频队列(文本){i…...

【单片机】13-实时时钟DS1302

1.RTC的简介 1.什么是实时时钟&#xff08;RTC&#xff09; &#xff08;rtc for real time clock) &#xff08;1&#xff09;时间点和时间段的概念区分 &#xff08;2&#xff09;单片机为什么需要时间点【一定的时间点干什么事情】 &#xff08;3&#xff09;RTC如何存在于…...

springboot和vue:十三、VueX简介与安装与推荐视频+前端数据模拟MockJS

VueX简介与安装与推荐视频 VueX用于管理分散在vue各个组件中的数据。每一个VueX的核心都是一个store&#xff0c;当store中的状态发生变化时&#xff0c;与之绑定的视图也将重新渲染。store中的状态不允许被直接修改&#xff0c;只能显示提交mutationVueX中有五个重要的概念&a…...

[React] Zustand状态管理库

文章目录 1.Zustand介绍2.创建一个store3.使用方法3.1 获取状态3.2 更新状态3.3 访问存储状态3.4 处理异步数据3.5 在状态中访问和存储数组3.6 持续状态 4.总结 1.Zustand介绍 状态管理一直是现代程序应用中的重要组成部分, Zustand使用 hooks 来管理状态无需样板代码。 更少…...

【ChatGPT】ChatGPT发展历史

更多优质文章请看底部&#xff1a;ChatGPT与日本首相交流核废水事件-精准Prompt... hello&#xff0c;我是小索奇&#xff0c;在AI日益庞大的环境下&#xff0c;接下来将为大家不断的ChatGPT学习 ChatGPT使用了 Transformer 结构&#xff0c;建立在 OpenAI的 GPT-3.5 大型语言模…...

分布式文件存储系统Minio实战

分布式文件系统应用场景 互联网海量非结构化数据的存储需求电商网站&#xff1a;海量商品图片视频网站&#xff1a;海量视频文件网盘 : 海量文件社交网站&#xff1a;海量图片 1. Minio介绍 MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存…...

【MySQL】MySQL 官方安装包形式

MySQL 官方提供3种包&#xff1a; 1. 源码包 mysql-5.7.42.tar.gz mysql-5.7.42-aarch64.tar.gz http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.34.tar.gz http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.42.tar.gz需要用户根据自己的CPU架构选择对应的…...

使用sqlmap获取数据步骤

文章目录 1.使用sqlmap获取所有数据库2.使用sqlmap获取当前连接数据库3.使用sqlmap获取当前数据库下所有表名4.使用sqlmap获取当前数据库下某个表下所有列名5.使用sqlmap获取当前数据库下某个表下指定字段的数据6.测试当前用户是否是管理员7.使用burpsqlmap批量检测8.脱库命令9…...

[论文笔记]GLM

引言 今天带来论文GLM: General Language Model Pretraining with Autoregressive Blank Infilling的笔记。论文中文标题为 通用语言模型预训练与自回归填空。 有很多不同类型的预训练架构,包括自编码模型(BERT、RoBERTa、ALBERT)、自回归模型(GPT系列)以及编码器-解码器模型…...

漏洞扫描环境:win10系统用VMware Workstation打开虚拟机若干问题

win10系统用VMware Workstation打开虚拟机若干问题 一 .VMware打开虚拟机就蓝屏重启怎么解决&#xff1f;一. VMware打开虚拟机就蓝屏重启怎么解决&#xff1f;方法一&#xff1a;1、同时按下CTRLSHIFTESC打开任务管理器功能&#xff0c;之后依次点击-详细信息-性能后出现下列界…...

OpenCV实现模板匹配和霍夫线检测,霍夫圆检测

一&#xff0c;模板匹配 1.1代码实现 import cv2 as cv import numpy as np import matplotlib.pyplot as plt from pylab import mplmpl.rcParams[font.sans-serif] [SimHei]#图像和模板的读取 img cv.imread("cat.png") template cv.imread(r"E:\All_in\o…...

消息队列实现进程之间通信方式

1. snd 源代码 #include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr,"__%d__:",__LINE__);\perror(msg);\ }while(0)typedef struct{ long msgtype; //消息类型char data[1024]; //消息正文 }Msg;#define SIZE sizeof(Msg)-sizeof(long)int main(i…...

用简单例子讲清楚webgl模板测试

文章目录 搭建简易的webgl环境绘制简单三角形&#xff08;不带stencilTest)绘制另一个三角形&#xff08;不带模板测试&#xff09;加入模板测试总结调参练习 搭建简易的webgl环境 一直以来&#xff0c;我只是想通过搭建纯webgl环境&#xff0c;进行开发&#xff0c;来清楚地了…...

区块链(8):p2p去中心化之websoket服务端实现业务逻辑

1 业务逻辑 例如 peer1和peer2之间相互通信 peer1通过onopen{ write(Mesage(QUERY_LATEST))} 向peer2发送消息“我要最新的区块”。 peer2通过onMessage收到消息,通过handleMessage方法对消息进行处理。 handleMessage根据消息类型进行处理 RESPONSE_BLOCKCHAIN:返回区块链…...

composer安装与设置

1、到官网下载 composer.phar。下载地址:Composer 2、将下载的composer.phar 复制到 composer 文件夹中 3、在composer文件夹中新建文件 composer.bat&#xff0c;内容为 php "%~dp0composer.phar" %* 5、设置环境变量的path&#xff0c;添加composer文件夹...

unordered_map/unordered_set的学习[unordered系列]

文章目录 1.老生常谈_遍历2.性能测试3.OJ训练3.1存在重复元素3.2两个数组的交集Ⅱ3.3两句话中的不常见单词3.4两个数组的交集3.5在长度2N的数组中找出重复N次的元素 1.老生常谈_遍历 #pragma once #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <l…...

C++位图—布隆过滤器

目录 位图概念位图应用 布隆过滤器简介布隆过滤器的优缺点布隆过滤器应用场景布隆过滤器实现布隆过滤器误判率分析 总结 位图概念 位图是一种数据结构&#xff0c;用于表示一组元素的存在或不存在&#xff0c;通常用于大规模数据集的快速查询。它基于一个位数组&#xff08;或位…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...