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

Oracle 11g RAC群集部署

Oracle 11g RAC群集部署

1.环境介绍:

操作系统:Oracle Enterprise Linux 6.5
Oracle数据库:Oracle 11.2.0.4
集群软件:Oracle Grid Infrastructure 11.2.0.4

2.所需介质:

p13390677_112040_Linux-x86-64_1of7
p13390677_112040_Linux-x86-64_2of7
p13390677_112040_Linux-x86-64_3of7

3.操作系统信息:(两个节点执行)

# uname –a   (查看内核属性)
# free –m     (查看内存)
# df –h        (查看分区挂载及使用情况)
# ifconfig –a   (查看网卡状态)
# iptables –F       (清空防火墙策略)
# /etc/init.d/iptables save    (保存防火墙策略)
# /etc/init.d/iptables stop    (关闭防火墙)
# chkconfig iptables off       (关闭防火墙自动启动)
# /etc/init.d/NetworkManager stop    (关闭网络管理)
# chkconfig NetworkManager off       (关闭网络管理自动启动)禁用SELINUX(重启系统生效)# vi /etc/selinux/config
------修改
SELINUX=disabled
关闭网络动态配置# vi /etc/sysconfig/network
------添加如下内容
NOZEROCONF=yes

4.正式部署安装

4.1配置/etc/hosts(两个节点相同)

# vi /etc/hosts
------添加如下内容
#public
20.1.1.6       rac1.localdomain             rac1
20.1.1.7      rac2.localdomain            rac2#private
10.10.0.1     rac1-priv.localdoain          rac1-priv
10.10.0.2     rac2-priv.localdomain        rac2-priv#virtual
20.1.1.8       rac1-vip.localdomain         rac1-vip
20.1.1.9       rac2-vip.localdomain         rac2-vip#scan
20.1.1.10     scan-cluster.localdomain     scan-cluster

4.1.1配置网卡绑定

