【德哥说库系列】-ASM管理Oracle 19C单实例部署
📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
文章目录
- 前言
- 📣 1.环境准备
- 📣 2.yum安装依赖
- ✨ 2.1 yum源的配置
- ✨ 2.2 安装依赖
- 📣 3. database-preinstall
- 📣 4.目录及权限设置
- 📣 5.环境变量
- 📣 6.上传oracle安装包
- 📣 7.创建GI用户
- 📣 8.GI资源配置
- 📣 9.绑定共享磁盘
- 📣 10.创建GI目录
- 📣 11.配置GI环境变量
- 📣 12.上传GI安装包
- 📣 13.安装 cvuqdisk
- 📣 14.安装GI
- 14.ASM创建磁盘组
- 15.安装Oracle软件
- 16.DBCA建库
- 17.日常管理
前言
本文祥细阐述了ASM管理Oracle 19C单实例部署📣 1.环境准备
通过虚拟机克隆来提供部署需要OEL7.9的操作系统1.1 环境检查
[root@oel79 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
[root@oel79 ~]# cat /etc/oracle-release
Oracle Linux Server release 7.9
[root@oel79 ~]# df -TH
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 4.3G 0 4.3G 0% /dev
tmpfs tmpfs 4.4G 0 4.4G 0% /dev/shm
tmpfs tmpfs 4.4G 11M 4.4G 1% /run
tmpfs tmpfs 4.4G 0 4.4G 0% /sys/fs/cgroup
/dev/mapper/ol-root ext4 43G 4.4G 36G 11% /
/dev/sda1 ext4 1.1G 213M 741M 23% /boot
/dev/mapper/ol-u01 ext4 52G 55M 49G 1% /u01
tmpfs tmpfs 864M 29k 864M 1% /run/user/0
/dev/sr0 iso9660 4.9G 4.9G 0 100% /run/media/root/OL-7.9 Server.x86_64
[root@oel79 ~]# free -mtotal used free shared buff/cache available
Mem: 8238 634 6916 15 687 7338
Swap: 10239 0 10239
[root@oel79 ~]# free -gtotal used free shared buff/cache available
Mem: 8 0 6 0 0 7
Swap: 9 0 9
[root@oel79 ~]#
[root@oel79 ~]#
[root@oel79 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.6.20 netmask 255.255.255.0 broadcast 192.168.6.255inet6 fe80::e08:b228:bbf4:4168 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:6b:eb:f4 txqueuelen 1000 (Ethernet)RX packets 291 bytes 28044 (27.3 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 260 bytes 40332 (39.3 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1000 (Local Loopback)RX packets 176 bytes 13512 (13.1 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 176 bytes 13512 (13.1 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255ether 52:54:00:d9:8d:56 txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 01.2 挂存储
把新添加的磁盘虚拟设备节点改成从 1: 0 开始,第二个磁盘就是 1: 1, 重复添加磁盘的操作, 20G 一个、 0.5G 七个。##打开虚拟机的配置文件.vmx,将以下内容粘贴进去scsi1:0.deviceType = "disk"
scsi1:1.deviceType = "disk"
scsi1:2.deviceType = "disk"
scsi1:3.deviceType = "disk"
scsi1:4.deviceType = "disk"
scsi1:5.deviceType = "disk"
scsi1:6.deviceType = "disk"
scsi1:8.deviceType = "disk"
disk.locking ="FALSE"
diskLib.dataCacheMaxSize= "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
disk.EnableUUID="TRUE"[root@oel79 ~]# fdisk -l | grep dev
Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 209715199 103808000 8e Linux LVM
Disk /dev/sdg: 536 MB, 536870912 bytes, 1048576 sectors
Disk /dev/sdc: 536 MB, 536870912 bytes, 1048576 sectors
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Disk /dev/sdd: 536 MB, 536870912 bytes, 1048576 sectors
Disk /dev/sdf: 536 MB, 536870912 bytes, 1048576 sectors
Disk /dev/sde: 536 MB, 536870912 bytes, 1048576 sectors
Disk /dev/sdi: 536 MB, 536870912 bytes, 1048576 sectors
Disk /dev/sdh: 536 MB, 536870912 bytes, 1048576 sectors
Disk /dev/mapper/ol-root: 42.9 GB, 42949672960 bytes, 83886080 sectors
Disk /dev/mapper/ol-swap: 10.7 GB, 10737418240 bytes, 20971520 sectors
Disk /dev/mapper/ol-u01: 52.6 GB, 52609155072 bytes, 102752256 sectors1.3 关闭防火墙
[root@oel79 ~]# systemctl status firewalld.service
[root@oel79 ~]# systemctl stop firewalld.service
[root@oel79 ~]# systemctl disable firewalld.service1.4 关闭selinx的安全服务
[root@oel79 ~]# cat /etc/selinux/config
修改SELINUX=enforcing为SELINUX=disabled1.5 host解析
[root@oel79 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
##新增以下内容
192.168.6.20 oel79
📣 2.yum安装依赖
✨ 2.1 yum源的配置
[root@oel79 ~]# vi /etc/yum.repos.d/local.repo[server]
name=Linux
baseurl=file:///run/media/root/OL-7.9%20Server.x86_64
enabled=1
gpgcheck=0
✨ 2.2 安装依赖
[root@oel79 ~]# yum install compat-libcap1 ksh libaio-devel glibc-devel libstdc++-devel -y

📣 3. database-preinstall
## root用户下执行
[root@oel79 opt]# rpm -ivh oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
warning: oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ################################# [100%]
Updating / installing...1:oracle-database-preinstall-19c-1.################################# [100%]该 rpm会创建oracle用户、相关用户组、以及配置系统的参数
如 /etc/security/limits.d/oracle-database-preinstall-19c.conf## 设置 oracle 口令
echo "oracle" | passwd --stdin oracle
📣 4.目录及权限设置
##创建目录
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1/
chown -R oracle:oinstall /u01
chmod -R 775 /u01
📣 5.环境变量
## 以下内容oracle用户下执行su - oraclevi .bash_profile
export ORACLE_SID=prod
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/JRE:ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib##环境变量生效
source .bash_profile
📣 6.上传oracle安装包
注:软件包上传到 ORACLE_HOME 目录(oracle 用户解压)## 校验密钥
[root@oel79 opt]# sha256sum LINUX.X64_193000_db_home.zip
ba8329c757133da313ed3b6d7f86c5ac42cd9970a28bf2e6233f3235233aa8d8 LINUX.X64_193000_db_home.zip[oracle@oel79 ~]$ echo $ORACLE_HOME
/u01/app/oracle/product/19.0.0/dbhome_1chown oracle:oinstall -R LINUX.X64_193000_db_home.zip
chmod 755 -R LINUX.X64_193000_db_home.zip
unzip LINUX.X64_193000_db_home.zip
📣 7.创建GI用户
## 添加组
/usr/sbin/groupadd -g 1020 asmadmin
/usr/sbin/groupadd -g 1021 asmdba
/usr/sbin/groupadd -g 1022 asmoper## 添加grid用户
/usr/sbin/useradd -u 1102 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,asmoper,asmadmin,racdba grid## 改密码
echo "grid" | passwd --stdin grid## 修改oracle用户
usermod -g oinstall -G dba,asmadmin,asmdba,asmoper,backupdba,dgdba,kmdba,oper,racdba oracle
📣 8.GI资源配置
编辑资源配置,在最后一行里面增加
vi /etc/security/limits.conf
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
📣 9.绑定共享磁盘
[root@oel79 ~]# ls -l /dev/sd*
brw-rw----. 1 root disk 8, 0 Sep 3 09:55 /dev/sda
brw-rw----. 1 root disk 8, 1 Sep 3 09:55 /dev/sda1
brw-rw----. 1 root disk 8, 2 Sep 3 09:55 /dev/sda2
brw-rw----. 1 root disk 8, 16 Sep 3 09:55 /dev/sdb
brw-rw----. 1 root disk 8, 32 Sep 3 09:55 /dev/sdc
brw-rw----. 1 root disk 8, 48 Sep 3 09:55 /dev/sdd
brw-rw----. 1 root disk 8, 64 Sep 3 09:55 /dev/sde
brw-rw----. 1 root disk 8, 80 Sep 3 09:55 /dev/sdf
brw-rw----. 1 root disk 8, 96 Sep 3 09:55 /dev/sdg
brw-rw----. 1 root disk 8, 112 Sep 3 09:55 /dev/sdh
brw-rw----. 1 root disk 8, 128 Sep 3 09:55 /dev/sdifor i in b c d e f g h i; do echo "KERNEL==\"sd*[!0-9]\",ENV{DEVTYPE}==\"disk\",SUBSYSTEM==\"block\",PROGRAM==\"/usr/lib/udev/scsi_id -g -u -d\$devnode\",RESULT==\"`/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\",MODE=\"0660\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules; done;[root@oel79 ~]# cat /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd*[!0-9]",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d$devnode",RESULT=="36000c29653e86c5f015ab3d2e7e9bbae", SYMLINK+="asm-diskb", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*[!0-9]",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d$devnode",RESULT=="36000c29a052769eb43d01664ca55a894", SYMLINK+="asm-diskc", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*[!0-9]",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d$devnode",RESULT=="36000c29c19465340359f4408bd2a4dff", SYMLINK+="asm-diskd", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*[!0-9]",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d$devnode",RESULT=="36000c2906dc37bda2eb23b86b441831e", SYMLINK+="asm-diske", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*[!0-9]",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d$devnode",RESULT=="36000c29b6a9e99f76a60e4c1e2c47838", SYMLINK+="asm-diskf", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*[!0-9]",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d$devnode",RESULT=="36000c29b39f1155952c12d89c5823467", SYMLINK+="asm-diskg", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*[!0-9]",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d$devnode",RESULT=="36000c297eb5d57761da1c873da5cc8e4", SYMLINK+="asm-diskh", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*[!0-9]",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d$devnode",RESULT=="36000c29a6afc8636a8162bf7f92e9bdd", SYMLINK+="asm-diski", OWNER="grid", GROUP="asmadmin",MODE="0660"##生效
/sbin/udevadm trigger
##查看
[root@oel79 ~]# ls -l /dev/sd*
brw-rw----. 1 root disk 8, 0 Sep 3 12:19 /dev/sda
brw-rw----. 1 root disk 8, 1 Sep 3 12:19 /dev/sda1
brw-rw----. 1 root disk 8, 2 Sep 3 12:19 /dev/sda2
brw-rw----. 1 grid asmadmin 8, 16 Sep 3 12:19 /dev/sdb
brw-rw----. 1 grid asmadmin 8, 32 Sep 3 12:19 /dev/sdc
brw-rw----. 1 grid asmadmin 8, 48 Sep 3 12:19 /dev/sdd
brw-rw----. 1 grid asmadmin 8, 64 Sep 3 12:19 /dev/sde
brw-rw----. 1 grid asmadmin 8, 80 Sep 3 12:19 /dev/sdf
brw-rw----. 1 grid asmadmin 8, 96 Sep 3 12:19 /dev/sdg
brw-rw----. 1 grid asmadmin 8, 112 Sep 3 12:19 /dev/sdh
brw-rw----. 1 grid asmadmin 8, 128 Sep 3 12:19 /dev/sdi[root@oel79 ~]# ls -l /dev/asm*
lrwxrwxrwx. 1 root root 3 Sep 3 12:19 /dev/asm-diskb -> sdb
lrwxrwxrwx. 1 root root 3 Sep 3 12:19 /dev/asm-diskc -> sdc
lrwxrwxrwx. 1 root root 3 Sep 3 12:19 /dev/asm-diskd -> sdd
lrwxrwxrwx. 1 root root 3 Sep 3 12:19 /dev/asm-diske -> sde
lrwxrwxrwx. 1 root root 3 Sep 3 12:19 /dev/asm-diskf -> sdf
lrwxrwxrwx. 1 root root 3 Sep 3 12:19 /dev/asm-diskg -> sdg
lrwxrwxrwx. 1 root root 3 Sep 3 12:19 /dev/asm-diskh -> sdh
lrwxrwxrwx. 1 root root 3 Sep 3 12:19 /dev/asm-diski -> sdi
📣 10.创建GI目录
mkdir -p /u01/app/grid/19.0.0/grid
chown -R grid:oinstall /u01/app/grid
📣 11.配置GI环境变量
##切换到 grid 用户
su - gridvi /home/grid/.bash_profile
export ORACLE_SID=+ASM
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/grid/19.0.0/grid
export PATH=$ORACLE_HOME/bin:$PATH:/usr/local/bin
umask 022##环境变量生效
source /home/grid/.bash_profile
📣 12.上传GI安装包
## 校验密钥将 GI 包上传/u01/app/grid/19.0.0/grid 目录下,并解压(grid 用户)
注意: gi 包的所有者为 grid, 所属组为 oinstall[root@oel79 opt]# cp LINUX.X64_193000_grid_home.zip /u01/app/grid/19.0.0/grid
[root@oel79 opt]# chown grid:oinstall -R /u01/app/grid/19.0.0/grid
[root@oel79 opt]# chmod 775 -R /u01/app/grid/19.0.0/grid[grid@oel79 ~]$ cd $ORACLE_HOME
[grid@oel79 grid]$ unzip LINUX.X64_193000_grid_home.zip
📣 13.安装 cvuqdisk
[root@oel79 ~]# cd /u01/app/grid/19.0.0/grid/cv/rpm
[root@oel79 rpm]# export CVUQDISK_GRP=oinstall
[root@oel79 rpm]# rpm -ivh cvuqdisk-1.0.10-1.rpm
Preparing... ################################# [100%]
Updating / installing...1:cvuqdisk-1.0.10-1 ################################# [100%]
📣 14.安装GI
[root@oel79 ~]# su - grid
[grid@oel79 ~]$ cd $ORACLE_HOME
[grid@oel79 grid]$ echo $ORACLE_HOME
/u01/app/grid/19.0.0/grid
[grid@wl ~]$ export DISPLAY=192.168.6.1:0.0
[grid@wl grid]$ ./gridSetup.sh##root下执行脚本
/u01/app/oraInventory/orainstRoot.sh
/u01/app/grid/19.0.0/grid/root.sh##安装之后状态检查
[grid@oel79 grid]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dgONLINE ONLINE oel79 STABLE
ora.LISTENER.lsnrONLINE ONLINE oel79 STABLE
ora.asmONLINE ONLINE oel79 Started,STABLE
ora.onsOFFLINE OFFLINE oel79 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd1 ONLINE ONLINE oel79 STABLE
ora.diskmon1 OFFLINE OFFLINE STABLE
ora.evmd1 ONLINE ONLINE oel79 STABLE
--------------------------------------------------------------------------------




14.ASM创建磁盘组
##创建快闪区的磁盘组以及归档的磁盘组
[grid@oel79 grid]$ asmca


15.安装Oracle软件
[root@oel79 ~]# su - oracle
[oracle@oel79 ~]$ cd $ORACLE_HOME
[oracle@oel79 dbhome_1]$ export DISPLAY=192.168.6.1:0.0
[oracle@oel79 dbhome_1]$ ./runInstaller##root用户执行以下脚本
/u01/app/oracle/product/19.0.0/dbhome_1/root.sh

16.DBCA建库
[root@oel79 ~]# su - oracle
[oracle@oel79 ~]$ export DISPLAY=192.168.6.1:0.0
[oracle@oel79 ~]$ env | grep ORACLE_SID
ORACLE_SID=prod
[oracle@oel79 ~]$ dbca





17.日常管理
1.集群状态
[grid@oel79 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ARCH.dgONLINE ONLINE oel79 STABLE
ora.DATA.dgONLINE ONLINE oel79 STABLE
ora.FRA.dgONLINE ONLINE oel79 STABLE
ora.LISTENER.lsnrONLINE ONLINE oel79 STABLE
ora.asmONLINE ONLINE oel79 Started,STABLE
ora.onsOFFLINE OFFLINE oel79 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd1 ONLINE ONLINE oel79 STABLE
ora.diskmon1 OFFLINE OFFLINE STABLE
ora.evmd1 ONLINE ONLINE oel79 STABLE
ora.prod.db1 ONLINE ONLINE oel79 Open,HOME=/u01/app/oracle/product/19.0.0
2.数据库的状态
[oracle@oel79 ~]$ srvctl status database -d prod
Database is running.3.启动关闭顺序
关闭:先关闭 rdbms 实例---->关闭 ASM 实例
开启:先开启 ASM 实例---->再开启 rdbms 实例注意:重启 linux 后,ASM和RDBMS自动启动
相关文章:
【德哥说库系列】-ASM管理Oracle 19C单实例部署
📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…...
手写一个简单爬虫--手刃豆瓣top250排行榜
#拿到页面面源代码 request #通过re来提取想要的有效信息 re import requests import re url"https://movie.douban.com/top250"headers{"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/11…...
【word密码】如何限制word文件中部分内容?
Word文件中有一部分内容不想他人编辑,我们可以设置限制编辑,可以对一部分内容设置限制编辑,具体方法如下: 我们将需要将可以编辑的地方选中,然后打开限制编辑功能 然后勾选限制编辑设置界面中的【限制编辑】和【每个人…...
spring 自定义类型转换-ConverterRegistry
1背景介绍 一个应用工程里面,一遍会涉及到很多的模型转换,如DTO模型转DO模型,DO模型转DTO, 或者Request转DTO模型,总的来说,维护起来还是相对比较复杂。每涉及一个转换都需要重新写对应类的get或者set方法,…...
springboot实现发送短信验证码
目录 一、选择并注册短信服务提供商: 二、添加依赖: 三、配置短信服务信息: 四、编写发送短信验证码的方法: 五、调用发送短信验证码的方法: 一、选择并注册短信服务提供商: 1、选择一个可靠的短信服…...
2024王道408数据结构P144 T18
2024王道408数据结构P144 T18 思考过程 首先还是先看题目的意思,让我们在中序线索二叉树里查找指定结点在后序的前驱结点,这题有一点难至少对我来说…我讲的不清楚理解一下我做的也有点糊涂。在创建结构体时多两个变量ltag和rtag,当ltag0时…...
在windows下安装配置skywalking
1.下载地址 Downloads | Apache SkyWalkinghttp://skywalking.apache.org/downloads/ 2.文件目录说明 将文件解压后,可看到agent和bin目录: Agent:作为探针,安装在服务器端,进行数据采集和上报。 Config:…...
关于大模型参数微调的不同方法
Adapter Tuning 适配器模块(Adapter Moudle)可以生成一个紧凑且可扩展的模型;每个任务只需要添加少量可训练参数,并且可以在不重新访问之前任务的情况下添加新任务。原始网络的参数保持不变,实现了高度的参数共享 Pa…...
方法的引用第一版(method reference)
1、体验方法引用 在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿参数做操作那么考虑一种情况:如果我们在Lanbda中所指定的操作方案,已经有地方存在相同方案,那是否还有必要再重复逻辑呢&#…...
Android DataBinding 基础入门(学习记录)
目录 一、DataBinding简介二、findViewById 和 DataBinding 原理及优缺点1. findViewById的优缺点2. DataBinding的优缺点 三、Android mvvm 之 databinding 原理1. 简介和三个主要的实体DataViewViewDataBinding 2.三个功能2.1. rebind 行为2.2 observe data 行为2.3 observe …...
spring 错误百科
一、使用Spring出错根源 1、隐式规则的存在 你可能忽略了 Sping Boot 中 SpringBootApplication 是有一个默认的扫描包范围的。这就是一个隐私规则。如果你原本不知道,那么犯错概率还是很高的。类似的案例这里不再赘述。 2、默认配置不合理 3、追求奇技淫巧 4、…...
OpenCV基本操(IO操作,读取、显示、保存)
图像的IO操作,读取和保存方法 1.1 API cv.imread()参数: 要读取的图像 读取图像的方式: cv.IMREAD*COLOR:以彩色模式加载图像,任何图像的图像的透明度都将被忽略。这是默认参数 标志: 1 cv.IMREAD*GRAYSCALE :以…...
1.快速搭建Flask项目
一.Pear Admin Flask 官网文档:http://www.pearadmin.com/doc/index.html 1.1下载安装 # 下 载 git clone https://gitee.com/pear-admin/pear-admin-flask# 安 装 pip install -r requirements.txt1.2修改配置 applications下的config.py docker运行的修改dockerdata/conf…...
编程题四大算法思想(三)——贪心法:找零问题、背包问题、任务调度问题、活动选择问题、Prim算法
文章目录 贪心法找零问题(change-making problem)贪心算法要求基本思想适合求解问题的特征 背包问题0/1背包问题0/1背包问题——贪心法 分数背包问题 任务调度问题活动选择问题活动选择——贪心法最早结束时间优先——最优性证明 Prim算法 贪心法 我在当…...
core dump管理在linux中的前世今生
目录 一、什么是core dump? 二、coredump是怎么来的? 三、怎么限制coredump文件的产生? ulimit 半永久限制 永久限制 四、从源码分析如何对coredump文件的名字和路径管理 命名 管理 一些问题的答案 1、为什么新的ubuntu不能产生c…...
Springboot整合knife4j配置swagger教程-干货
开启swagger文档,直接上教程。 第一步:引入依赖 <!--swagger 依赖--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.3</version></d…...
C++ 中的 Pimpl 惯用法
C 中的 Pimpl 惯用法 介绍 Pimpl(Pointer to Implementation)是一种常见的 C 设计模式,用于隐藏类的实现细节,从而减少编译依赖和提高编译速度。本文将通过一个较为复杂的例子,展示如何使用智能指针(如 s…...
【个人博客系统网站】统一处理 · 拦截器
【JavaEE】进阶 个人博客系统(2) 文章目录 【JavaEE】进阶 个人博客系统(2)1. 统一返回格式处理1.1 统一返回类common.CommonResult1.2 统一返回处理器component.ResponseAdvice 2. 统一异常处理3. 拦截器实现3.1 全局变量SESSI…...
深入探索PHP编程:文件操作与输入/输出(I/O)
深入探索PHP编程:文件操作与输入/输出(I/O) 在PHP编程中,文件操作和输入/输出(I/O)是不可或缺的关键部分。无论是读取、写入文件,还是处理上传的文件,这些操作都是Web开发的重要组成…...
基于jeecg-boot的flowable流程自定义业务驳回到发起人的一种处理方式
有些粉丝,希望对自定义业务中,驳回到发起人进行处理,比如可以重新进行发起流程,下面就给出一种方式,当然不一定是最好的方式,只是提供一种参考而已,以后可以考虑动态根据流程状态或节点信息进行…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...
