Oracle RAC 19c集群搭建指南:实现高可用、高性能的数据库集群(超详细)

news2024/11/16 0:57:01

Oracle RAC 19c集群搭建指南:实现高可用、高性能的数据库集群(超详细)

1.新建节点

因为rac集群使用的是共享盘(esxi设置共享盘步骤如下):

首先添加一个iSCSI控制器

在这里插入图片描述

SCSI总线共享选择虚拟

在这里插入图片描述

添加硬盘

!!!注意:组成data盘的三块硬盘空间必须一致,metadata盘也需要三块空间一致的盘

在这里插入图片描述

新添加的盘(所有刚添加的!)要设置磁盘置备为‘厚置备,置零’,并且控制器选择新添加的iSCSI控制器,磁盘模式为独立持久

在这里插入图片描述

iso自行选择或者重新安装centos系统
总配置如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zbzzTQwF-1683161440622)(C:\Users\86132\AppData\Roam

cpu选择的4c,也可以调大一些

安装系统的话自行安装!
创建第二个节点,也可以多个节点,我这里因为资源不够问题,创建两个

在这里插入图片描述

!!!注意:节点二上也需要添加一个新的iSCSI控制器

在这里插入图片描述

节点二SCSI总线共享也选择‘虚拟’

在这里插入图片描述

节点二添加硬盘的话选择现有硬盘

在这里插入图片描述

找到rac1节点的盘,可以看到在rac1添加的6块共享盘,选择这6块盘

在这里插入图片描述

添加好之后,记得修改iSCSI控制器以及磁盘模式(磁盘模式选不选的吧,没啥关系)

在这里插入图片描述

下面五块盘一样的操作
!!!注意:我这里忘了添加第二块网卡(两个节点都要添加),一定要有两块网卡!!!
为什么Oraclerac19c要用两块网卡?
Oracle RAC 19c通常需要使用两个网卡,一个用于公共网络(Public Network),另一个用于专用网络(Private Network)。这是因为Oracle RAC是一种集群技术,它需要多台服务器之间进行高速数据传输和协作,以提供高可用性和高性能的数据库服务
具体来说,使用两个网卡的原因如下:

1.公共网络:公共网络用于连接客户端和应用程序到数据库服务。在Oracle RAC中,公共网络通常使用标准的TCP/IP协议,通过标准的以太网交换机进行通信。公共网络可以使用单独的物理网卡或者虚拟网络接口(VNIC)实现。

2.专用网络:专用网络用于连接Oracle RAC集群中的各个节点之间。在Oracle RAC中,专用网络通常使用InfiniBand或者其他高速互连技术,以实现低延迟、高带宽的数据传输。专用网络可以使用单独的物理网卡或者虚拟网络接口(VNIC)实现。

使用两个网卡可以有效地隔离客户端访问和节点间通信的流量,从而提高系统的安全性和稳定性。此外,专用网络的高速传输也可以显著提高Oracle RAC集群的性能和可扩展性。
如果软件安装选择的最小安装,安装好系统之后要记得安装一下图形化界面
参考文档:https://blog.csdn.net/weixin_43224306/article/details/127358806
GUI图形化界面安装的话,就不用

在这里插入图片描述

网络配置
!!!注意哈:内部通信的网卡不需要输入网关 DNS

在这里插入图片描述

硬盘配置
两个节点都是一样的,只选择第一块盘配置!

在这里插入图片描述

之后就是苦逼的等待安装好了

2.先决条件–主机配置–两台主机都操作

1.设置主机名和映射–双网卡

节点一

hostnamectl set-hostname rac1
vim /etc/hosts

在这里插入图片描述

节点二

hostnamectl set-hostname rac2
scp -p 192.168.110.56:/etc/hosts /etc/
在Oracle数据库中,SCAN(Single Client Access Name)是一种虚拟名称,用于代表整个Oracle RAC集群。它允许客户端应用程序通过单个名称来访问整个集群,而不需要知道实际的节点名称和IP地址。

具体来说,当客户端应用程序需要连接到Oracle RAC集群时,它可以使用SCAN名称来代替实际的节点名称或IP地址。在这种情况下,客户端会将请求发送到SCAN IP地址,然后由Oracle Clusterware根据负载均衡算法将请求转发到实际的节点上。这样,客户端就可以无需关心集群中的节点数量和位置,而只需要连接到一个虚拟名称即可。

修改内部通信网卡配置文件

在这里插入图片描述

修改完后重启网卡

systemctl restart network

2.新建账号和组

/usr/sbin/groupadd -g 54321 oinstall

/usr/sbin/groupadd -g 54322 dba

/usr/sbin/groupadd -g 54323 oper

/usr/sbin/groupadd -g 54324 backupdba

/usr/sbin/groupadd -g 54325 dgdba

/usr/sbin/groupadd -g 54326 kmdba

/usr/sbin/groupadd -g 54327 asmdba

/usr/sbin/groupadd -g 54328 asmoper

/usr/sbin/groupadd -g 54329 asmadmin

/usr/sbin/groupadd -g 54330 racdba

/usr/sbin/useradd -u 54321 -g oinstall -G dba,asmdba,oper oracle

/usr/sbin/useradd -u 54322 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,asmoper,asmadmin,racdba grid

echo "oracle" | passwd --stdin oracle

echo "grid" | passwd --stdin grid

3.关闭防火墙和selinux

防火墙:

systemctl stop firewalld.service
systemctl disable firewalld.service

关闭SELINUX:

sed -i  "s/SELINUX=enforcing/SELINUX=disabled/"  /etc/selinux/config
cat /etc/selinux/config

4.关闭时钟同步

systemctl stop chronyd
systemctl disable chronyd

移除chrony配置文件:(必须移除,否则校验NTP失败)
mv /etc/chrony.conf /etc/chrony.conf.bak

5.关闭avahi-daemon

systemctl stop avahi-daemon
systemctl disable avahi-daemon

6.创建目录

mkdir -p /u01/app/19.3.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle/product/19.3.0/db_1
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/

7.设置环境变量

vim /home/oracle/.bash_profile 

ORACLE_SID=cndba1;export ORACLE_SID
ORACLE_UNQNAME=cndba;export ORACLE_UNQNAME
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/19.3.0/db_1; export ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="YYYY:MM:DDHH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=american_america.ZHS16GBK; export NLS_LANG
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
umask 022
vim /home/grid/.bash_profile

PATH=$PATH:$HOME/bin
export ORACLE_SID=+ASM1 
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.3.0/grid
export PATH=$ORACLE_HOME/bin:$PATH:/usr/local/bin/:.
export TEMP=/tmp
export TMP=/tmp
export TMPDIR=/tmp
umask 022
export PATH

8.修改资源限制

cat >> /etc/security/limits.conf <<EOF
grid  soft  nproc  2047
grid  hard  nproc  16384
grid  soft  nofile  1024
grid  hard  nofile  65536
grid  soft  stack  10240
grid  hard  stack  32768
oracle  soft  nproc  2047
oracle  hard  nproc  16384
oracle  soft  nofile  1024
oracle  hard  nofile  65536
oracle  soft  stack  10240
oracle  hard  stack  32768
oracle soft memlock 3145728
oracle hard memlock 3145728
EOF

9.设置 PAM和NOZEROCONF

cat >> /etc/pam.d/login <<EOF
session required pam_limits.so
EOF
vi /etc/sysconfig/network增加以下内容
NOZEROCONF=yes
也可以直接执行如下语法完成修改:
echo "NOZEROCONF=yes"  >>/etc/sysconfig/network

10.修改内核参数

/etc/sysctl.d/sysctl.conf or /etc/sysctl.d/98-oracle.conf

cat >> /etc/sysctl.d/sysctl.conf <<EOF 
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
EOF

sysctl -p

11.安装必须要的包

cd /opt/

wget http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

yum localinstall -y oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

yum update -y  #大概1000多个包(我新安装的系统😁),等吧(安装过程中会卡一小会儿,正常现象)
yum clean all
yum install binutils  compat-libstdc++-33 compat-libstdc++-33.i686 -y gcc  gcc-c++  glibc  glibc.i686  glibc-devel  ksh  libgcc.i686  libstdc++-devel  libaio  libaio.i686  libaio-devel  libaio-devel.i686  libXext  libXext.i686  libXtst  libXtst.i686  libX11  libX11.i686  libXau  libXau.i686  libxcb  libxcb.i686  libXi  libXi.i686  make  sysstat  unixODBC  unixODBC-devel  zlib-devel  zlib-devel.i686 compat-libcap1 -y

12.配置互信(两个节点都要配置)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-olLHzLma-1683161440626)(C:\Users\86132\AppData\Roaming\Typora\typora-user-images\image-20230427103354151.png)]