RAC1配置如下:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
------添加如下内容
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=none
NOBOOT=yes
USERTCL=no
MASTER=bond0
SLAVE=yes# vi /etc/sysconfig/network-scripts/ifcfg-eth1
------添加如下内容
DEVICE=eth1
TYPE=Ethernet
BOOTPROTO=none
NOBOOT=yes
USERTCL=no
MASTER=bond0
SLAVE=yes# vi /etc/sysconfig/network-scripts/ifcfg-eth2
------添加如下内容
DEVICE=eth2
TYPE=Ethernet
BOOTPROTO=none
NOBOOT=yes
USERTCL=no
MASTER=bond1
SLAVE=yes# vi /etc/sysconfig/network-scripts/ifcfg-eth3
------添加如下内容
DEVICE=eth3
TYPE=Ethernet
BOOTPROTO=none
USERTCL=no
MASTER=bond1
SLAVE=yes# vi /etc/sysconfig/network-scripts/ifcfg-bond0
------添加如下内容
DEVICE=bond0
TYPE=Ethernet
BOOTPROTO=none
USERTCL=no
ONBOOT=yes
IPADDR=20.1.1.6
NETMASK=255.255.255.0
GATEWAY=# vi /etc/sysconfig/network-scripts/ifcfg-bond1
------添加如下内容
DEVICE=bond1
TYPE=Ethernet
BOOTPROTO=none
USERTCL=no
ONBOOT=yes
IPADDR=10.10.0.1
NETMASK=255.255.255.0
GATEWAY=# /etc/init.d/network restart# vi /etc/modprobe.d/bonding.conf
------添加如下内容
alias bond0 bonding
alias bond1 bonding
options bonding max_bonds=2 miimon=200 mode=6# vi /etc/rc.d/rc.local
------追加如下内容
ifenslave bond0 eth0 eth1
ifenslave bond1 eth2 eth3
route add default gw 20.1.1.254# modprobe bonding
# /etc/init.d/network restart
# cat /proc/net/bonding/bond0
# cat /proc/net/bonding/bond1RAC2配置如下:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
------添加如下内容
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=none
USERTCL=no
MASTER=bond0
SLAVE=yes# vi /etc/sysconfig/network-scripts/ifcfg-eth1
------添加如下内容
DEVICE=eth1
TYPE=Ethernet
BOOTPROTO=none
USERTCL=no
MASTER=bond0
SLAVE=yes\# vi /etc/sysconfig/network-scripts/ifcfg-eth2
------添加如下内容
DEVICE=eth2
TYPE=Ethernet
BOOTPROTO=none
USERTCL=no
MASTER=bond1
SLAVE=yes\# vi /etc/sysconfig/network-scripts/ifcfg-eth3
------添加如下内容
DEVICE=eth3
TYPE=Ethernet
BOOTPROTO=none
USERTCL=no
MASTER=bond1
SLAVE=yes\# vi /etc/sysconfig/network-scripts/ifcfg-bond0
------添加如下内容
DEVICE=bond0
TYPE=Ethernet
BOOTPROTO=none
USERTCL=no
ONBOOT=yes
IPADDR=20.1.1.7
NETMASK=255.255.255.0
GATEWAY=\# vi /etc/sysconfig/network-scripts/ifcfg-bond1
------添加如下内容
DEVICE=bond1
TYPE=Ethernet
BOOTPROTO=none
USERTCL=no
ONBOOT=yes
IPADDR=10.10.0.2
NETMASK=255.255.255.0
GATEWAY=重启网络服务
# /etc/init.d/network restart新建网卡绑定配置文件
# vi /etc/modprobe.d/bonding.conf
------添加如下内容
alias bond0 bonding
alias bond1 bonding
options bonding max_bonds=2 miimon=200 mode=6设置网卡绑定模块随系统自动启动
# vi /etc/rc.d/rc.local
------追加如下内容
ifenslave bond0 eth0 eth1
ifenslave bond1 eth2 eth3
route add default gw 20.1.1.254加载bond模块
# modprobe bonding重启网络服务
# /etc/init.d/network restart检查bond状态
# cat /proc/net/bonding/bond0

4.2系统配置

4.2.1 修改/etc/sysctl.conf(两个节点相同)

内核参数修改\# vi /etc/sysctl.conf
------添加如下内容
kernel.shmall = 1073741824      (控制共享内存段数,shmmni*shmall为可以使用的共享内存大小,单位是byte)
fs.file-max = 6815744             (最大文件数量)
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096            (1个内存段的大小,单位为KB)
kernel.shmmax = 4398046511104      (最大内存段的大小,单位是KB,可设90%物理内存)
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
kernel.panic_on_oops = 1

4.2.2 生效内核参数(两个节点相同)

sysctl –p

4.2.3 修改/etc/security/limits.conf(两个节点相同)

配置grid和oracle用户的资源限制# vi /etc/security/limits.conf
------添加如下内容
grid soft nofile 1024     (默认值)
grid hard nofile 65536   (默认值)
grid soft nproc 2047     (默认值)
grid hard nproc 16384   (默认值)
grid soft stack 10240    (默认值)
grid hard stack 32768   (默认值)
grid soft memlock 241172480     (略小于物理内存,单位是KB例:256G内存则设置为230G)
grid hard memlock 241172480    (略小于物理内存,单位是KB例:256G内存则设置为230G)oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock 241172480
oracle hard memlock 241172480

4.3 配置YUM源并安装所需包

4.3.1 配置YUM源

先将默认的yum源配置文件移动,然后创建一个新的(两个rac相同)
# cd /etc/yum.repos.d/
# mv pubic-yum-ol6.repo pubic-yum-ol6.repo.bak
# vi yum.repo------添加如下内容
[Server]
name=Server
baseurl=file:///mnt/oel6u5/Server/
enabled=1
gpgcheck=0

4.3.2 将镜像挂载上(两个节点相同)

