openGauss 3.1企业版升级至5.0

news2024/11/26 22:52:43

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

文章目录

  • 前言
    • 📣 1.概述
    • 📣 2.环境准备
      • ✨ 2.1 关闭SeLinux
      • ✨ 2.2 关闭防火墙
      • ✨ 2.3 关闭RemoveIPC
      • ✨ 2.4 关闭HISTORY记录
      • ✨ 2.5 设置root用户远程登录
      • ✨ 2.6 yum安装依赖
      • ✨ 2.7 host设置
      • ✨ 2.8 Python安装
    • 📣 3.目录创建
    • 📣 4.安装包解压
    • 📣 5.XML配置文件
    • 📣 6.初始化安装
    • 📣 7.执行安装
    • 📣 8.安装验证
    • 📣 9. 3.1升级到5.0版本
      • ✨ 9.3.1 升级前注意事项
      • ✨ 9.3.2 升级前准备
      • ✨ 9.3.3 数据库备份
      • ✨ 9.3.4 升级操作
      • ✨ 9.3.5 升级验证
      • ✨ 9.3.6 提交升级

前言

本篇结合企业实战介绍了openGauss企业版升级实战,版本从3.1升级到5.0版本

📣 1.概述

通过https://opengauss.org/zh/download/
登录openGauss开源社区,选择3.1.1版本对应平台企业版安装包
本文将从企业实战角度,从3.1.1版升级到5.0.0版本,并对安装升级的过程中的问题点做了详细的说明

在这里插入图片描述

📣 2.环境准备

✨ 2.1 关闭SeLinux

sed -i ‘s/^SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
setenforce 0

注:然后重启服务器
[root@opengauss ~]# /usr/sbin/sestatus
SELinux status:                 disabled

✨ 2.2 关闭防火墙

1.检查防火墙是否关闭
[root@opengauss ~]# systemctl status firewalld
若防火墙状态显示为active (running),则表示防火墙未关闭
若防火墙状态显示为inactive (dead),则无需再关闭防火墙

2.关闭防火墙并禁止开机重启
[root@opengauss ~]# systemctl disable firewalld.service
[root@opengauss ~]# systemctl stop firewalld.service

✨ 2.3 关闭RemoveIPC

1.修改/etc/systemd/logind.conf文件中的“RemoveIPC”值为“no”
vi /etc/systemd/logind.conf
RemoveIPC=no

##重新加载配置参数
systemctl daemon-reload
systemctl restart systemd-logind

✨ 2.4 关闭HISTORY记录

[root@opengauss ~]# vi /etc/profile
设置HISTSIZE值为0。例如,系统中HISTSIZE默认值为1000,将其修改为0
[root@opengauss ~]# source /etc/profile

✨ 2.5 设置root用户远程登录

[root@opengauss ~]# vi /etc/ssh/sshd_config
## 将“PermitRootLogin”改为“yes”
PermitRootLogin yes

## 注释掉“Banner”所在的行
#Banner none

## 重启生效
systemctl restart sshd.service

✨ 2.6 yum安装依赖

##创建挂载目录
[root@opengauss ~]# mkdir /cdrom

[root@opengauss ~]# ls -lrt /opt/CentOS-7-x86_64-DVD-1810.iso
-rw-r--r-- 1 root root 4712300544 Apr  8 09:28 /opt/CentOS-7-x86_64-DVD-1810.iso

##挂载目录
[root@opengauss ~]# mount -o loop /opt/CentOS-7-x86_64-DVD-1810.iso /cdrom
[root@opengauss ~]# umount -f /cdrom

[root@opengauss ~]# df -TH
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  498M     0  498M   0% /dev
tmpfs                   tmpfs     510M     0  510M   0% /dev/shm
tmpfs                   tmpfs     510M  8.0M  502M   2% /run
tmpfs                   tmpfs     510M     0  510M   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        96G  6.5G   90G   7% /
/dev/sda1               xfs       1.1G  144M  920M  14% /boot
tmpfs                   tmpfs     102M     0  102M   0% /run/user/0
/dev/loop0              iso9660   4.8G  4.8G     0 100% /cdrom


##yum源配置文件
[root@opengauss ~]# cd /etc/yum.repos.d/
[root@opengauss yum.repos.d]# mkdir bak
[root@opengauss yum.repos.d]# mv *.repo bak

[root@opengauss5m yum.repos.d]# vi local.repo
[base-local]
name=CentOS7-local
baseurl=file:///cdrom
enabled=1
gpgcheck=0