ssh-copy-id rac1
ssh-copy-id rac2

切换用户grid

ssh-copy-id rac1
ssh-copy-id rac2

Oracle用户

在这里插入图片描述

ssh-copy-id rac1
ssh-copy-id rac2

3.配置共享盘

切换回root用户

lsblk  #看一下磁盘情况

在这里插入图片描述

生成asm命名的磁盘

使用udev配置Asm磁盘

vi asm.sh  //编辑脚本
#!/bin/bash
for i in b c d e f g ;
do
echo "KERNEL==\"sd*\",ENV{DEVTYPE}==\"disk\",SUBSYSTEM==\"block\",PROGRAM==\"/usr/lib/udev/scsi_id -g -u -d \$devnode\",RESULT==\"`/usr/lib/udev/scsi_id -g -u /dev/sd$i`\", RUN+=\"/bin/sh -c 'mknod /dev/asmdisk$i b  \$major \$minor; chown grid:asmadmin /dev/asmdisk$i; chmod 0660 /dev/asmdisk$i'\""
done

chmod +x asm.sh

./asm.sh  //运行脚本

KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29726af9e28f0fff1eb68332efe", RUN+="/bin/sh -c 'mknod /dev/asmdiskb b  $major $minor; chown grid:asmadmin /dev/asmdiskb; chmod 0660 /dev/asmdiskb'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29489b1433445c0e319c861b453", RUN+="/bin/sh -c 'mknod /dev/asmdiskc b  $major $minor; chown grid:asmadmin /dev/asmdiskc; chmod 0660 /dev/asmdiskc'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29860c1a4c08b7344006cdf81bb", RUN+="/bin/sh -c 'mknod /dev/asmdiskd b  $major $minor; chown grid:asmadmin /dev/asmdiskd; chmod 0660 /dev/asmdiskd'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c295280791ed04403e7f5fe4222a", RUN+="/bin/sh -c 'mknod /dev/asmdiske b  $major $minor; chown grid:asmadmin /dev/asmdiske; chmod 0660 /dev/asmdiske'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29b55e4b3acd130917d38bf2154", RUN+="/bin/sh -c 'mknod /dev/asmdiskf b  $major $minor; chown grid:asmadmin /dev/asmdiskf; chmod 0660 /dev/asmdiskf'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29fd176d048954f94dbd82bc1fd", RUN+="/bin/sh -c 'mknod /dev/asmdiskg b  $major $minor; chown grid:asmadmin /dev/asmdiskg; chmod 0660 /dev/asmdiskg'"

