当前位置: 首页 > 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工程师,专注基础和实战分享 ,欢迎咨询! &…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

<6>-MySQL表的增删查改

目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表&#xf…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...