# mkdir –p /mnt/oel6u5      (创建镜像挂载路径)
# mount /dev/sr0 /mnt/oel6u5 –o loop      (/dev/sr0是镜像所在位置)

4.3.3 安装所需包(两个节点相同)

for i in binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf \
elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common \
glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel \
libgcc libgomp libstdc++ libstdc++-devel make numactl \
numactl-devel pdksh sysstat unixODBC unixODBC-devel libXext \
libXtst libX11 libXau libxcb libXi nfs-utils
do
rpm -q $i &>/dev/null || F="$F $i"
done ;echo $F;unset Fyum -y install binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel libXext libXtst libX11 libXau libxcb libXi nfs-utils

4.4 创建用户和组

4.4.1 创建组(两个节点相同)

groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 asmdba
groupadd -g 54325 asmoper
groupadd -g 54326 asmadmin

4.4.2 创建用户(两个节点相同)

useradd -u 54321 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
useradd -u 54322 -g oinstall -G dba,asmadmin,oper,asmdba oracle

4.4.3 设置口令(两个节点相同)

# passwd grid
# passwd oracle

4.5 创建安装目录并授权(两个节点相同)

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

4.6 配置环境变量

------RAC1
# su – grid
$ vi /home/grid/.bash_profile
------添加如下内容
export PATH
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=rac1.localdomain
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_SID=+ASM1
export PATH=$PATH:/usr/sbin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib# su - oracle
# vi /home/oracle/.bash_profile
------添加如下内容
export PATH
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME= rac1.localdomain
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=racdb1
export PATH=/usr/sbin:$PATH
export PATH=$PATH:/usr/sbin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib------RAC2
# su – grid
$ vi /home/grid/.bash_profile
------添加如下内容
export PATH
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=rac2.localdomain
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_SID=+ASM2
export PATH=/usr/sbin:$PATH
export PATH=$PATH:/usr/sbin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib# su - oracle
$ vi /home/oracle/.bash_profile
------添加如下内容
export PATH
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=rac2.localdomain
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=racdb2
export PATH=/usr/sbin:$PATH
export PATH=$PATH:/usr/sbin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

4.7配置UDEV(两个节点相同)

安装udev安装包
# yum –y install udev*
# fdisk –l获得硬盘WWID系统信息,将获得的信息填入RESULT==””双引号内
/sbin/scsi_id –g –u –d /dev/sdb
/sbin/scsi_id –g –u –d /dev/sdc
/sbin/scsi_id –g –u –d /dev/sdd
/sbin/scsi_id –g –u –d /dev/sde
……新建udev配置文件
# cd /etc/udev/rules.d/
# vi 99-oracle-asmdevices.rules
------添加以下内容(将上一步获得的WWID信息填入RESULT==””双引号内)
KERNEL=="sd*",BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="360000000000000000e00000000010001",NAME="crs1",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="360000000000000000e00000000010002",NAME="crs2",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="360000000000000000e00000000010003",NAME="crs3",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="360000000000000000e00000000010004",NAME="data1",OWNER="grid",GROUP="asmadmin",MODE="0660"然后start_udev 或/sbin/start_udev
把start_udev命令写道rc.local下面开机自启动

4.8 禁用NTP服务(两个节点相同)

# chkconfig ntpd off
# mv /etc/ntp.conf /etc/ntp.conf.bak

4.9 解压介质(在rac1执行)

# chown grid:oinstall p13390677_112040_Linux-x86-64_3of7
# chown oracle:oinstall p13390677_112040_Linux-x86-64_1of7
# chown oracle:oinstall p13390677_112040_Linux-x86-64_2of7
# chmod 775 p13390677_112040_Linux-x86-64_*
# mv p13390677_112040_Linux-x86-64_1of7 /home/oracle/
# mv p13390677_112040_Linux-x86-64_2of7 /home/oracle/
# mv p13390677_112040_Linux-x86-64_3of7 /home/grid/
# su – grid
$ unzip p13390677_112040_Linux-x86-64_3of7
$ su – oracle
$ unzip p13390677_112040_Linux-x86-64_1of7
$ unzip p13390677_112040_Linux-x86-64_2of7安装cvu相关的rpm包(两个节点都要安装)
\# cd /home/grid/grid/rpm/cvuqdisk-1.0.9-1.rpm