vi /etc/udev/rules.d/99-oracle-asmdevices.rules //把上面的运行脚本之后生成的内容复制到这个规则 

udevadm control --reload  //udevadm配置重载生效

udevadm trigger

 ll /dev/asm*   ##两个节点是一样的哦~

重启

reboot

4.上传介质,开始安装(只需要在节点1操作即可)

1.上传介质在这里插入图片描述

从Oracle 12cR2开始,软件直接解压缩到GRID_HOME 或者ORACLE_HOME,而不是在安装时复制过去。 该操作只需要在节点1上完成解压缩即可。

安装grid

设置grid安装包的属主属组

chown -R grid:oinstall LINUX.X64_193000_grid_home.zip 

切换为grid用户解压压缩包

unzip LINUX.X64_193000_grid_home.zip -d /u01/app/19.3.0/grid

2.安装cvuqdisk 两个节点都安装

节点一操作:  ##root用户安装
cd /u01/app/19.3.0/grid/cv/rpm

 rpm -ivh cvuqdisk-1.0.10-1.rpm

 scp -p /u01/app/19.3.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm rac2:/opt/
 
节点二操作:
cd /opt/
 rpm -ivh cvuqdisk-1.0.10-1.rpm

3.运行安装脚本gridSetup.sh

打开图形化界面,或者用vnc连接也可以

使用grid用户登录

在这里插入图片描述

在这里插入图片描述

执行安装脚本
./gridSetup.sh

注意:第一次执行一般会出现两个错误,一个是需要我们在grid 用户下执行脚本,第二个是需要我们配置图形显示 环境变量设置。如:export DISPLAY=192.168.110.56:0.0 查看电脑的ip地址 加上:0.0 0.0不行的话就1.0

在这里插入图片描述

在这里插入图片描述