#清空并重载yum
yum clean all
yum makecache
##测试yum安装
yum -y install tree


##安装依赖包
yum install libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel libnsl -y
yum install net-tools -y
yum install expect -y

✨ 2.7 host设置

[root@opengauss ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.6.30 opengauss

✨ 2.8 Python安装

CentOS:支持Python 3.6.X,python需要通过--enable-shared方式编译
1.依赖包安装
[root@opengauss ~]# yum install -y zlib*
[root@opengauss ~]# rpm -qa | grep zlib
zlib-1.2.7-18.el7.x86_64
zlib-devel-1.2.7-18.el7.x86_64


2.安装包下载
python官网 https://www.python.org/downloads/release/python-3615/下载安装包即可
安装包为:Python-3.6.15.tgz

3.解压并编译
yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel zlib-devel

cd /opt
tar -zxvf Python-3.6.15.tgz
cd Python-3.6.15/
./configure --prefix=/usr/local/python3 --enable-shared CFLAGS=-fPIC

有以下报错,安装gcc即可
configure: error: in `/opt/Python-3.6.15':
configure: error: no acceptable C compiler found in $PATH

yum install gcc

make -j4
make install
注意:make编译时间比较长,耐心等待

python3安装遇到 zipimport.ZipImportError: can't decompress data; zlib not available
yum -y install zlib*


4.OS上设置python的软连接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip

python3: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory
出现以上报错处理方法,libpython3.6m.so.1.0复制到/usr/lib64/目录下即可
cp /opt/Python-3.6.15/libpython3.6m.so.1.0 /usr/lib64/


5.环境校验
[root@opengauss ~]# python3
Python 3.6.15 (default, Apr  8 2023, 11:45:45)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

此处注意有个个坑,在部署过程中,python升级后,结果导致了yum不可用
[root@opengauss ~]# which /usr/bin/yum
/usr/bin/yum

##查看python版本
[root@opengauss ~]# whereis python
python: /usr/bin/python2.7 /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz

[root@opengauss ~]# which yum
/usr/bin/yum

修改/usr/bin/yum中的第一行,#!/usr/bin/python,替换为#!/usr/bin/python2.7即可。

在这里插入图片描述

📣 3.目录创建

##创建数据库软件相关目录
mkdir -p /app
chmod -R 755 /app

📣 4.安装包解压

安装包下载地址: https://opengauss.org/zh/download/
注:从以上网站下载企业版即可

上传到主库所在的目录:/opt
[root@opengauss ~]# cd /opt
[root@opengauss opt]# ll
total 4752948
-rw-r--r--.  1 root root 4712300544 May 16 22:56 CentOS-7-x86_64-DVD-2009.iso
-rw-r--r--.  1 root root  131677914 May 16 23:29 openGauss-3.1.1-CentOS-64bit-all.tar.gz
drwxr-xr-x. 17  501  501       4096 May 16 23:19 Python-3.6.15
-rw-r--r--.  1 root root   23035095 May 16 23:02 Python-3.6.15.tgz
drwxr-xr-x.  3 root root         23 May 16 23:28 software
[root@opengauss opt]# cp openGauss-3.1.1-CentOS-64bit-all.tar.gz software/openGauss


##解压安装包
cd /opt
tar -zxvf openGauss-3.1.1-CentOS-64bit-all.tar.gz
tar -zxvf openGauss-3.1.1-CentOS-64bit-om.tar.gz

在这里插入图片描述

📣 5.XML配置文件

安装openGauss前需要创建cluster_config.xml文件。cluster_config.xml文件包含部署openGauss的服务器信息、安装路径、IP地址以及端口号等。
用于告知openGauss如何部署。用户需根据不同场景配置对应的XML文件。

本次部署以单机的方式创建XML配置文件

## 配置数据库名称及各项目录
[root@opengauss ~]# find / -name cluster_config_template.xml
/opt/software/openGauss/script/gspylib/etc/conf/cluster_config_template.xml
说明:获取XML文件模板,按照实际环境配置

编辑配置XML文件:
vi /opt/cluster_config.xml

<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
    <!-- openGauss整体信息 -->
    <CLUSTER>
        <!-- 数据库名称 -->
        <PARAM name="clusterName" value="rptdb" />
        <!-- 数据库节点名称(hostname) -->
        <PARAM name="nodeNames" value="opengauss" />
        <!-- 数据库安装目录-->
        <PARAM name="gaussdbAppPath" value="/app/openGauss/dbhome" />
        <!-- 日志目录-->
        <PARAM name="gaussdbLogPath" value="/app/openGauss/log/omm" />
        <!-- 临时文件目录-->
        <PARAM name="tmpMppdbPath" value="/app/openGauss/tmp" />
        <!-- 数据库工具目录-->
        <PARAM name="gaussdbToolPath" value="/app/openGauss/install/om" />
        <!-- 数据库core文件目录-->
        <PARAM name="corePath" value="/app/openGauss/corefile" />
        <!-- 节点IP,与数据库节点名称列表一一对应 -->
        <PARAM name="backIp1s" value="192.168.6.30"/> 
    </CLUSTER>
    <!-- 每台服务器上的节点部署信息 -->
    <DEVICELIST>
        <!-- 节点1上的部署信息 -->
        <DEVICE sn="opengauss">
            <!-- 节点1的主机名称 -->
            <PARAM name="name" value="opengauss"/>
            <!-- 节点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.30"/>
            <PARAM name="sshIp1" value="192.168.6.30"/>
               
	    <!--dbnode-->
	    <PARAM name="dataNum" value="1"/>
	    <PARAM name="dataPortBase" value="15400"/>
	    <PARAM name="dataNode1" value="/app/openGauss/install/data/dn"/>
            <PARAM name="dataNode1_syncNum" value="0"/>
        </DEVICE>
    </DEVICELIST>
</ROOT>

📣 6.初始化安装

[root@opengauss ~]# cd /opt/script
[root@opengauss script]# ./gs_preinstall -U omm -G dbgrp -X /opt/cluster_config.xml

在这里插入图片描述

📣 7.执行安装

[omm@opengauss ~]$ gs_install -X /opt/cluster_config.xml

在这里插入图片描述

📣 8.安装验证

## 通过openGauss提供的gs_om工具可以完成数据库状态检查

以omm用户身份登录服务器。
执行如下命令检查数据库状态是否正常,“cluster_state ”显示“Normal”表示数据库可正常使用

[root@opengauss ~]# su - omm
Last login: Sat Apr  8 12:56:31 CST 2023 on pts/0
[omm@opengauss ~]$ gs_om -t status
-----------------------------------------------------------------------

cluster_name    : rptdb
cluster_state   : Normal
redistributing  : No

-----------------------------------------------------------------------

[omm@opengauss ~]$ 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  opengauss 192.168.6.30    15400      6001 /app/openGauss/install/data/dn   P Primary Normal

📣 9. 3.1升级到5.0版本

✨ 9.3.1 升级前注意事项

1.升级期间不要做增删改,生产环境务必按照要求执行。
2.建议升级期间需停止业务进行,一次性升级所有节点。
3.升级一旦失败,有可能会影响到业务的正常开展,故提前做好数据的备份。

✨ 9.3.2 升级前准备

1.OS环境检查
[omm@opengauss ~]$ cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)

2.高斯版本确认
[omm@opengauss ~]$ gsql --version
gsql (openGauss 3.1.1 build 70980198) compiled at 2023-01-06 09:34:59 commit 0 last mr

3.数据磁盘使用空间检查
[omm@opengauss ~]$ df -TH
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        49G   12G   38G  24% /
devtmpfs                devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                   tmpfs     2.0G   13k  2.0G   1% /dev/shm
tmpfs                   tmpfs     2.0G   14M  2.0G   1% /run
tmpfs                   tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda1               xfs       1.1G  188M  876M  18% /boot
tmpfs                   tmpfs     396M   50k  396M   1% /run/user/0
tmpfs                   tmpfs     396M   13k  396M   1% /run/user/42
/dev/loop0              iso9660   4.6G  4.6G     0 100% /cdrom

4.数据库状态确认
[omm@opengauss ~]$ gs_om -t status
-----------------------------------------------------------------------

cluster_name    : rptdb
cluster_state   : Normal
redistributing  : No

-----------------------------------------------------------------------

5.OS参数校验
以root用户执行如下命令对服务器的OS参数进行检查。
检查服务器的OS参数的目的是为了保证数据库正常通过预安装,并且在安装成功后可以安全高效的运行。

[root@opengauss ~]# cd /opt/script/
[root@opengauss script]# ./gs_checkos -i A
Checking items:
    A1. [ OS version status ]                                   : Normal
    A2. [ Kernel version status ]                               : Normal
    A3. [ Unicode status ]                                      : Normal
    A4. [ Time zone status ]                                    : Normal
    A5. [ Swap memory status ]                                  : Warning
    A6. [ System control parameters status ]                    : Warning
    A7. [ File system configuration status ]                    : Warning
    A8. [ Disk configuration status ]                           : Normal
    A9. [ Pre-read block size status ]                          : Normal
    A10.[ IO scheduler status ]                                 : Normal
    A11.[ Network card configuration status ]                   : Warning
    A12.[ Time consistency status ]                             : Warning
    A13.[ Firewall service status ]                             : Normal
    A14.[ THP service status ]                                  : Normal
Total numbers:14. Abnormal numbers:0. Warning numbers:5.

6.下载5.0安装包
https://opengauss.org/zh/download/

✨ 9.3.3 数据库备份

使用gs_dumpall一次导出openGauss的所有数据库
[omm@opengauss ~]$ mkdir dump
[omm@opengauss ~]$ gs_dumpall -f  /home/omm/dump/bkpall.sql -p 15400

✨ 9.3.4 升级操作

1.root用户创建新包目录
mkdir -p /opt/gaussdb_upgrade

2.解压5.0安装包
将需要更新的5.0新包上传至目录/opt/gaussdb_upgrade并解压。
[root@opengauss ~]# cd /opt/gaussdb_upgrade
[root@opengauss gaussdb_upgrade]# tar -zxvf openGauss-5.0.0-CentOS-64bit-all.tar.gz
[root@opengauss gaussdb_upgrade]# tar -zxvf openGauss-5.0.0-CentOS-64bit-om.tar.gz


3.执行前置脚本gs_preinstall
cd /opt/gaussdb_upgrade/script
./gs_preinstall -U omm -G dbgrp -X  /opt/cluster_config.xml

注意:root用戶下执行,cluster_config.xml配置为3.1版本的

4.就地升级
切换至omm用户 使用如下命令进行就地升级,最后提示successfully upgrade all nodes.就可以了。
gs_upgradectl -t auto-upgrade -X /opt/cluster_config.xml --grey

Static configuration matched with old static configuration files.
Successfully set upgrade_mode to 0.
Checking upgrade environment.
Successfully checked upgrade environment.
Start to do health check.
Successfully checked cluster status.
Upgrade one node 'opengauss'.
NOTICE: The directory /app/openGauss/dbhome_70980198 will be deleted after commit-upgrade, please make sure there is no personal data.
Performing grey rollback.
No need to rollback.
The directory /app/openGauss/dbhome_70980198 will be deleted after commit-upgrade, please make sure there is no personal data.
Installing new binary.
copy certs from /app/openGauss/dbhome_70980198 to /app/openGauss/dbhome_a07d57c3.
Successfully copy certs from /app/openGauss/dbhome_70980198 to /app/openGauss/dbhome_a07d57c3.
Successfully backup hotpatch config file.
Sync cluster configuration.
Successfully synced cluster configuration.
Switch symbolic link to new binary directory.
Successfully switch symbolic link to new binary directory.
Start check CMS parameter.
Switching all db processes.
Check cluster state.
Cluster state: [   Cluster State   ]

cluster_state   : Normal
redistributing  : No
current_az      : AZ_ALL

[  Datanode State   ]

    node     node_ip         port      instance     state
-------------------------------------------------------------------------
1  opengauss 192.168.6.30    15400      6001       P Primary Normal
Create checkpoint before switching.
Start to wait for om_monitor.
Switching DN processes.
Ready to grey start cluster.
Grey start cluster successfully.
Wait for the cluster status normal or degrade.
Successfully switch all process version
The nodes ['opengauss'] have been successfully upgraded to new version. Then do health check.
Start to do health check.
Successfully checked cluster status.
Waiting for the cluster status to become normal.
.
The cluster status is normal.
Upgrade main process has been finished, user can do some check now.
Once the check done, please execute following command to commit upgrade:

    gs_upgradectl -t commit-upgrade -X /opt/cluster_config.xml

Successfully upgrade all nodes

✨ 9.3.5 升级验证

[omm@opengauss ~]$ gs_om -t status
-----------------------------------------------------------------------

cluster_name    : rptdb
cluster_state   : Normal
redistributing  : No

-----------------------------------------------------------------------

[omm@opengauss ~]$ gs_ssh -c "gsql -V"
Successfully execute command on all nodes.

Output:
[SUCCESS] opengauss:
gsql (openGauss 5.0.0 build a07d57c3) compiled at 2023-03-29 03:07:56 commit 0 last mr

在这里插入图片描述

✨ 9.3.6 提交升级

升级完成后,如果验证也没问题,接下来就可以提交升级,需要注意的是,一旦提交操作完成,则不能再执行回滚操作。
以数据库用户(如omm)执行如下命令完成升级提交。

[omm@opengauss ~]$ gs_upgradectl -t commit-upgrade  -X /opt/cluster_config.xml
Start to do health check.
Successfully checked cluster status.
Start check CMS parameter.
Successfully cleaned old install path.
Commit upgrade succeeded.

至此,openGauss3.1.0升级5.0.0版本完成。

如果数据库异常,需要强制回滚,可以使用如下命令:
gs_upgradectl -t auto-rollback -X  /opt/cluster_config.xml --force

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/577952.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是SOME/IP?

本文是SOME/IP 官方文档的翻译。原文地址&#xff1a;https://www.autosar.org/fileadmin/standards/R22-11/FO/AUTOSAR_RS_SOMEIPProtocol.pdf 1.引言和概览 2. 协议要求 3. 缩略语和术语 术语/缩略语描述Byte Order Mark字节顺序标记(byte order mark, BOM)是一个Unicode字…

Spring学习记录

目录 工厂模式的三种形态 简单工厂模式 代码&#xff1a; 运行结果&#xff1a; 总结&#xff1a; 工厂模式 代码&#xff1a; 运行结果&#xff1a; 总结&#xff1a; 抽象工厂模式 代码&#xff1a; 运行结果&#xff1a; 总结&#xff1a; bean的单例与多例 设置 …

chatgpt赋能python:Python父类调用子类:多态性的核心思想

Python父类调用子类&#xff1a;多态性的核心思想 多态性是面向对象编程(OOP)的核心思想之一&#xff0c;它允许不同的对象在调用同一个方法时产生不同的行为。Python是一门支持多态性的编程语言。在Python中&#xff0c;使用父类调用子类的方法是实现多态性的关键之一。 什么…

考研C语言第五章

5.2 数组基础知识 注意要点&#xff1a; 1.下标0开始 2.没有定义的地方是0 5.3 数组访问越界与数组传递 访问越界&#xff0c;定义超过前面定义的数组长度&#xff0c;占据了后面定义数据的地方 非常危险&#xff01; 在循环里面往往容易造成越界 数组传递 1.函数引用时…

AI一键抠图

前言 由于需要批量抠图&#xff0c;原本是想用MODNet的&#xff0c;可惜最新的模型官方不开源&#xff0c;旧模型扣的人物边缘有白边。最后发现了PP飞桨。 飞桨&#xff08;PaddlePaddle&#xff09;以百度多年的深度学习技术研究和业务应用为基础&#xff0c;集深度学习核心训…

【JDK】一、jdk17的下载与安装配置(图文说明超详细)

JDK17的下载与安装 前言一、JDK17下载1、官方下载地址 &#xff08; Oracle中国的官方网站&#xff09; 二、JDK17安装1、先看一下我现在的java版本和环境变量2、开始新的安装第一步&#xff1a;双击下载的jdk-17.0.7_windows-x64_bin.exe 进入到安装页面第二步&#xff1a;jdk…

内存管理之内存寻址(笔记)

计算机体系结构中的核心问题之一就是如何有效的进行内存寻址。因为所有运算的前提都是要先从内存中取地数据。所以内存寻址技术在一定程度上代表了计算机技术。 1. 图灵机和冯诺依曼体系 图灵机&#xff1a;图灵机是一种通用自动的机器模型&#xff0c;通过二段无线延申的纸带…

C++Primer——第一讲

重制CPrimer 目录 一、第一个程序 二、代码 二、题目 前言 我们会从一个C程序开始&#xff0c;这里默认您已经安装了Dev-C或其他的IDE软件。 一、第一个程序 下面这串代码是可以输出“Hello world”的代码。 #include<bits/stdc.h> using namespace std; int main(){…

Arduino+ESP8266 MCU开发板 ----带你开发DHT11温湿度开发项目

目录 PC调试过程如图 手机APP可在各大商场APP中下载 手机APP调试结果/效果如图 ESP8266 MUC介绍 ESP8266 MUC主要特点&#xff1a; 步1&#xff1a;下载Arduino&#xff0c;本次不多做说明&#xff0c;本次使用的arduino软件为老版本的&#xff0c;新版本有关的问题本人…

统计学的假设检验

假设检验的核心其实就是反证法。反证法是数学中的一个概念&#xff0c;就是你要证明一个结论是正确的&#xff0c;那么先假设这个结论是错误的&#xff0c;然后以这个结论是错误的为前提条件进行推理&#xff0c;推理出来的结果与假设条件矛盾&#xff0c;这个时候就说明这个假…

总结881

学习目标&#xff1a; 月目标&#xff1a;5月&#xff08;1800基础部分&#xff0c;背诵15篇短文&#xff09; 周目标&#xff1a;1800高等数学部分并完成错题记录&#xff0c;英语背3篇文章并回诵 每日必复习&#xff08;5分钟&#xff09; 前天错题纠错&#xff0c;线代部…

Solidity拓展:数据类型的转换

1.数据类型隐式转换 (自动) 同一类型之间的转换:由低长度转换为高长度int8-int16-int32int256,但int不能自动转换成uint&#xff0c;因为放不下负数所以直接不让转换,且 int8 不能转换成 uint256 &#xff08;因为 uint256 不能涵盖某些值&#xff0c;例如&#xff0c; -1&…

Android解决xutils数据库kotlin添加List数组问题

Android解决xutils数据库kotlin添加List数组问题 前言&#xff1a; 上一篇我们讲解了xutils中数据库版本升级的使用和问题&#xff0c;这篇博客讲解xutils中数据库添加list数据的问题&#xff0c;这个库真的是很强大&#xff0c;但是数据库的使用真不友好&#xff0c;添加一个…

从零开始手搓一个STM32与机智云的小项目——硬件介绍

文章目录 前言硬件简介选型1.主控2.电源3.电机驱动4.舵机驱动5.USB转TTL6.其他模块 原理图绘制1.STM32最小系统1.电源输入2.晶振选择3.复位电路4.BOOT选择电路5.下载电路 2.电源部分及与PC通信部分3.功能模块的实现1.串口2.定时器输入捕获与输出比较3.硬件SPI4.ADC5.温湿度传感…

学校食堂明厨亮灶 yolov8

学校食堂明厨亮灶可以yolov8网络模型技术&#xff0c;学校食堂明厨亮灶通过对厨师的穿戴情况行为举止等进行监测。YOLOv8 算法的核心特性和改动可以归结为如下&#xff1a;提供了一个全新的 SOTA 模型&#xff0c;包括 P5 640 和 P6 1280 分辨率的目标检测网络和基于 YOLACT 的…

C++环形缓冲区设计与实现:从原理到应用的全方位解析

C环形缓冲区设计与实现&#xff1a;从原理到应用的全方位解析 一、环形缓冲区基础理论解析&#xff08;Basic Theory of Circular Buffer&#xff09;1.1 环形缓冲区的定义与作用&#xff08;Definition and Function of Circular Buffer&#xff09;1.2 环形缓冲区的基本原理&…

SAP-MM-内向外向交货单

1、内向&外向交货单概念 外向交货&#xff08;outbound delivery&#xff09;是用在客户与企业之间的交货单&#xff0c;而内向交货&#xff08;inbound delivery&#xff09;则是用在供应商与企业之间的交货单&#xff1b;换言之&#xff0c;外向交货多用于SD 模块&#…

基于MAX-10 FPGA 超声波测距模块HC_SR04

文章目录 一、介绍超声波测距模块HC_SR04二、模块框图三、模块编写1. 测距信号源2. 距离计算3. 数码管模块4. 顶层模块 四、实验现象总结 一、介绍超声波测距模块HC_SR04 HC-SR04是一种基于超声波的测距模块。该模块向前15度内发送超声波并接收回响&#xff0c;通过发出超声波…

第一章:简单的C程序设计基础

一、C语言词汇 在C语言中使用的词汇分为&#xff1a;关键字、标识符、常量、运算符、分隔符、注释符等。 1.1关键字 1.2标识符 在程序中使用的变量名或函数名等统称为标识符&#xff1b;标识符的命名规则如下&#xff1a; &#xff08;C语言区分大小写&#xff09; 不能是关…

一个简单的基于C/S模型的TCP通信实例

1 TCP协议 1.1 概念 TCP是一种面向连接的、可靠的协议&#xff0c;有点像打电话&#xff0c;双方拿起电话互通身份之后就建立了连接&#xff0c;然后说话就行了&#xff0c;这边说的话那边保证听得到&#xff0c;并且是按说话的顺序听到的&#xff0c;说完话挂机断开连接。也…