5. 配置信任关系

①在每个节点上创建 RSA密钥和公钥
使用grid用户登陆
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa②整合公钥文件
在rac1上执行以下命令
ssh rac1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys③分发整合后的公钥文件
在rac1上执行以下命令
scp ~/.ssh/authorized_keys rac2:~/.ssh/④测试ssh互信
在每个节点上运行以下命令,若不需要输入密码就显示系统当前日期,就说明SSH互信已经配置成功了。
ssh rac1 date
ssh rac1-priv date
ssh rac1.localdomain date
ssh rac1-priv.localdomain date
ssh rac2 date
ssh rac2-priv date
ssh rac2.localdomain date
ssh rac2-priv.localdomain date使用oracle用户登陆
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa②整合公钥文件
在rac1上执行以下命令
ssh rac1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys③分发整合后的公钥文件
在rac1上执行以下命令
scp ~/.ssh/authorized_keys rac2:~/.ssh/④测试ssh互信
在每个节点上运行以下命令,若不需要输入密码就显示系统当前日期,就说明SSH互信已经配置成功了。
ssh rac1 date
ssh rac1-priv date
ssh rac1.localdomain date
ssh rac1-priv.localdomain date
ssh rac2 date
ssh rac2-priv date
ssh rac2.localdomain date
ssh rac2-priv.localdomain date

安装

[grid@rac1 grid]$ export DISPLAY=10.10.0.1:0.0
[grid@rac1 grid]$ ./runInstaller1、安装集群
# su – grid
$ . /runInstaller2、安装Oracle Database 软件
#su - oracle
$./runInstaller3、创建ASM磁盘组
# su - grid  
$ asmca4、配置Oracle Database
#su - oracle
$ dbca

相关文章:

Oracle 11g RAC群集部署

Oracle 11g RAC群集部署 1.环境介绍: 操作系统:Oracle Enterprise Linux 6.5 Oracle数据库:Oracle 11.2.0.4 集群软件:Oracle Grid Infrastructure 11.2.0.4 2.所需介质: p13390677_112040_Linux-x86-64_1of7 p133…...

【C++、C++11】列表初始化、右值引用

文章目录📖 前言1. 统一的列表初始化1.1 { } 花括号初始化:1.2 std::initializer_list:2. 右值引用2.1 什么是左值和右值:2.2 右值的分类:2.3 左值引用和右值引用的比较2.3 右值的使用场景:2.4 新的类功能&…...

CMU15-445 Project.3总结

在线测试 Project #3 - Query Execution 以下是Project #3的网址,2022FALL的Project #3是实现一个查询执行,实现一系列算子,用于实现数据库内的SQL计算。项目中的 Query Execution 主要分为三个任务: Access Method Executors…...

002+limou+HTML——(2)HTML文档

000、前言 一般来说一个静态网页拥有四种元素:文字、图片、超链接、音频和视频(注意,即使在web网页中植入Javascript语言,也不一定是动态网页,真正的动态网页判断标准:是否和服务器产生交互) …...

红外传感器模块与 Arduino 连接

红外传感器模块与 Arduino 连接 原文地址 Arduino 红外传感器接口 红外**接近传感器或红外传感器它发射红外光以感知周围环境,并可用于检测物体的运动。由于这是一个无源传感器,它只能测量红外辐射。如果您曾经尝试过设计避障机器人或任何其他基于接近…...

NC xml配置文件不能生产java文件