配置集群名称以及scan名称
注意:scan name必须和 /etc/hosts里面scan的名字一样,cluster name 可以默认不改

这里选择添加
需要添加节点二
要保证心跳ip能互相ping通,而且互信没有问题

在这里插入图片描述

在这里插入图片描述

网段选择
一般的话会有一个virbr0网卡,自行百度删掉即可,或者在Use for中选择不使用选项

在这里插入图片描述

选择asm存储

在这里插入图片描述

选择配置GIMR

在这里插入图片描述

默认

在这里插入图片描述

选择asm磁盘组

在这里插入图片描述

正常模式需要两块盘,还需要一块冗余盘也就是一共需要三块

在这里插入图片描述

选择三块盘

在这里插入图片描述

选择剩余的三块

在这里插入图片描述

这里选择统一密码,生产环境选择单独的,嫌麻烦也可以选择统一密码

在这里插入图片描述

默认

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

确认grid的安装目录

在这里插入图片描述

默认

在这里插入图片描述

这里是自动执行脚本,不自动执行就不选

在这里插入图片描述

这里是在检查环境,选择ignore all
像我这个就没啥,如果有别的问题还是要解决一下的

在这里插入图片描述

安装前摘要

在这里插入图片描述

点击安装

在这里插入图片描述

执行脚本
当提示框弹出来的时候,我们先在节点一上使用root用户执行脚本,执行完成执行节点二的脚本。
执行过程中,会遇到各种各样的问题,1.ASM磁盘的名字不对 2.和节点二的互信不通
解决:重新配置ASM将宿主名字改为grid,即可完成;重新配置心跳IP;按照顺序执行脚本
先在rac1执行orainstROot.sh,执行完了之后在rac2执行,rac2执行完orainstRoot.sh脚本之后,在rac1执行root.sh脚本,然后rac2执行,等待脚本执行完毕之后再点击ok。 ##root用户下执行!!

在这里插入图片描述

执行第一个脚本,这是现在rac1上执行,再在rac2上执行的

在这里插入图片描述

执行第二个脚本,一定要按顺序来

在这里插入图片描述

节点一执行完毕后,在节点二执行

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

脚本执行完毕后,点击ok,然后等待他安装完成即可(又是一段很漫长的时间)

在这里插入图片描述

安装完成之后出了一个报错,能ping通自己设置的scanip就可以忽略掉

在这里插入图片描述

安装oracle

切换回Oracle用户

在这里插入图片描述

root用户修改db压缩包的属主属组

chown -R oracle:oinstall LINUX.X64_193000_db_home.zip 

oracle用户解压压缩包

 unzip LINUX.X64_193000_db_home.zip -d  /u01/app/oracle/product/19.3.0/db_1/

解压完成,进入

cd /u01/app/oracle/product/19.3.0/db_1/

执行安装脚本

./runInstaller 
选择software only

在这里插入图片描述

选择RAC

在这里插入图片描述

SSH互信验证

在这里插入图片描述

默认

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

我这个可以忽略全部,你们如果有别的的话,建议看一下哈

在这里插入图片描述

描述

在这里插入图片描述

在这里插入图片描述

在root用户下执行脚本,按顺序来
/u01/app/oracle/product/19.3.0/db_1/root.sh

在这里插入图片描述

执行完毕后点ok,然后就可以看到安装完成了

在这里插入图片描述

创建数据库实例

在Oracle用户下执行dbca
选择创建数据库

在这里插入图片描述

选择高级安装

在这里插入图片描述

选择General Purpose or Transaction Processing

在这里插入图片描述

检查节点互信

在这里插入图片描述

!!!注意:数据库名称可以写别的,但是SID必须写和你设置的Oracle用户环境变量里边的ORACLE_SID一致!

pdb不想创建就不选,默认是选的

在这里插入图片描述

选择数据盘

在这里插入图片描述

在这里插入图片描述

勾选快速回复  开启归档日志

默认

在这里插入图片描述

选择字符集

在这里插入图片描述

默认

在这里插入图片描述

使用统一密码

在这里插入图片描述

默认

在这里插入图片描述

校验时也是之前的dns和scan ip错误,可以忽略,进行下一步安装

在这里插入图片描述

在这里插入图片描述

等待安装完成即可(慢的很。。。)

在这里插入图片描述

可算安装完了。。

在这里插入图片描述

好~这个时候,激动的心颤抖的手,打开grid终端,输入
crsctl stat res -t
好好好,非常的好,可以看到安装成功😏

