Linux 7 x86平台上安装达梦8数据库

news2024/11/26 3:26:49

1、环境描述

在这里插入图片描述

2、安装前准备

2.1 操作系统信息调研

Linux平台需要通过命令查看操作系统版本、位数、磁盘空间、内存等信息。
CPU信息

[root@ray1 ~]# cat /proc/cpuinfo | grep -E "physical id|core id|cpu cores|siblings|cpu MHz|model name|cache size"|tail -n 7
model name      : AMD Ryzen 9 7945HX with Radeon Graphics
cpu MHz         : 2495.312
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2

操作系统位数

[root@ray1 ~]# getconf LONG_BIT
64

内核版本

[root@ray1 ~]# cat /proc/version
Linux version 3.10.0-1127.el7.x86_64 (mockbuild@x86-034.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Feb 18 16:39:12 EST 2020

操作系统版本

[root@ray1 ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.8 (Maipo)
[root@ray1 ~]# 
[root@ray1 ~]# uname -a
Linux ray1 3.10.0-1127.el7.x86_64 #1 SMP Tue Feb 18 16:39:12 EST 2020 x86_64 x86_64 x86_64 GNU/Linux

内存信息

[root@ray1 ~]# free -g
              total        used        free      shared  buff/cache   available
Mem:              3           0           3           0           0           3
Swap:             3           0           3

磁盘信息

[root@ray1 ~]# df -Th
Filesystem            Type      Size  Used Avail Use% Mounted on
devtmpfs              devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                 tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                 tmpfs     2.0G   13M  2.0G   1% /run
tmpfs                 tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/rhel-root xfs        46G  3.9G   42G   9% /
/dev/sda1             xfs       997M  170M  828M  18% /boot
tmpfs                 tmpfs     394M     0  394M   0% /run/user/0

网卡信息

[root@ray1 ~]# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.1  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::8e68:33f4:c4a:b8bf  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:3a:5f:91  txqueuelen 1000  (Ethernet)
        RX packets 1035  bytes 115699 (112.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 594  bytes 98878 (96.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 68  bytes 5448 (5.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 68  bytes 5448 (5.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:bb:76:33  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0-nic: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 52:54:00:bb:76:33  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2.2 下载达梦数据库安装介质

可通过达梦官网根据操作系统类型、版本、CPU等信息下载相应版本的数据库安装介质。达梦官网下载链接为:https://eco.dameng.com/download/。

2.3 操作系统配置

2.3.1 配置主机名

[root@ray1 ~]# hostnamectl set-hostname ray1
[root@ray1 ~]# vi /etc/hosts
添加:
192.168.0.1 ray1

2.3.2 关闭防火墙

[root@ray1 ~]# systemctl stop firewalld
[root@ray1 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@ray1 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Wed 2024-08-14 14:35:51 CST; 7s ago
     Docs: man:firewalld(1)
  Process: 876 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 876 (code=exited, status=0/SUCCESS)
Aug 14 13:54:33 ray1 systemd[1]: Starting firewalld - dynamic firewall daemon...
Aug 14 13:54:34 ray1 systemd[1]: Started firewalld - dynamic firewall daemon.
Aug 14 14:35:51 ray1 systemd[1]: Stopping firewalld - dynamic firewall daemon...
Aug 14 14:35:51 ray1 systemd[1]: Stopped firewalld - dynamic firewall daemon.
[root@ray1 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
[root@ray1 ~]# cat /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@ray1 ~]# getenforce 
Enforcing
[root@ray1 ~]# setenforce 0
[root@ray1 ~]# getenforce 
Permissive

2.3.3 关闭操作系统Transparent Huge Pages

[root@ray1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
[root@ray1 ~]# echo "[vm]">>/usr/lib/tuned/throughput-performance/tuned.conf
[root@ray1 ~]# echo "transparent_hugepages=never">>/usr/lib/tuned/throughput-performance/tuned.conf

重启操作系统后验证:

[root@ray1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]

2.3.4 更改磁盘调度算法

Linux 6 上的默认磁盘调度算法为CFQ(完全公平排队I/O调度算法),该算法的I/O分配是基于进程/线程平均分配的,并不适用于数据库这样希望大部分I/O都应用到数据库进程的系统。DEADLINE算法(截止时间调度)确保一个截止时间内服务请求,更适用与数据库系统。但是LINUX 7已经将默认的磁盘调度算法更改为DEADLINE。查看磁盘的调度算法:

[root@ray1 ~]# cat /sys/block/sda/queue/scheduler 
noop [deadline] cfq

若调度算法为cfq,需要更改为deadline,可通过如下命令:

[root@ray1 ~]# echo "deadline" > noop anticipatory deadline [cfq]

2.3.5 关闭NUMA

NUMA(Non-Uniform Memory Access)架构是为了解决多CPU下内存访问冲突,简单来说不在将整个物理内存作为一个整体,而是根据不同的CPU区分不同的内存块,如2颗CPU每颗CPU使用64G内存。当NUMA参数zone_reclaim_mode在设置为1时,内核将要求多路CPU 尽量从距离较近的系统内存节点(服务器的整体内存在numa架构下将被分成若干个节点)分配内存而不是在整个服务器可访问内存的范围内进行内存分配,因此在较高内存占用压力下内存申请会触发内存频繁回收整理的机制严重影响了系统整体性能(长期处于内核态sys很高)。进而可能导致SQL卡顿问题的发生。
查看NUMA是否启用:

[root@ray1 ~]# dmesg|grep -i numa
[    0.000000] NUMA: Node 0 [mem 0x00000000-0x0009ffff] + [mem 0x00100000-0x7fffffff] -> [mem 0x00000000-0x7fffffff]
#NUMA:Node 0表示NUMA已启用

关闭NUMA:
1、修改grub文件

[root@ray1 ~]# vi /etc/default/grub

在这里插入图片描述
2、重建grub文件

[root@ray1 ~]# grub2-mkconfig -o /etc/grub2.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-1127.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1127.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-5df2d14ceffd4a389d53b7508bc2bb0e
Found initrd image: /boot/initramfs-0-rescue-5df2d14ceffd4a389d53b7508bc2bb0e.img
done

3、重启操作系统后检查numa状态

[root@ray1 ~]# dmesg | grep -i numa
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-1127.el7.x86_64 root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet numa=off
[    0.000000] NUMA turned off
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-3.10.0-1127.el7.x86_64 root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quietnuma=off
[root@ray1 ~]# cat /proc/cmdline 
BOOT_IMAGE=/vmlinuz-3.10.0-1127.el7.x86_64 root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet numa=off

2.3.6 创建用户组和用户

[root@ray1 ~]# groupadd dinstall -g 2001
[root@ray1 ~]# useradd  -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba
[root@ray1 ~]# passwd dmdba
Changing password for user dmdba.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

2.4 配置内核参数

[root@ray1 ~]# vi /etc/security/limits.conf
添加:
dmdba  soft      nice       0
dmdba  hard      nice       0
dmdba  soft      as         unlimited
dmdba  hard      as         unlimited
dmdba  soft      fsize      unlimited
dmdba  hard      fsize      unlimited
dmdba  soft      nproc      65536
dmdba  hard      nproc      65536
dmdba  soft      nofile     65536
dmdba  hard      nofile     65536
dmdba  soft      core       unlimited
dmdba  hard      core       unlimited
dmdba  soft      data       unlimited
dmdba  hard      data       unlimited

重启后验证:

[root@ray1 ~]# su - dmdba
Last login: Wed Aug 14 15:16:38 CST 2024 on pts/0
[dmdba@ray1 ~]$ ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 20
file size               (blocks, -f) unlimited
pending signals                 (-i) 15594
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65536
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 65536
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

2.5 创建目录并赋权

  • 数据库软件安装目录:/dmdba/dmrdbms
  • 实例保存目录:/dmdba/data
  • 归档保存目录:/dmdba/arch
  • 备份保存目录:/dmdba/dmbak
[root@ray1 ~]# mkdir -p /dmdba/dmrdbms
[root@ray1 ~]# mkdir -p /dmdba/data
[root@ray1 ~]# mkdir -p /dmdba/arch
[root@ray1 ~]# mkdir -p /dmdba/dmbak
[root@ray1 ~]# chown -R dmdba:dinstall /dmdba
[root@ray1 ~]# chmod -R 775 /dmdba

2.6 挂载镜像

将下载好的达梦数据库安装介质传输至服务器,并解压.zip文件。

[root@ray1 ~]# cd /soft/
[root@ray1 soft]# ll
total 1060656
-rw-r--r-- 1 root root 1086108981 Aug 14 12:52 dm8_20240712_x86_rh7_64.zip
[root@ray1 soft]# unzip dm8_20240712_x86_rh7_64.zip 
Archive:  dm8_20240712_x86_rh7_64.zip
  inflating: dm8_20240712_x86_rh7_64.README  
  inflating: dm8_20240712_x86_rh7_64.iso  
  inflating: dm8_20240712_x86_rh7_64.iso_SHA256.txt  
[root@ray1 soft]# ll
total 2138612
-rw-r--r-- 1 root root 1103818752 Jul 26 17:36 dm8_20240712_x86_rh7_64.iso
-rw-r--r-- 1 root root        100 Jul 26 17:37 dm8_20240712_x86_rh7_64.iso_SHA256.txt
-rw-r--r-- 1 root root        240 Jul 26 17:36 dm8_20240712_x86_rh7_64.README
-rw-r--r-- 1 root root 1086108981 Aug 14 12:52 dm8_20240712_x86_rh7_64.zip

将ISO文件挂载至光驱

[root@ray1 soft]# mount -o loop dm8_20240712_x86_rh7_64.iso /mnt/
mount: /dev/loop0 is write-protected, mounting read-only
[root@ray1 soft]# df -Th
Filesystem            Type      Size  Used Avail Use% Mounted on
devtmpfs              devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                 tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                 tmpfs     2.0G   12M  2.0G   1% /run
tmpfs                 tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/rhel-root xfs        46G  5.9G   40G  14% /
/dev/sda1             xfs       997M  170M  828M  18% /boot
tmpfs                 tmpfs     394M     0  394M   0% /run/user/0
/dev/loop0            iso9660   1.1G  1.1G     0 100% /mnt

3、 数据库软件安装

3.1 图形界面安装

[dmdba@ray1 ~]$ export DISPLAY=192.168.0.201:0.0
[dmdba@ray1 ~]$ cd /mnt/
[dmdba@ray1 mnt]$ ./DMInstall.bin 
Extract install files.........

在这里插入图片描述
选择需要的语言、时区,点击确定。
在这里插入图片描述

点击下一步。
在这里插入图片描述

接受许可协议,点击下一步。
在这里插入图片描述

选择key文件路径,点击下一步。
在这里插入图片描述

选择【典型安装】,点击下一步。
在这里插入图片描述

输入达梦数据库软件安装目录,点击下一步。
在这里插入图片描述

点击确定、下一步。
在这里插入图片描述

再次确认各项配置、所需资源等,确认无误点击安装。
在这里插入图片描述

等待安装结束。
在这里插入图片描述
以root用户运行脚本,运行完成后点击确定。

[root@ray1 ~]# /dmdba/dmrdbms/script/root/root_installer.sh
移动 /dmdba/dmrdbms/bin/dm_svc.conf 到/etc目录
创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务

在这里插入图片描述
点击完成。

3.2 配置环境变量

切换到 root 用户进入 dmdba 用户的根目录下,配置对应的环境变量。DM_HOME 变量和动态链接库文件的加载路径在程序安装成功后会自动导入。

[root@ray1 ~]# vi /home/dmdba/.bash_profile
添加:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dmdba/dmrdbms/bin"
export DM_HOME="/dmdba/dmrdbms"
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
[root@ray1 ~]# su - dmdba
Last login: Wed Aug 14 15:35:08 CST 2024 on pts/0
[dmdba@ray1 ~]$ source .bash_profile

3.3 图形界面初始化数据库实例

[root@ray1 ~]# su - dmdba
Last login: Wed Aug 14 15:48:02 CST 2024 on pts/1
[dmdba@ray1 ~]$ export DISPLAY=192.168.0.201:0.0
[dmdba@ray1 ~]$ cd $DM_HOME/tool
[dmdba@ray1 tool]$ ./dbca.sh

在这里插入图片描述
选择创建数据库实例,点击开始。
在这里插入图片描述
选择一般用途、自动调整数据库性能参数、高性能,点击下一步。
在这里插入图片描述
选择数据库事先规划的数据库实例目录,点击下一步。
在这里插入图片描述
按需填入数据库名、实例名、端口号、是否需要路径拼接数据库名。点击下一步。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按需输入数据库各类文件路径、名称等,点击下一步。
在这里插入图片描述
在这里插入图片描述
按需设置簇大小、页大小、日志文件大小、字符集、大小写敏感等相关参数,点击下一步。
在这里插入图片描述
配置数据库口令,点击下一步。
在这里插入图片描述
是否要创建示例数据库,点击下一步。
在这里插入图片描述
再次确认数据库各项信息,点击完成。
在这里插入图片描述
等待数据库创建完成。
在这里插入图片描述
以root用户执行脚本,运行完成后点击确定。

[root@ray1 ~]# mv /dmdba/dmrdbms/bin/DmServiceDMSERVER.service /usr/lib/systemd/system/DmServiceDMSERVER.service
[root@ray1 ~]# systemctl enable DmServiceDMSERVER.service
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service to /usr/lib/systemd/system/DmServiceDMSERVER.service.
[root@ray1 ~]# systemctl start DmServiceDMSERVER.service

在这里插入图片描述
脚本已经执行完成,点击是。
在这里插入图片描述
点击确定。
在这里插入图片描述
root用户执行脚本,重启数据库服务。

[root@ray1 ~]# systemctl restart DmServiceDMSERVER.service

在这里插入图片描述
脚本执行完成后点击是。
在这里插入图片描述
数据库创建完成,点击完成。
在这里插入图片描述

3.4 图形界面注册数据库实例服务

通过dbca图形界面完成的初始化数据库实例,数据库实例服务会自动注册,无需单独执行注册数据库实例服务步骤。

至此,DM8数据库在RHEL7.8 x86 64bit上安装完成。

关于数据库连接、启停以及其他日常运维操作,参考其他篇博客,感谢关注。

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

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

相关文章

【PY模型训练】最终测试

Anacoda3 安装 1. conda -V 2.conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ 3.打开.condarc文件,将下面内容直接放入.condarc文件里面 channels: - conda-forge - defaults show_channel_urls: true default_ch…

【Qt】 QWidget的cursor属性

QWidget的cursor属性 cursor属性可以设置当鼠标指向不同控件&#xff0c;不同窗口会产生不同的效果。 API说明 cursor() 获取到当前 widget 的 cursor 属性, 返回 QCursor 对象. 当⿏标悬停在该 widget 上时, 就会显⽰出对应的形状. setCursor(const QCursor& cursor) …

CSS——less

一、less简介 1、less是一门css的预处理语言。是一个css的增强版&#xff0c;通过less可以编写更少的代码实现更强大的样式。 2、css原先也只支持变量的设置。 变量的设置可以便捷更改一样的样式&#xff0c;其中&#xff0c;calc&#xff08;&#xff09;是计算函数。 3、在le…

【6大设计原则】精通设计模式之里氏代换原则:从理论到实践,掌握代码演化的黄金法则

一、引言 1.1 设计模式的必要性 在软件开发的复杂性面前&#xff0c;设计模式提供了一套成熟的解决方案&#xff0c;它们是经过多年实践总结出来的&#xff0c;能够帮助我们应对各种编程难题。设计模式不仅仅是一种编程技巧&#xff0c;更是一种编程哲学&#xff0c;它能够提…

CSS——动画(animation)

一、过渡&#xff08;transition&#xff09; 1、通过过渡可以指定一个属性发生变化时的切换方式 2、通过过渡可以创建一些非常好的效果&#xff0c;提升用户体验 3、常用属性值 ① transition-property 指定要执行过渡的属性 多个属性间使用&#xff0c;隔开如果所有…

Ubuntu24.04搭建maxkb开发环境

接上文&#xff1a;windows10搭建maxkb开发环境&#xff08;劝退指南&#xff09; 上文在windows10环境搭建maxkb开发环境遇到各种坑&#xff0c;后面就转战ubuntu平台&#xff0c;果然比较顺利的完成开发环境搭建。当然遇到相关的问题还是可以参考上文《windows10搭建maxkb开发…

数据库根据日期统计SQL编写记录

统计每天产生多少数据 SELECT to_char("日期字段",YYYY-MM-dd) time ,count(*) FROM "表名" GROUP BY time;统计每月产生多少数据 SELECT to_char("日期字段",YYYY-MM) time ,count(*) FROM "表名" GROUP BY time;统计每年产生多少数…

unity游戏开发005:资源的导入

“君子之学&#xff0c;无时无处而不以立志为事” unity游戏开发 前言文章有误敬请斧正 不胜感恩&#xff01;||unity游戏开发005 Unity资源导入指南一、资源的种类二、资源导入的基本步骤三、导入资源的设置四、导入资源的注意事项五、常见问题及解决方案六、总结 前言 昨天我…

大数据技术——实战项目:广告数仓(第八部分)FineBI实战

目录 第1章 FineBI概述 第2章 FineBI部署 第3章 FineBI实战 3.1 需求回顾 3.2 添加Clickhouse驱动 3.3 添加Clickhouse数据库连接 3.4 添加数据集 3.5 创建分析主题并选择数据集 3.6 加工数据 3.7 创建可视化组件 3.7.1 地图可视化组件 3.7.2 投放平台流量柱状图…

【C语言篇】深入理解指针4(模拟实现qsort函数)

文章目录 回调函数是什么qsort函数介绍和使用举例qsort函数介绍qsort函数排序整型数据使用qsort排序结构数据 qsort函数的模拟实现总结写在最后 回调函数是什么 回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另⼀…

豆包MarsCode:开启AI辅助编程的新时代

文章目录 引言MarsCode简介主要功能安装步骤JetBrains 安装1. /doc 文档生成2. /fix 智能修复 AI Fix3. /test 单元测试生成 使用步骤深入与最佳实践常见问题解答结语学习资源互动环节 引言 在人工智能技术飞速发展的今天&#xff0c;编程领域的创新也在不断涌现。豆包MarsCod…

从繁琐到高效:采购合同管理软件如何使企业受益

企业普遍面临由合同管理复杂性引发的压力&#xff0c;这已成为一个普遍现象。手动处理和整理大量的关键信息&#xff0c;同时确保所有文档的透明度和一致性&#xff0c;无疑是一项重大挑战。为了降低流程时间并提高效率&#xff0c;采用有效的工具显得尤为必要。 然而&#xf…

44.【C语言】指针(重难点)(G)

目录 19.字符指针变量 *定义 *简单说明 *如果是字符串 *像数组一样指定访问常量字符串的字符 *练习 20.数组指针变量 *定义 *格式 *例子 问题1 问题2 *利用指针打印 21.二维数组传参的本质 往期推荐 19.字符指针变量 *定义 指向字符的指针变量&#xff0c;用于存储字符在内存…

传统软件开发和敏捷软件开发之间的区别

传统软件开发与敏捷软件开发都是系统软件设计开发的方式&#xff0c;都是软件设计的重要类型。 1. 传统软件开发 1.1 基本流程 传统软件开发是用于设计和开发简单软件的软件开发过程。当软件的安全性和许多其他因素不太重要时使用它。它由新手用来开发软件。它包括五个阶段&…

掌控库存,简化管理 — InvenTree 开源库存管理系统

InvenTree &#xff1a;简化您的库存管理&#xff0c;让效率和控制力触手可及。- 精选真开源&#xff0c;释放新价值。 概览 InvenTree&#xff0c;一款专为精细化库存管理而设计的开源系统&#xff0c;以其高效和灵活性在众多库存管理工具中脱颖而出。它以Python和Django框架…

详谈平衡二叉搜索树(AVL树)

文章目录 AVL树的概念AVL树节点AVL树的插入AVL树的旋转新节点插入较高左子树的左侧---左左&#xff1a;右单旋新节点插入较高右子树的右侧---右右&#xff1a;左单旋新节点插入较高左子树的右侧---左右&#xff1a;先左单旋再右单旋新节点插入较高右子树的左侧---右左&#xff…

Vue - 详情介绍v-emoji-picker、vue3-emoji-picker和vue3-emoji表情包组件

Vue - 详情介绍v-emoji-picker、vue3-emoji-picker和vue3-emoji表情包组件 本篇详情介绍在Vue2.x和Vue3.x中使用&#xff08;emoji&#xff09;表情包组件&#xff0c;通过提供直观、易于使用的emoji表情选择功能&#xff0c;增强用户在使用Web应用时的表达力和互动性。 1. v…

Linux驱动开发基础(总线驱动设备模型)

所学来自百问网 目录 1.驱动设计的思想&#xff1a;面向对象/分层/分离 1.1 面向对象 1.2 分层 1.3 分离 2.总线驱动设备模型 2.1 相关函数和结构体 2.1.1 platform_device 2.1.2 platform_driver 2.1.3 相关函数 2.2 platfrom_driver和platfrom_device的注册过程 …

解决麒麟 V10 SP1 升级 Python 后 Yum 不可用问题

目录 一、前提概要 二、解决办法 1、卸载原有的 python 2、安装 Python 3.7.9 rpm 3、安装一系列 yum 相关 rpm 4、rpm 包下载 一、前提概要 在部署 gaussDB 的时候&#xff0c;安装代理时要求 python 版本满足 3.7.9&#xff0c;但已安装的麒麟 V10 内集成的 python 版…