在NC开发过程中,新增、或修改了xml文件,在开发工具eclipse中生成或重新生成Java文件,发现生成不了相对应的Java文件。如下图,选中xml文件后,右键点击SpringXml to Java 这种情况其实一般都是xml配置文件有问题&#…...

华为OD机试 - 五键键盘(C 语言解题)【独家】

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 使用说明本期题目:五键键盘…...

Kubernetes Service简介

Service 之前我们了解了Pod的基本用法,我们也了解到Pod的生命是有限的,死亡过后不会复活了。我们后面学习到的RC和Deployment可以用来动态的创建和销毁Pod。尽管每个Pod都有自己的IP地址,但是如果Pod重新启动了的话那么他的IP很有可能也就变…...

【c++类与对象 】

目录:前言一、基础引入1.类的定义2.类的权限3.类的封装4.类的实例化5.计算类对象的大小结构体内存对齐规则空类的大小二、this指针this引入this指针的特性经典例题三、类的六个默认成员函数1、构造 && 析构构造函数析构函数2、拷贝 && 赋值拷贝构造…...

【C++】内联函数auto范围for循环nullptr

🏖️作者:malloc不出对象 ⛺专栏:C的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录前言一、内联函数1.1 内联函数概念1.2…...

运维效率狂飙,都在告警管理上

随着数字化进程的加速,企业IT设备和系统越来越多,告警和流程中断风险也随之增加。每套系统和工具发出的警报,听起来像是一场喧嚣的聚会,各自谈论不同的话题。更糟糕的是,安全和运维团队正在逐渐丧失对告警的敏感度&…...

【每日随笔】中国当前社会阶层 ( 技术无关 | 随便写写 )

文章目录一、阶层划分根据收入划分的阶层根据分工逻辑划分根据权利划分二、根据社会地位和掌握的资源划分的阶层三、赚钱的方式四、如何进入高阶层看了一个有意思的视频 , 讲的是中国当前的社会阶层 , 感觉好有道理 , 搜索了一些资料 ; 参考资料 : 关于中国的社会阶层社会在分…...

【13种css选择器】学css选择器,这一篇就够了

举例形象让你学会,不搞官方话css所有的选择器相邻兄弟选择器后续兄弟选择器后代选择器子代选择器并集选择器(多重选择器)属性选择器伪类选择器伪元素选择器class选择器(类选择器)id选择器*选择器(通配符选择器)标签选择…...

1-1 微服务架构概述

文章目录微服务架构概述1-1. 系统进化理论概述集中式系统:分布式系统1-2. 系统进化理论背景1-3. 什么是微服务架构1-4. 微服务架构的优缺点1-5. 为什么选择 Spring Cloud 构建微服务认识 Spring Cloud2-1. Spring Cloud 是什么2-2. Spring Cloud 的版本2-3 Spring C…...

uniapp传参

//子传父子页面:sumbit() {console.log(this.formData, 传过去的内容对象)let pages getCurrentPages();let prevPage pages[pages.length - 2]; //上一个页面prevPage.$vm.getParams(this.formData); //重点$vmuni.navigateBack();},父页面接收:metho…...

面试官:说说你对 TypeScript 中函数的理解?与 JavaScript 函数的区别?

一、是什么 函数是 JavaScript 应用程序的基础,帮助我们实现抽象层、模拟类、信息隐藏和模块 在 TypeScript 里,虽然已经支持类、命名空间和模块,但函数仍然是主要定义行为的方式,TypeScript 为 JavaScript 函数添加了额外的功能…...

【测试】HD-G2L-IO评估板测试结果表

1. 测试对象HD-G2L-IOT基于HD-G2L-CORE V2.0工业级核心板设计,双路千兆网口、双路CAN-bus、2路RS-232、2路RS-485、DSI、LCD、4G/5G、WiFi、CSI摄像头接口等,接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。H…...

[2.2.1]进程管理——调度的概念、层次

文章目录第二章 进程管理调度的概念、层次(一)调度的基本概念(二)调度的三个层次(1)高级调度(2)低级调度(3)中级调度补充知识:进程的挂起态与七状…...