在这里插入图片描述

参考文档:https://blog.csdn.net/weixin_36065860/article/details/105772692
https://www.cndba.cn/dave/article/4073
https://oracle-base.com/articles/19c/oracle-db-19c-rac-installation-on-oracle-linux-7-using-virtualbox

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

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

相关文章

java:fastjson,jackson自定义反序列化器设计暨jackson反序列化时出现StackOverflowError异常的原因分析

问题描述 如下是一个Java Bean类&#xff0c;这是我的sql2java工具根据数据库表自动生成的对应表记录的Java类。 与之对应的数据库表定义如下&#xff1a; CREATE TABLE IF NOT EXISTS dc_device_channel (device_id int NOT NULL COMMENT XNAME:设备IDX,sid …

一种具备过载检测和打嗝式保护功能的MBUS主机电路

关于MBUS电路原理和简化电路见本篇文章&#xff0c; MBUS主机端简化版电路设计_Tech-Wang的博客-CSDN博客https://blog.csdn.net/jsf120/article/details/123378064?spm1001.2014.3001.5502 上篇中的电路已经验证通过并在产品中实际应用&#xff0c;本篇在此基础上增加了打嗝…

itop-3568开发板驱动学习笔记(25)设备树(四)GPIO 实例分析

《【北京迅为】itop-3568开发板驱动开发指南.pdf》 学习笔记 文章目录 GPIO 控制器必要属性其他属性 指定 GPIO 引脚 和时钟类似&#xff0c;GPIO 在设备树中也存在两层定义&#xff0c;首先是 GPIO 控制器&#xff0c;这部分由芯片原厂工程师编写&#xff0c;相当于 GPIO 底层…

恺撒密码太简单?这样一改,秒变地狱级难度(37)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 欢迎和猫妹一起&#xff0c;趣味学Python。 今日主题 看过上一篇文章的朋友&#xff0c;可能觉得这样加密&#xff0c;未免太简单了吧&#xff1f; 一共26个字母&#xf…

【java】一文让你了解透彻Java中的IO模型

文章目录 前言一、什么是IO二、常见的IO模型BIO&#xff08;Blocking IO&#xff09;如何优化NIO的面世 三、NIO&#xff08;Non-blocking/New IO&#xff09;同步非阻塞IO模型IO多路复用模型Java中的NIO 四、AIO&#xff08;Asynchronous IO&#xff09;总结 前言 本文只是说…

不要一昧的给孩子做骨密度检查,这些情况才要做

国内&#xff0c;骨密度检测应用非常广泛。也成了很多医院儿科常规的体检项目之一。而在儿科领域&#xff0c;对骨密度检查的必要性、临床参考意义一直颇有争议。 有专家说&#xff0c;“孩子需要及时检测骨密度&#xff0c;但是要用科学有效的检测方式……只有双能X线的检测方…

BetaFlight统一硬件配置文件研读

BetaFlight统一硬件配置文件研读 1. 源由2. 分析2.1 硬件SOC2.2 统一配置文件2.3 cli命令2.4 板级配置主要命令2.4.1 board_name2.4.2 manufacturer_id2.4.3 resource2.4.4 timer2.4.5 dma2.4.6 serial2.4.7 set2.4.8 feature 3. 实例研读3.1 C遗留配置3.2 BoardName - AOCODAR…

asp.net+C#基于web的失物招领系统ccA1A9程序

根据分析&#xff0c;该系统应该有二个角色&#xff1a;管理员、注册用户。系统需要赋予他们对应的功能和权限&#xff0c;具体如下&#xff1a; 管理员具有&#xff1a;管理管理注册用户、管理新闻模块、管理留言的功能和权限。 具有&#xff1a;浏览新闻、管理失物信息、参与…

【Linux内幕】DMA原理

1.前言 I/O设备与主存信息传送的控制方式分为程序轮询、中断、DMA、RDMA等。 2.DMA介绍 DMA&#xff0c;全称Direct Memory Access&#xff0c;即直接存储器访问。 DMA传输将数据从一个地址空间复制到另一个地址空间&#xff0c;提供在外设和存储器之间或者存储器和存储器之…

GAT1400-视图库标准

一、简述&#xff1a; GA/T 1400是于2017年首次发布关于图片、视频片段、文件等属性对象的传输协议。 GA/T 1400《公安视频图像信息应用系统》分成4个部分&#xff1a; 第一部分–通用技术要求&#xff1b; 第二部分–应用平台技术要求&#xff1b; 第三部分–数据库技术要…