【JavaScript UI库和框架】上海道宁与Webix为您提供用于跨平台Web应用程序开发的JS框架及UI小部件

Webix是Javascript库 一种软件产品 用于加速Web开发的 JavaScript UI库和框架 Webix用于跨平台Web应用程序开发的JS框架,为您提供102个UI小部件和功能丰富的CSS/HTML5 JavaScript控件 开发商介绍 Webix团队由由热衷于创建高质量网络产品的专业人士组成&#xff…...

【微信小程序】-- WXS 脚本(二十九)

💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…...

案例19-遇见问题的临时解决方案和最终解决方案

目录1、背景介绍2、两种解决方案的概念1、临时解决方案:2、最终解决方案:3、排查问题过程4、总结站在用户的角度思考作为软件开发者5、升华1、背景介绍 首先说明这是系统很早之前的时候的一个功能,当时和学习通还有很强的耦合关系。在学习通…...

自指(Self-reference)

文章目录1. 在逻辑、数学和计算方面2. 在生物学中3. 在艺术4. 在语言中5. 在流行文化中6. 在法律中自我参照(Self-reference)是一个涉及指代自己或自己的属性、特征或行为的概念。它可以发生在语言、逻辑、数学、哲学和其他领域。 在自然语言或形式语言…...

关于Hanoi塔的实现

关于Hanoi塔的实现 首先,在此之前,我们需要了解一下递归这个东西; 在我看来,递归这个东西就是栈的进出; 向下:进栈回溯:出栈 在进栈之前标记状态,输入到栈中; #incl…...

原始套接字(Raw Socket)

原始套接字允许对较低层次的协议进行访问,如: IP协议,ICMP协议等一般用于自定义协议的实现,处理IP协议没有处理过的数据运输层下IP数据不关注内核是否已有注册的句柄来处理这些数据,都会将这些IP数据复制一份传递给与协议类型匹配的原始套接字,没有的话,直接丢弃该数据,并返回主…...

SparkSQL与Hive交互

SparkSQL与Hive交互一、内嵌Hive应用二、外部Hive应用三、运行Spark SQL CLI四、IDEA操作外部HiveSparkSQL可以采用内嵌Hive,也可以采用外部Hive。企业开发中,通常采用外部Hive。 一、内嵌Hive应用 内嵌Hive,元数据存储在Derby数据库。 &am…...

「题解」日常遇到指针面试题

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章 🔥座右铭:“不要等到什么都没有了,才下定决心去做” &#x1…...

实习生JAVA知识总结目录

一.JAVA基础学习 JAVA知识点全面总结1:零散知识 JAVA知识点全面总结2:面向对象 JAVA知识点全面总结3:String类的学习 JAVA知识点全面总结4:异常类学习 JAVA知识点全面总结5:IO流的学习 JAVA知识点全面总结6&…...

GMPC认证有哪些内容?

【GMPC认证有哪些内容?】GMP(GMP Good Manufacturing Practice)即良好生产规范,最早是美国国会为了规范药品生产而于1963年颁布的。这也是世界上第一部GMP。由于GMP在规范药品的生产,提高药品的质量,保证药品的安全方面效果非常明显&#xf…...

D2-Net: A Trainable CNN for Joint Description and Detection of Local Features精读

开源代码:D2-Net 1 摘要 在这项工作中,我们解决了在困难的成像条件下寻找可靠的像素级对应的问题。我们提出了一种由单一卷积神经网络发挥双重作用的方法:它同时是一个密集的特征描述符和一个特征检测器。通过将检测推迟到后期阶段&#xf…...

Java基础面试题

目录 一,Java基础 1.1.JDK和JRE有什么区别? 1.2.JAVA中的几种基本类型,各占用多少字节? 1.3.和equals的区别是什么? 1.4.final,finally,finalied有什么区别? 1.15.Java 中操作字符串都有哪些类?它们…...