前端学习之使用JavaScript

前情回顾&#xff1a;网页布局 JavaScript 简介 avaScript诞生于1995年&#xff0c;它的出现主要是用于处理网页中的前端验证。所谓的前端验证&#xff0c;就是指检查用户输入的内容是否符合一定的规则。比如&#xff1a;用户名的长度&#xff0c;密码的长度&#xff0c;邮箱的…

刘强:作业帮给OceanBase提了九条意见

3 月 25 日&#xff0c;第一届 OceanBase 开发者大会在北京举行&#xff0c; 作业帮数据库架构师刘强为大家带来了《作业帮基于 OceanBase 的 HTAP 实践》的分享 &#xff0c;为大家介绍了 OceanBase 上线作业帮半年来的体验与心得。 以下内容由大会演讲整理而成&#xff1a; …

提示工程玩转 ChatGPT

Prompt engineering is the skill of the future. 目录&#xff1a; 1. 简介 (Introduction) 2. 提示指南 (Prompt Guidelines) 2.1 指令要清晰明确 2.2 给模型时间思考 3. 迭代提示 (Iterative Prompt) 3.1 迭代过程 3.2 案例展示 4. 文本概括 (Text Summarization) 4.1 单文本…

五个有用的工具帮助您提高代码质量

前言 对于开发人员而言&#xff0c;代码质量一直是一个非常重要的话题。高质量的代码不仅可以提高应用程序的性能&#xff0c;还可以减少代码错误和维护成本。然而&#xff0c;如何确保代码质量呢&#xff1f;下面介绍五个有用的工具&#xff0c;可以帮助您提高代码质量。 So…

SLAM论文速递:SLAM—— NICER-SLAM: RGB SLAM的神经隐式场景编码—5.04(1)

论文信息 题目&#xff1a; NICER-SLAM:Neural Implicit Scene Encoding for RGB SLAM NICER-SLAM: RGB SLAM的神经隐式场景编码论文地址&#xff1a; https://arxiv.org/pdf/2302.03594.pdf发表期刊&#xff1a; Computer Vision and Pattern Recognition (cs.CV)标签 xxxx…

机器学习:协同过滤推荐算法

目录标题 题目&#xff1a;使用协同过滤&#xff08;基于用户&#xff09;构建简单的电影推荐系统1.1.1 实验目的1.1.2 实验内容及步骤1.1.3 程序运行过程、方法和运行结果1.1.4 实验小结 题目&#xff1a;使用协同过滤&#xff08;基于用户&#xff09;构建简单的电影推荐系统…

详解Mybatis之参数传递问题

编译软件&#xff1a;IntelliJ IDEA 2019.2.4 x64 操作系统&#xff1a;win10 x64 位 家庭版 Maven版本&#xff1a;apache-maven-3.6.3 Mybatis版本&#xff1a;3.5.6 目录 一. Mybatis中参数传递问题1.1 单个普通参数传递1.2 多个普通参数传递1.3 命名参数1.4 POJO(java Bean…

MySQL知识学习02(MySQL索引详解)

1、索引介绍&#xff1f; 索引是一种用于快速查询和检索数据的数据结构&#xff0c;其本质可以看成是一种排序好的数据结构。 索引的作用就相当于书的目录。打个比方: 我们在查字典的时候&#xff0c;如果没有目录&#xff0c;那我们就只能一页一页的去找我们需要查的那个字&…

鸿蒙Hi3861学习四-Huawei LiteOS介绍

一、什么是LitesOS Huawei LiteOS是华为针对物联网领域推出的轻量级物联网操作系统&#xff0c;是华为物联网战略的重要组成部分&#xff0c;具备轻量级、低功耗、互联互通、组件丰富、快速开发等关键能力。基于物联网领域业务特征打造领域性技术栈&#xff0c;为开发者提供“一…

MEET开发者 | 从无代码小白到大神,95后精神小伙的职场初体验

「无代码开发者故事」第一期的嘉宾是一位初入职场的95后&#xff0c;他保留了白羊座直率、热情的孩子天性&#xff0c;即便长期驻场也能“苦中作乐”&#xff0c;发挥自己旅游和摄影的爱好。初入职场的他在项目中主要承担需求分析的角色&#xff0c;2021年初受公司委派学习和评…