206项目-生产环境生产环境 RHEL7+OracleRHEL7+Oracle 11gR2 RAC集群项目

在这里插入图片描述
项目规划图
在这里插入图片描述

2.生产环境下TB级数据量Oracle11gr2RAC项目规划

tips:ip地址为多个
数据库架构 rac*2
ip地址:192.168.0.21/22/23/24/25(21-25)
业务系统:erp生产管理系统
主机名:fyserp21/fyserp22
OS:Rhel Linux 7.6系统 x86_64
db name(数据库名):fyserpdb
instance name:fyserp1/2
数据库版本:Oracle11.0.2.4+psu补丁
集群ip规划:至少6个公网(公司内部网络互相访问,不是指互联网,相当于局域网),2个私网(就是只规定这两台主机能互相访问)可直连
192.168.0.21 fyserp21 (主机名不能大于8位)
192.168.0.22 fyserp22 (主机名不能大于8位)
192.168.0.23 fyserp21vip (虚拟的,可以大过8位)
192.168.0.24 fyserp22vip (虚拟的,可以大过8位)
tips:fyserp21-fyserp22vip相对应
fyserp22-fyserp22vip相对应
如果其中一台比如fyserp21宕机了连接不上了,那么fyserp21vip、fyserp22vip就飘到fyserp22这台主机上去。
私网:
10.10.10.21 fyserprv21
10.10.10.22 fyserprv22
在这里插入图片描述
生产环境不能用直连,一旦一台宕机,另一台就连接不上了,所以需要专门的交换机去连接访问。

负载均衡器
192.168.0.25 fyserpdbscan
在这里插入图片描述
如上图ip 61宕了,63/64就会可能飘到62这台机器,所以对于用户来说,只会接触到ip65这台机子
具体来说,负载均衡器可以实现以下功能:

1.	分发流量:它将来自客户端的请求分发到多个服务器上,以避免任何一个服务器过载,保证每个服务器都能得到合理的工作负荷。
2.	故障转移:如果其中一个服务器发生故障或不可用,负载均衡器可以自动将流量重定向到可用的服务器上,保证服务的持续可用性。
3.	提升性能:通过同时利用多台服务器,负载均衡器可以提高整体性能和响应速度,从而更快地响应客户端请求。
4.	保障安全:负载均衡器可以通过一些安全策略来保护服务器免受恶意攻击,如分发流量以抵御DDoS攻击。

在使用主机名的时候,不要用 _ 大写字母-,避免出错。

Rac安装部署的时候是实际空间,所以这里我们采用了学习环境的数据来搭建部署。
在这里插入图片描述
在这里插入图片描述

3.RHEL Linux7 Rac主流2节点服务器系统的安装

shraestocage这个文件待会要用starwind创建磁盘时要用到的
在这里插入图片描述
然后先把这个ip改成10.10.10.1
在这里插入图片描述
61的机器然后添加一块硬盘(oracle)以及添加一块网卡,设置为仅主机模式
在这里插入图片描述
62台机器一样的步骤,

4.Oracle11gR2 RAC共享存储规划与配置

在这里插入图片描述
首先 我们可以看上面这张图,有两台erp核心数据库的主机,同时连接着两台交换机以及一台业务存储,其中如果san交换机1宕了,业务的就会飘到交换机2接管。可以看到每台erp核心数据库主机都是两条链路,从交换机处再分出两条,也就是说一台主机有四条链路,这些链路就称为多路径,这里没有业务存储这个硬件环境,这里我们采用软件去模拟这个场景。一般生产环境中用的是光纤SAN网络,这里是测试环境我们使用的是ip SAN(ISCSI),生产环境也有用ip SAN的,但是一般不建议,光纤SAN速度能达到16Gb以上,则io可以达到1g以上了,ip SAN则是万兆的速率,io速率可能才1g左右。
介绍

  1. 光纤 SAN:
    • 光纤 SAN 通常使用的是 Fibre Channel 协议。 • Fibre Channel 是一种高性能、低延迟的专用网络技术,专门设计用于连接存储设备和服务器。
  2. IP SAN: • IP SAN 使用基于IP的网络进行数据传输,可以使用两种主要的协议: • iSCSI(Internet Small Computer System Interface):iSCSI 是一种基于TCP/IP的协议,它允许将SCSI协议封装在TCP/IP网络中以连接存储设备和服务器。 • FCoE(Fibre Channel over Ethernet):FCoE 允许 Fibre Channel 帧在以太网网络上传输,从而将光纤 SAN 技术扩展到以太网网络中。

tips:配置之前,先安装starwind虚拟存储软件,方便部署

4.1配置虚拟存储与多路径(学习环境)

(学习环境,如果是生产环境,那么把这里上面的 2 项目规划列出来,由存储工程师去配置)

根据上面的规划:
192.168.0.16
192.168.0.137
192.168.0.138
192.168.0.139
在本地网络中添加上面那些ip,根据自己的电脑网关,我的是192.168.0:
在这里插入图片描述
上面这图是已经配置好了,为什么要配置呢,因为我们这边把电脑本地的当业务存储(模拟的)。
然后我们把starwind软件重新打开:
① 点击statwind server-右键添加相关的ip,或者点击Scan StarWind servers…扫描相关的ip。
在这里插入图片描述
配置好以后双击ip打开
在这里插入图片描述
targets目标:从服务器连接过来
右键添加Targets: 第一个目标连接是fyserpdb
在这里插入图片描述
接着和对上面的步骤一样添加第二个叫fyserpbackup;

devices磁盘: 开始添加设备-选择virtual Hard Disk(虚拟磁盘)-
Image File device(映像文件)-Create new virtual disk(创建新的虚拟磁盘)-

My Computer\D\oracleracR1\shraestocage\ dggrid1.mg

–下一步–Write-tho-rough caching-attach to the existing target–选择fyserpdb这个磁盘–下一步直至完成!
根据下面的磁盘把它添加进来(学习环境的数据)

备份这个盘/backup01-03三个盘各3G,生产环境的时候才是3tb,
操作:–下一步–Write-tho-rough caching-attach to the existing target–选择fyserpbackup这个磁盘–下一步直至完成!
在这里插入图片描述
到这里共享存储就是配置完成了,总共建立13个盘。

生产数据空间的要求:
dggrid1: 1g * 3
dggrid2: 1g * 3
dgsystem: 200g =200g * 1 系统表空间,临时表空间,UNDO,参数文件,控制文件,重做日志文件dgrecovery :600g =200g * 3 归档日志,一周归档量dgdata01: 1TB=200 * 5 生产数据空间

4.2配置ISCSI连接存储(学习环境)

tips 如果公司要求做IP SAN的话,就从4.2开始顺着步骤开始配置。
(学习和生产环境都有,但生产建议使用光纤网络,不建议ip SAN)
01.加入 disk.EnableUUID = "TRUE"到虚拟机文件(主机21/22)
在这里插入图片描述
一定是加到文件的末尾然后必须得是这个配置文件,加入这个UUID避免发生冲突。
02.运行虚拟机,打开xshell连接两台机器并同时安装
03.挂载光驱
先把创建的普通用户删了
先把创建的普通用户删了

[root@fyserp22 ~]#  userdel fyserp211
[root@fyserp22 ~]# cat /etc/inittab
[root@fyserp22 ~]#  systemctl set-default TARGET.target multi-user.target
mount /dev/cdrom /mnt
yum install iscsi-initiator-utils -y
#先查找这个文件后在安装,否则下面一行命令执行不了
ls -lsa /mnt/Packages/iscsi*
会出现下面几个包
[root@fyserp22 ~]# ls -lsa /mnt/Packages/iscsi*
421 -r--r--r--. 233 fyserp22 fyserp22 431068 829 2016 /mnt/Packages/iscsi-initiator-utils-6.2.0.873-35.el7.i686.rpm
418 -r--r--r--. 234 fyserp22 fyserp22 427296 829 2016 /mnt/Packages/iscsi-initiator-utils-6.2.0.873-35.el7.x86_64.rpm
 85 -r--r--r--. 234 fyserp22 fyserp22  87024 829 2016 /mnt/Packages/iscsi-initiator-utils-iscsiuio-6.2.0.873-35.el7.x86_64.rpm
 我们安装的是/mnt/Packages/iscsi-initiator-utils-6.2.0.873-35.el7.x86_64.rpm
rpm -ivh /mnt/Packages/iscsi-initiator-utils-6.2.0.873-35.el7.x86_64.rpm

接下来查一下这个UUID,如果有一串密钥就是成功
cat /etc/iscsi/initiatorname.iscsi
#这些选项用于控制 scsi_id 在识别 SCSI 设备时的行为
echo "options=--whitelisted --replace-whitespace" > /etc/scsi_id.config
#设置为开机启动
systemctl enable iscsi
systemctl start iscsi

我们上面用了starwind配置其 ip
在这里插入图片描述
首先输入: lsblk -more 就会发现主机的磁盘并没有在这里,所以操作下面的命令

现在我们用iscsiadmc-m去搜索这些ip地址(整个命令的含义是告诉 iscsiadm 在 192.168.0.174这个地址上执行 SendTargets 类型的发现操作,以查找可用的 iSCSI 目标。),其中3261是这个ip的主机端口,而这里搜索的3260是服务端的ip端口,两者是不一样的。

iscsiadm -m discovery -t st -p 192.168.0.174:3260   #后面加不加3260都可以,会自动识别
iscsiadm -m discovery -t st -p 192.168.0.175:3260
iscsiadm -m discovery -t st -p 192.168.0.176:3260
iscsiadm -m discovery -t st -p 192.168.0.177:3260

如果你不确定你的端口是不是3260,则需要在服务端键入命令 netstat -an |grep 3260或者 netstat -an |grep 3260,如果返回值为空这代表着没有监听任何东西,这时候我们得把确保 iSCSI 服务已经启动:
通过运行 systemctl status iscsidsystemctl status iscsi 来查看服务的运行状态。

接下来输入返回的值为:

[root@fyserp22 ~]# iscsiadm -m discovery -t st -p 192.168.0.175:3260
192.168.0.175:3260,-1 iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpdb
192.168.0.175:3260,-1 iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpbackup
[root@fyserp22 ~]# iscsiadm -m discovery -t st -p 192.168.0.175:3260
192.168.0.175:3260,-1 iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpdb
192.168.0.175:3260,-1 iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpbackup
[root@fyserp22 ~]# iscsiadm -m discovery -t st -p 192.168.0.176:3260
192.168.0.176:3260,-1 iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpdb
192.168.0.176:3260,-1 iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpbackup
[root@fyserp22 ~]# iscsiadm -m discovery -t st -p 192.168.0.177:3260
192.168.0.177:3260,-1 iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpdb
192.168.0.177:3260,-1 iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpbackup

这说明了这四条链路都是共同指向相同的目标,或者是在网络中存在某种重定向

[root@fyserp22 ~]# export LANG=en_us
[root@fyserp22 ~]# lsblk   查看一下这个磁盘的信息

接下来输入下面命令使用 iscsiadm 工具连接到指定的 iSCSI 目标:
(-m node: 指定 iscsiadm 执行与 iSCSI 节点(node)相关的操作。
-T iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpdb: 指定目标(Target)的 iSCSI Qualified Name (IQN)。这是目标的唯一标识符。
-p 192.168.0.174:3260: 指定 iSCSI 目标的 IP 地址和端口号。
-l: 表示登录 (login),尝试建立到指定 iSCSI 目标的连接。)

iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpdb -p 192.168.0.174:3260 -l

iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpdb -p 192.168.0.175:3260 -l

iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpdb -p 192.168.0.176:3260 -l

iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpdb -p 192.168.0.177:3260 -l

iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpbackup  -p 192.168.0.174:3260 -l

iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpbackup  -p 192.168.0.175:3260 -l

iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpbackup  -p 192.168.0.176:3260 -l

iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpbackup  -p 192.168.0.177:3260 -l

输入以后返回值是这样:

[root@fyserp22 ~]# iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpdb -p 192.168.0.176:3260 -l
Logging in to [iface: default, target: iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpdb, portal: 192.168.0.176,3260] (multiple)
Login to [iface: default, target: iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpdb, portal: 192.168.0.176,3260] successful.

你要是想查一下或者验证是否成功可以使用以下命令检查已登录的 iSCSI 设备:

iscsiadm -m session -P 3

最后more一下这些盘就全部出来了:

lsblkb -more

总共13个盘,每个链路是4条,则13*4=57

[root@fyserp21 ~]# lsblk |wc -l
59

因为虚拟机盘7个,所以这里是配置完全正确

相关的操作可以看这个日志:
tail -200f /var/log/messages
还有更详细的查看相关的节点信息:

cd /var/lib/iscsi/nodes/
 ls -1R
[root@fyserp22 nodes]# ls -1R
.:
iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpbackup
iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpdb

./iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpbackup:
192.168.0.174,3260
192.168.0.175,3260
192.168.0.176,3260
192.168.0.177,3260

./iqn.2008-08.com.starwindsoftware:192.168.0.174-fyserpdb:
192.168.0.174,3260
192.168.0.175,3260
192.168.0.176,3260
192.168.0.177,3260

到这里就输入 reboot重启一下,如果所有的东西还在说明配置成功,如果消失了,说明就是拉稀了,重新配了!

4.3配置多路径及ASM磁盘(生产环境)

tips 如果公司要求生产环境用光纤网络,则使用4.3-4.4这两小节去配置。

#查询已安装的 multipath 相关软件包:是与多路径配置相关的软件包。
[root@fgerp61 ~]# rpm -qa |grep multipath
device-mapper-multipath-0.4.9-123.el7.x86_64
device-mapper-multipath-libs-0.4.9-123.el7.x86_64

把上面两个安装上去
如果没安装的话你可以挂载下光盘:

mount /dev/cdrom /mnt

然后搜一下:将相关的包安装上去。

ls -lsa /mnt/Packages/device-mapper-*
#加载 dm-multipath 模块
modprobe dm-multipath
#加载 dm-round-robin 模块:这是加载 dm-round-robin 模块的命令,它提供了一种多路径设备使用轮询算法的方法。
modprobe dm-round-robin

#查看已加载的 dm_multipath 模块:
lsmod |grep dm_multipath

#启用 multipathd 服务:systemctl enable 用于在系统启动时启用服务,这里是启用 multipathd 服务。
systemctl enable multipathd
systemctl start multipathd

#multipath -v2 用于显示详细的多路径配置信息。这对于诊断和调试多路径设置非常有用
multipath -v2

输入multipath -v2会弹出以下信息:

[root@fyserp21 ~]# multipath -v2
Nov 11 11:14:16 | /etc/multipath.conf does not exist, blacklisting all devices.
Nov 11 11:14:16 | A default multipath.conf file is located at
Nov 11 11:14:16 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
Nov 11 11:14:16 | You can run /sbin/mpathconf to create or modify /etc/multipath.conf

意思就是说/etc/multipath.conf does not exist这个不存在,你得拷贝cp一份放到/etc/multipath.conf下面
所以,我们现在输入以下命令解决:

cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/multipath.conf

就可以解决其中的路径问题,然后查一下具体的多路径条数,显示52代表着是正确的。

multipath -ll |grep policy |wc -l
[root@fyserp21 ~]# multipath -ll |grep policy |wc -l 
52

还可以输入: multipath -ll | grep mpath
查看相关的uuid,这会显示所有与多路径相关的设备,这些设备的名字通常以 “mpath” 开头。如果有任何多路径设备,您应该能够在这个输出中看到它们的信息。

遇到任何问题,可能需要检查系统日志或 multipath.conf 配置文件以获取更多信息。

接下来操作:

iscsiadm -m session -P 3 | grep "Attached"
[root@fyserp22 ~]# iscsiadm -m session -P 3 | grep "Attached"
                Attached SCSI devices:
                        Attached scsi disk sdc          State: running
                        Attached scsi disk sdd          State: running
                        Attached scsi disk sdg          State: running
                        Attached scsi disk sdk          State: running
                        Attached scsi disk sdn          State: running
                        Attached scsi disk sdq          State: running
                        Attached scsi disk sdy          State: running
                        Attached scsi disk sdaf         State: running
                        Attached scsi disk sdaq         State: running
                        Attached scsi disk sdat         State: running
                Attached SCSI devices:
                        Attached scsi disk sde          State: running
                        Attached scsi disk sdh          State: running
                        Attached scsi disk sdj          State: running
                        Attached scsi disk sdm          State: running
                        Attached scsi disk sdr          State: running
                        Attached scsi disk sdv          State: running
                        Attached scsi disk sdae         State: running
                        Attached scsi disk sdar         State: running
                        Attached scsi disk sdau         State: running
                        Attached scsi disk sdax         State: running
                Attached SCSI devices:
                        Attached scsi disk sdf          State: running
                        Attached scsi disk sdl          State: running
                        Attached scsi disk sdo          State: running
                        Attached scsi disk sds          State: running
                        Attached scsi disk sdu          State: running
                        Attached scsi disk sdx          State: running
                        Attached scsi disk sdaa         State: running
                        Attached scsi disk sdap         State: running
                        Attached scsi disk sdav         State: running
                        Attached scsi disk sday         State: running
                Attached SCSI devices:
                        Attached scsi disk sdi          State: running
                        Attached scsi disk sdp          State: running
                        Attached scsi disk sdt          State: running
                        Attached scsi disk sdw          State: running
                        Attached scsi disk sdz          State: running
                        Attached scsi disk sdas         State: running
                        Attached scsi disk sdaw         State: running
                        Attached scsi disk sdaz         State: running
                        Attached scsi disk sdba         State: running
                        Attached scsi disk sdbb         State: running
                Attached SCSI devices:
                        Attached scsi disk sdab         State: running
                        Attached scsi disk sdac         State: running
                        Attached scsi disk sdag         State: running
                Attached SCSI devices:
                        Attached scsi disk sdad         State: running
                        Attached scsi disk sdah         State: running
                        Attached scsi disk sdak         State: running
                Attached SCSI devices:
                        Attached scsi disk sdai         State: running
                        Attached scsi disk sdal         State: running
                        Attached scsi disk sdam         State: running
                Attached SCSI devices:
                        Attached scsi disk sdaj         State: running
                        Attached scsi disk sdan         State: running
                        Attached scsi disk sdao         State: running

然后现在我要做的是前十个路径:fdisk -l /dev/ 显示设备的分区信息,包括分区的起始扇区、结束扇区、类型
Attached SCSI devices:

  fdisk -l /dev/sdc |grep "/dev/sd"        
  fdisk -l /dev/sdd |grep "/dev/sd"         
  fdisk -l /dev/sdg |grep "/dev/sd"       
  fdisk -l /dev/sdk  |grep "/dev/sd"   
  fdisk -l /dev/sdn  |grep "/dev/sd"    
  fdisk -l /dev/sdq  |grep "/dev/sd"       
  fdisk -l /dev/sdy  |grep "/dev/sd"         
  fdisk -l /dev/sdaf  |grep "/dev/sd"      
  fdisk -l /dev/sdaq  |grep "/dev/sd"      
  fdisk -l /dev/sdat  |grep "/dev/sd"   

输入上面的命令就会返回下面的值

  [root@fyserp22 ~]# fdisk -l /dev/sdc |grep "dev/sdc"
磁盘 /dev/sdc:1073 MB, 1073741824 字节,2097152 个扇区
[root@fyserp22 ~]#  fdisk -l /dev/sdc |grep "Disk /dev/sd"  
[root@fyserp22 ~]#  fdisk -l /dev/sdc |grep " /dev/sd"  
磁盘 /dev/sdc:1073 MB, 1073741824 字节,2097152 个扇区
[root@fyserp22 ~]# fdisk -l /dev/sdc |grep "/dev/sd"        
磁盘 /dev/sdc:1073 MB, 1073741824 字节,2097152 个扇区
[root@fyserp22 ~]#   fdisk -l /dev/sdd |grep "/dev/sd"         
磁盘 /dev/sdd:1073 MB, 1073741824 字节,2097152 个扇区
[root@fyserp22 ~]#   fdisk -l /dev/sdg |grep "/dev/sd"       
磁盘 /dev/sdg:1073 MB, 1073741824 字节,2097152 个扇区
[root@fyserp22 ~]#   fdisk -l /dev/sdk  |grep "/dev/sd"   
磁盘 /dev/sdk:1073 MB, 1073741824 字节,2097152 个扇区
[root@fyserp22 ~]#   fdisk -l /dev/sdn  |grep "/dev/sd"    
磁盘 /dev/sdn:1073 MB, 1073741824 字节,2097152 个扇区
[root@fyserp22 ~]#   fdisk -l /dev/sdq  |grep "/dev/sd"       
磁盘 /dev/sdq:1073 MB, 1073741824 字节,2097152 个扇区
[root@fyserp22 ~]#   fdisk -l /dev/sdy  |grep "/dev/sd"         
磁盘 /dev/sdy:5368 MB, 5368709120 字节,10485760 个扇区
[root@fyserp22 ~]#   fdisk -l /dev/sdaf  |grep "/dev/sd"      
磁盘 /dev/sdaf:2147 MB, 2147483648 字节,4194304 个扇区
[root@fyserp22 ~]#   fdisk -l /dev/sdaq  |grep "/dev/sd"      
磁盘 /dev/sdaq:1073 MB, 1073741824 字节,2097152 个扇区
[root@fyserp22 ~]#   fdisk -l /dev/sdat  |grep "/dev/sd" 

下面的命令也可以查某个命令的通道信息:
方法一

cat /proc/partitions | grep sdc
for i in $(cat /proc/partitions | awk '{print$4}' | grep sd | grep [a-z]$); do
  echo "### $i: $(/lib/udev/scsi_id --whitelisted --device=/dev/$i)";
done

方法二

ls -l /dev/disk/by-id

然后接下来查一下上面磁盘的UUID:

for i in c d g k n 	q y af aq at; do
  echo "sd$i: $(/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i)";
done
#这样过滤就不会有重复的:
[root@fyserp22 ~]# for i in c d g k n q y af aq at; do
>   echo "sd$i: $(/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i)";
> done
# 现在我把它一个个磁盘规划,与starwind的磁盘是相一致的。
sdc: 2465d4a9b1fa45367    dggrid01
sdd: 2626f59a858910b78    dggrid02
sdg: 291302d0e9e4b920c    dggrid03
sdk: 26ff563155d52b7dc    dggrid04
sdn: 25b2fbce7f3de7f2d    dggrid05
sdq: 29234aca642b0f067    dggrid06
sdy: 28e14a7b91d887beb    dgsystem1
sdaf: 22f50ddfcd36cd0d8   dgrecovery1
sdaq: 27d39572afb7f4284   dgdata01
sdat: 28c9424c6066299dd   dgdata01

cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/

下面的是命令加注释,方便理解:

# 检查 iSCSI 会话,并显示已连接的设备信息
iscsiadm -m session -P 3 | grep "Attached"

# 查看所有磁盘分区,筛选包含 sdc 的行
cat /proc/partitions | grep sdc

# 遍历 /proc/partitions 中所有 sd 字符结尾的行,并显示相应的 SCSI ID 
for i in $(cat /proc/partitions | awk '{print$4}' | grep sd | grep [a-z]$); do
  echo "### $i: $(/lib/udev/scsi_id --whitelisted --device=/dev/$i)";
done

# 列出所有设备的符号链接
ls -l /dev/disk/by-id

# 遍历设备名列表,显示每个设备的 SCSI ID
for i in c d e g i m n p s v; do
  echo "sd$i: $(/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i)";
done

# 复制默认的 multipath 配置文件到 /etc/multipath.conf
cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/

下面这段是官方文件
复制这个文件以后,可以根据下面的文档来设置
在这里插入图片描述

#defaults {
 # udev_dir /dev
 # polling_interval 5
 # selector "round-robin 0"
 # path_grouping_policy failover
 # getuid_callout "/lib/dev/scsi_id --whitelisted --device=/dev/%n"
 # prio const
 # path_checker directio
 # rr_min_io 1000
 # rr_weight uniform
 # failback manual
 # no_path_retry fail
 # user_friendly_names    yes
#}   

把上面的整改成下面的默认值就可以了,其他的就没必要设置
在这里插入图片描述

实际操作如下:
下面的wwid 3600…这四个是两台主机中的固定的两个磁盘组,就是把他们加入黑名单,防止动用这些磁盘:
在这里插入图片描述
打开这个
more /etc/multipath.conf
然后把下面这段代码

#blacklist_exceptions {
    
    
#       device {
    
    
#               vendor  "IBM"
#               product "S/390.*"
#       }
#}
#defaults {
    
    
#       polling_interval        10
#       path_selector           "round-robin 0"
#       path_grouping_policy    multibus
#       uid_attribute           ID_SERIAL
#       prio                    alua
#       path_checker            readsector0
#       rr_min_io               100
#       max_fds                 8192
#       rr_weight               priorities
#       failback                immediate
#       no_path_retry           fail
#       user_friendly_names     yes
#}

复制出来改成下面的代码

blacklist {
    
    
wwid 36000c2916fc5dcf716424b04d39b0d55
wwid 36000c291e89d35e90b704bc3b8a34b1f
wwid 36000c294de5beb32cedef7e01adf63f5
wwid 36000c29cb817abebb922608e817f0587
# devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
# devnode "^hd[a-z]"
# devnode "^sd[a-b]"
}
      #defaults {
    
    
# path_selector "round-robin 0"
# path_grouping_policy multibus
# rr_min_io  100
# max_fds  8192
# rr_weight  priorities
# failback  immediate
# user_friendly_names  yes
# find_multipaths    yes
#}

下面这些使用的盘符的别名:把它写到multipaths里面

multipaths {
    
    
multipath {
    
    
wwid 2465d4a9b1fa45367
alias asm-dggrid1
}
multipath {
    
    
wwid 2626f59a858910b78
alias asm-dggrid2
}
multipath {
    
    
wwid 291302d0e9e4b920c
alias asm-dggrid3
}
multipath {
    
    
wwid 26ff563155d52b7dc
alias asm-dggrid4
}
multipath {
    
    
wwid 25b2fbce7f3de7f2d
alias asm-dggrid5
}
multipath {
    
    
wwid 29234aca642b0f067
alias asm-dggrid6
}
multipath {
    
    
wwid 28e14a7b91d887beb
alias asm-dgsystem1
}
multipath {
    
    
wwid 22f50ddfcd36cd0d8
alias asm-dgrecovery1
}
multipath {
    
    
wwid 27d39572afb7f4284
alias asm-dgdata01
}
multipath {
    
    
wwid 28c9424c6066299dd
alias asm-dgdata02
}
}

下面的方便复制:

blacklist {
    
    
wwid 36000c2916fc5dcf716424b04d39b0d55
wwid 36000c291e89d35e90b704bc3b8a34b1f
#wwid 36000c294de5beb32cedef7e01adf63f5
#wwid 36000c29cb817abebb922608e817f0587
# devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
# devnode "^hd[a-z]"
# devnode "^sd[a-b]"
}
defaults {
    
    
 path_selector "round-robin 0"
 path_grouping_policy multibus
 rr_min_io  100
 max_fds  8192
 rr_weight  priorities
 failback  immediate
 user_friendly_names  yes
 find_multipaths    yes
}
multipaths {
    
    
multipath {
    
    
wwid 2465d4a9b1fa45367
alias asm-dggrid1
}
multipath {
    
    
wwid 2626f59a858910b78
alias asm-dggrid2
}
multipath {
    
    
wwid 291302d0e9e4b920c
alias asm-dggrid3
}
multipath {
    
    
wwid 26ff563155d52b7dc
alias asm-dggrid4
}
multipath {
    
    
wwid 25b2fbce7f3de7f2d
alias asm-dggrid5
}
multipath {
    
    
wwid 29234aca642b0f067
alias asm-dggrid6
}
multipath {
    
    
wwid 28e14a7b91d887beb
alias asm-dgsystem1
}
multipath {
    
    
wwid 22f50ddfcd36cd0d8
alias asm-dgrecovery1
}
multipath {
    
    
wwid 27d39572afb7f4284
alias asm-dgdata01
}
multipath {
    
    
wwid 28c9424c6066299dd
alias asm-dgdata02
}
}

把上面做好的复制,然后删除掉原来的rm -f /etc/multipath.conf然后再新建一个 vi /etc /multipath.conf 把复制的内容粘贴到里面保存退出然后重启一下
systemctl stop multipathd
systemctl start multipathd
multipath -F
multipath -v2 再进行格式化
multipath -ll 可以查看到配置好的磁盘组
强制移除多路径映射:
如果以上步骤无法解决问题,可以尝试使用 multipath -f 命令来强制移除多路径映射。

multipath -f 盘符的名称
multipath -f asm-dgrecovery1

下面可以过滤一下看到13*4=52条多路径的

[root@fyserp21 ~]# multipath -ll |grep policy |wc -l
13
[root@fyserp21 ~]# multipath -ll |grep "active ready running" |wc -l
52



配置完多路径以后可以设置asm可以访问多路径
有三种方法,但是我们这里采用官方的方法去做:

第一步:

打开有两个文件:/etc/udev/rules.d/99-oracle.rules/etc/udev/rules.d/99-oracle-asmdevices.rules

99-oracle.rules:

KERNEL=="dm-*", OWNER="grid", GROUP="asmadmin", MODE="0660"

99-oracle-asmdevices.rules:

KERNEL=="dm-*", NAME="asm-dgrecovery01", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="dm-*", NAME="asm-dgsystem01", OWNER="grid", GROUP="asmadmin", MODE="0660"

这些规则的作用是根据设备的内核名或其他属性设置设备节点的权限和名称。第一个文件中的规则适用于所有 dm-* 设备,而第二个文件中的规则则明确指定了设备节点的名称。

请确保这些规则的语法是正确的。如果有任何问题,你可以检查 udev 的日志,通常在 /var/log/udev 目录中,以获取更多信息。

第二步打开
[root@fyserp22 ~]# dmsetup  ls |grep asm
asm-dgrecovery1 (253:7)
asm-dggrid6     (253:5)
asm-dggrid5     (253:4)
asm-dggrid4     (253:3)
asm-dgdata02    (253:9)
asm-dggrid3     (253:2)
asm-dgdata01    (253:8)
asm-dggrid2     (253:1)
asm-dgsystem1   (253:6)
asm-dggrid1     (253:0)

根据上面的查询可以看到相关的设备名称

for i in asm-dggrid1 asm-dggrid2 asm-dggrid3 asm-dggrid4 asm-dggrid5 \
         asm-dggrid6 asm-dgsystem1 asm-dgrecovery1 asm-dgdata01 asm-dgdata02;
do
    uuid=$(udevadm info --query=all --name=/dev/mapper/$i | grep -i dm_uuid | awk -F'=' '{print $2}')
    printf 'KERNEL=="dm-*", ENV{DM_UUID}=="%s", OWNER="grid", GROUP="asmadmin", MODE="0660"\n' "$uuid"
done

上面的是这个脚本将为每个设备生成一行 udev 规则,其中包含设备的 DM_UUID。

第三步将上面的UUID的规则写道

vi /etc/udev/rules.d/99-oracle-asmdevices.rules

vi /etc/udev/rules.d/99-oracle-asmdevices.rules

KERNEL=="dm-*",ENV{
    
    DM_UUID}=="mpath-2465d4a9b1fa45367",OWNER="grid",GROUP=
"asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{
    
    DM_UUID}=="mpath-2626f59a858910b78",OWNER="grid",GROUP=
"asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{
    
    DM_UUID}=="mpath-291302d0e9e4b920c",OWNER="grid",GROUP=
"asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{
    
    DM_UUID}=="mpath-26ff563155d52b7dc",OWNER="grid",GROUP=
"asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{
    
    DM_UUID}=="mpath-25b2fbce7f3de7f2d",OWNER="grid",GROUP=
"asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{
    
    DM_UUID}=="mpath-29234aca642b0f067",OWNER="grid",GROUP=
"asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{
    
    DM_UUID}=="mpath-28e14a7b91d887beb",OWNER="grid",GROUP=
"asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{
    
    DM_UUID}=="mpath-22f50ddfcd36cd0d8",OWNER="grid",GROUP=
"asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{
    
    DM_UUID}=="mpath-27d39572afb7f4284",OWNER="grid",GROUP=
"asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{
    
    DM_UUID}=="mpath-28c9424c6066299dd",OWNER="grid",GROUP=
"asmadmin",MODE="0660"

这些 udev 规则是用来在 Linux 系统中配置设备的设备节点属性的。udev 是 Linux 系统中用于设备管理的守护进程,负责在设备发生变化时执行相应的规则。

KERNEL==“dm-*”:指定了这些规则适用于设备映射(device-mapper,通常用于 LVM 或 Multipath)的块设备。
ENV{DM_UUID}==“mpath-XXXX”:通过设备的 DM_UUID 属性匹配设备。在这里,规则根据设备映射的唯一标识符(mpath-XXXX)进行匹配。
OWNER=“grid”:设置设备节点的所有者为 grid 用户。
GROUP=“asmadmin”:设置设备节点的所属组为 asmadmin 组。
MODE=“0660”:设置设备节点的权限为 0660,允许所有者和所属组具有读写权限。

这样配置的好处在于,当系统检测到设备映射插入时,udev 将按照这些规则设置设备节点的属性,确保其归属于指定的用户和组,并设置适当的权限。这对于 Oracle ASM(Automatic Storage Management)等应用程序来说可能是必需的,因为它们需要对底层存储设备有特定的访问权限。

总体而言,udev 规则用于动态配置和管理设备节点的属性,确保系统中的设备得到正确的配置。

第四步:
/usr/sbin/groupadd -g 5001 oinstall
/usr/sbin/groupadd -g 5002 dba
/usr/sbin/groupadd -g 5003 oper
/usr/sbin/groupadd -g 5004 asmadmin
/usr/sbin/groupadd -g 5005 asmoper
/usr/sbin/groupadd -g 5006 asmdba
/usr/sbin/useradd -u 6001 -g oinstall -G dba,asmdba,oper oracle

/usr/sbin/groupadd -g 5001 oinstall:创建名为 oinstall 的组,并将其 GID(Group ID)设置为 5001。
这一系列的命令通常是在配置 Oracle 数据库时使用,以确保系统上有适当的用户和组,并且这些用户和组具有正确的权限和访问级别。

第五步:
# 创建用户 "grid",设置 UID 为 6002,将主组设置为 "oinstall",并添加到其他附加组中
/usr/sbin/useradd -u 6002 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid

# 重新加载 udev 规则,以更新对设备的管理
/sbin/udevadm control --reload-rules

# 触发 udev 事件,以便应用任何设备更改的新规则
/sbin/udevadm trigger --type=devices --action=change

最后这将列出所有以 /dev/dm 开头的设备映射,并显示它们的详细信息,包括文件大小、权限、所有者等。

ls -lsa /dev/dm*

到这里就是配置完成了!
配置相关的信息在红帽企业版设备映射多路径中查询

tips:可以查看红帽企业版 Linux 6 设备映射多路径 设备映射多路径(DM Multipath)配置及管理版 1
4.4.配置多路径及备份磁盘(生产环境)

这里我并不知道三个备份盘的UUIID是多少,因为我这里有很多重复的,所以怎么解决呢,我么可以使用:

cat /proc/partitions | awk '/sd[a-z]$/ {print "### "$4": "system("blockdev --getsize64 /dev/"$4)}'

这个命令会列出所有以 “sd” 开头的设备,并显示它们的大小。它使用 blockdev --getsize64 命令来获取设备大小,然后通过 awk 进行格式化输出。

这里做的时候备份磁盘backup01- 03
(iscsiadm -m session -P 3 |grep “Attached”)

for i in  n z w; do
    echo "### sd$i: $(/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i)"
done

下面这是uuid

 sdn: 22d15cac80dc6e81c Size: 3221225472
 sdz: 272a1d85a802db1d8 Size: 3221225472
 sdw: 249a1e9422e787cf9 Size: 3221225472

写到里面来

vi /etc/multipath.conf
multipath {
    
    
wwid
22d15cac80dc6e81c 
alias
fs-backup01
}
multipath {
    
    
wwid
272a1d85a802db1d8 
alias
fs-backup02
}
multipath {
    
    
wwid
249a1e9422e787cf9 
alias
fs-backup03
}

重新启动、格式化

systemctl stop multipathd
systemctl start multipathd
multipath -F
multipath -v2
multipath -ll

我们把三个备份盘做成pv:
第一步先:

 [root@fyserp22 ~]# ls -lsa /dev/mapper/fs*
0 lrwxrwxrwx. 1 root root 7 1119 12:38 /dev/mapper/fs-backup01 -> ../dm-9
0 lrwxrwxrwx. 1 root root 8 1119 12:38 /dev/mapper/fs-backup02 -> ../dm-11
0 lrwxrwxrwx. 1 root root 8 1119 12:38 /dev/mapper/fs-backup03 -> ../dm-10

现在用上面已经创建好的备份磁盘做pv,vg,lv等

'/dev/mapper/ '这个是到安装grid时搜索磁盘时会用到
pvcreate /dev/mapper/fs-backup01 /dev/mapper/fs-backup02 /dev/mapper/fs-backup03

vgcreate backupvg /dev/mapper/fs-backup01 /dev/mapper/fs-backup02 /dev/mapper/fs-backup03

这条命令的意思是创建一个名为 “backuplv” 的逻辑卷,大小为 9000 兆字节(M),并将其归属到卷组 “backupvg”。

lvcreate -n backuplv -L 9000M backupvg

mkfs.xfs /dev/backupvg/backuplv: 格式化逻辑卷 /dev/backupvg/backuplv 为 XFS 文件系统。
mkdir /backup: 创建一个名为 “backup” 的目录。
mount /dev/backupvg/backuplv /backup: 将已格式化的逻辑卷 /dev/backupvg/backuplv 挂载到目录 “/backup”。

mkfs.xfs /dev/backupvg/backuplv
mkdir /backup  
mount /dev/backupvg/backuplv /backup  

vi /etc/fstab
把下面的写到fstab
#/dev/backupvg/backuplv /backup xfs defaults 0 0
tips fstab这个文件不要开机自启,否则出现大问题,记住,这个tec/fstab这个文件只需要一台机器创建就好了,不要每台机器都这么做。生产环境不建议操作

cp -r /etc/lvm /etc/lvm-bak
umount /backup
 cd /
 umount /backup
 vgchange -an backupvg
 vgexport backupvg

在做数据迁移的时候可以用这个办法去映射,很方便。
第一台21主机已经创建好pv ,vg,lv了
换到另一台机器输入这些即可,不需要再创vg,lv等 这下面是换到22这台主机操作的命令(把backup放在第一台中):

vgscan
pvscan
 vgimport backupvg
vgchange -ay backupvg
vgs
lvs
 mkdir /backup
mount /dev/backupvg/backuplv /backup

如果回切到原来的机器或者其台机器步骤和上面的一样

 umount /backup

然后在其他机器重新输入这些命令即可

 vgchange -an backupvg
vgexport backupvg
 vgimport backupvg
 vgchange -ay backupvg
 mount /dev/backupvg/backuplv /backup

下面是一些对上面命令的注释:
cp -r /etc/lvm /etc/lvm-bak: 复制整个 /etc/lvm 目录到 /etc/lvm-bak,用于备份 LVM 配置。
umount /backup: 卸载挂载在 “/backup” 目录上的文件系统。
cd /: 切换当前工作目录到根目录相当退出来backup目录,避免出错。
umount /backup: 再次尝试卸载 “/backup” 目录,
vgchange -an backupvg: 禁用卷组 “backupvg”。
vgexport backupvg: 导出卷组 “backupvg” 的配置信息,将其从系统中移除,通常在卸载卷组后执行。
vgscan: 扫描系统中的卷组。
pvscan: 扫描系统中的物理卷。
vgimport backupvg: 导入之前导出的卷组配置信息。
vgchange -ay backupvg: 启用卷组 “backupvg”。
vgs: 显示所有卷组的信息。
lvs: 显示所有逻辑卷的信息。
mkdir /backup: 创建 “/backup” 目录,用于挂载文件系统。
mount /dev/backupvg/backuplv /backup: 挂载逻辑卷 “/dev/backupvg/backuplv” 到 “/backup” 目录。

5.0 Oracle11gR2 RAC for linux 7系统参数设置

–hosts文件配置(两台机器都要这样操作)
vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
#public ip
192.168.0.21 fyserp21
192.168.0.22 fyserp22
#priv ip
10.10.10.21 fyserprv21
10.10.10.22 fyserprv22
#vip ip
192.168.0.21fyserp21vip (虚拟的,可以大过8位)
192.168.0.22 fyserp22vip (虚拟的,可以大过8位)
#scan ip
192.168.0.25 fyserpdbscan
有时候ping不通,有可能是网卡没启动,这时候 输入 ifconfig看一下,然 cd /etc/sysconfig/network-scripts/
查看一下没有获取到ip的fcfg-ens34,输入vi ifcfg-ens34,进到里面把ONBOOT=no
改成ONBOOT="yes"
,开机启动。

配置语言环境
echo "export LANG=en_US" >> ~/.bash_profile
 cat ~/.bash_profile
创建用户组(很关键,权限没弄好数据库打补丁时将会报错,没有足够的权限)
/usr/sbin/groupadd -g 5001 oinstall
/usr/sbin/groupadd -g 5002 dba
/usr/sbin/groupadd -g 5003 oper
/usr/sbin/groupadd -g 5004 asmadmin
/usr/sbin/groupadd -g 5005 asmoper
/usr/sbin/groupadd -g 5006 asmdba
/usr/sbin/useradd -u 6001 -g oinstall -G dba,asmdba,oper oracle
/usr/sbin/useradd -u 6002 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
passwd grid
passwd oracle
mkdir -p /oracle/app/grid
chown -R grid:oinstall /backup
mkdir -p /oracle/app/11.2.0/grid
chown -R grid:oinstall /oracle
mkdir -p /oracle/app/oraInventory
chown -R grid:oinstall /oracle/app/oraInventory
mkdir -p /oracle/app/oracle
chown -R oracle:oinstall /oracle/app/oracle
chmod -R 775 /oracle
mount /dev/cdrom /mnt
cd /etc/yum.repos.d

mkdir bk
mv *.repo bk/

echo "[EL]" >> /etc/yum.repos.d/itpux.repo
echo "name =Linux 7.x DVD" >> /etc/yum.repos.d/itpux.repo
echo "baseurl=file:///mnt" >> /etc/yum.repos.d/itpux.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/itpux.repo
echo "enabled=1" >> /etc/yum.repos.d/itpux.repo

tips:上面的是这将创建一个名为 itpux.repo 的文件,其中包含您指定的内容

cat /etc/yum.repos.d/itpux.repo
yum -y install autoconf
yum -y install automake
yum -y install binutils
yum -y install binutils-devel
yum -y install bison
yum -y install cpp
yum -y install dos2unix
yum -y install ftp
yum -y install gcc
yum -y install gcc-c++
yum -y install lrzsz
yum -y install python-devel
yum -y install compat-db*
yum -y install compat-gcc-34
yum -y install compat-gcc-34-c++
yum -y install compat-libcap1
yum -y install compat-libstdc++-33
yum -y install compat-libstdc++-33.i686
yum -y install glibc-*
yum -y install glibc-*.i686
yum -y install libXpm-*.i686

yum -y install libXp.so.6
yum -y install libXt.so.6
yum -y install libXtst.so.6
yum -y install libXext
yum -y install libXext.i686
yum -y install libXtst
yum -y install libXtst.i686
yum -y install libX11
yum -y install libX11.i686
yum -y install libXau
yum -y install libXau.i686
yum -y install libxcb
yum -y install libxcb.i686
yum -y install libXi
yum -y install libXi.i686
yum -y install libgcc_s.so.1
yum -y install libstdc++.i686
yum -y install libstdc++-devel
yum -y install libstdc++-devel.i686
yum -y install libaio
yum -y install libaio.i686
yum -y install libaio-devel
yum -y install libaio-devel.i686
yum -y install ksh
yum -y install libXp
yum -y install libaio-devel
yum -y install numactl
yum -y install numactl-devel
yum -y install make -y
yum -y install sysstat -y
yum -y install unixODBC
yum -y install unixODBC-devel
yum -y install elfutils-libelf-devel-0.97
yum -y install elfutils-libelf-devel
yum -y install redhat-lsb-core
yum -y install unzip
修改资源限制参数
vi /etc/security/limits.conf
写到# End of file的后面才会生效
把下面的写到里面保存以后,切到grid或者oracle用户下用
ulimit -a  来检查一下就会发现生效了

# ORACLE SETTING
grid soft nproc 16384
grid hard nproc 16384
grid soft nofile 65536
grid hard nofile 65536
grid soft stack 32768
grid hard stack 32768

oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft stack 32768
oracle hard stack 32768
oracle hard memlock 2000000
oracle soft memlock 2000000

在保存文件之后,运行 ulimit -a 来使更改生效。

修改nproc参数
这段注释在提醒用户参考相关文档以确保正确地修改配置文件
# Amend the "/etc/security/limits.d/20-nproc.conf" file as described below.
# See MOS Note [ID 1487773.1]
echo "* - nproc 16384" > /etc/security/limits.d/20-nproc.conf
echo "session required pam_limits.so" >> /etc/pam.d/login
cat /etc/pam.d/login

5. 更改启动级别 从5级至3级

默认启动的是5级别的图形界面,改成3就是把没有必要的图形服务关闭,大大提升性能。
或者直接键入

systemctl set-default multi-user.target

vi  /etc/inittab

进到里面输入:$
跳出这个界面”:把 id:5改成3即可。
控制给用户分配的资源

echo “session required pam_limits.so” >> /etc/pam.d/login
cat /etc/pam.d/login

修改内核参数
vi /etc/sysctl.conf
# ORACLE SETTING
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
kernel.panic_on_oops = 1
vm.nr_hugepages = 100000
kernel.shmmax = 1610612736
kernel.shmall = 393216
kernel.shmmni = 4096

sysctl -p会使系统重新加载 /etc/sysctl.conf 文件中的设置,应用新的内核参数。这对于更改系统范围内的网络设置、文件系统参数等非常有用。

sysctl -p

下面的这个脚本主要包括了禁用透明大页(Transparent Huge Pages)、显示 NUMA 拓扑、禁用 SELinux、停止和禁用防火墙服务等优化配置。请在使用之前确保了解每个操作的影响。

cat /sys/kernel/mm/transparent_hugepage/defrag
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
#如果不是的话输入下面的命令
# 禁用透明大页面(Transparent Huge Pages)
echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
echo "never" > /sys/kernel/mm/transparent_hugepage/defrag

# 将禁用透明大页面的配置添加到 rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
  echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.d/rc.local
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
  echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.d/rc.local
fi
chmod +x /etc/rc.d/rc.local

# 显示 NUMA 拓扑结构
numactl --hardware

# 在 GRUB 配置中禁用 NUMA
echo "numa=off" >> /etc/default/grub
grub2-mkconfig -o /etc/grub2.cfg

# 在禁用 NUMA 后显示 NUMA 拓扑结构
numactl --hardware

# 将默认目标设置为多用户模式
systemctl set-default multi-user.target

# 配置 /dev/shm 大小
echo "none /dev/shm tmpfs defaults,size=3072m 0 0" >> /etc/fstab
mount -o remount /dev/shm

# 设置时区为亚洲/上海
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 设置硬件时钟
hwclock

# 禁用 SELinux
echo "SELINUX=disabled" > /etc/selinux/config
echo "#SELINUXTYPE=targeted" >> /etc/selinux/config
setenforce 0

# 停止并禁用 firewalld
systemctl stop firewalld.service
systemctl disable firewalld.service


方便复制:

echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
echo "never" > /sys/kernel/mm/transparent_hugepage/defrag

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
  echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.d/rc.local
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
  echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.d/rc.local
fi
chmod +x /etc/rc.d/rc.local

numactl --hardware

echo "numa=off" >> /etc/default/grub
grub2-mkconfig -o /etc/grub2.cfg

numactl --hardware

systemctl set-default multi-user.target

echo "none /dev/shm tmpfs defaults,size=3072m 0 0" >> /etc/fstab
mount -o remount /dev/shm

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

hwclock

echo "SELINUX=disabled" > /etc/selinux/config
echo "#SELINUXTYPE=targeted" >> /etc/selinux/config
setenforce 0

systemctl stop firewalld.service
systemctl disable firewalld.service

# 查看防火墙状态
systemctl status firewalld.service

# 添加禁用ZEROCONF的配置
echo "NOZEROCONF=yes" >> /etc/sysconfig/network

# 编辑 nsswitch.conf 保存的是域名检索顺序
nsswitch.conf 就像是系统的“指南”,告诉系统去哪里找一些基本的信息,
比如用户的名字、组的名字、机器的名字等。
就好比你在家里,如果需要什么东西,
可能会先看看书架、冰箱、或者问问家人,nsswitch.conf 
就是告诉系统去哪里找这些信息的
vim /etc/nsswitch.conf 
文件中的 hosts 行
# 从:hosts: files dns myhostname nis
# 改为:hosts: files dns myhostname nis

# 停止和禁用 Avahi 服务
systemctl stop avahi-daemon.socket avahi-daemon.service
systemctl disable avahi-daemon.socket avahi-daemon.service

# 停止和禁用 NTP 服务
systemctl stop ntpd
systemctl disable ntpd
systemctl status ntpd

Tpis:原来的配置 hosts: files dns myhostname 意味着系统首先查找本地文件,然后通过 DNS 查询,最后查找自己的主机名。
当你将它改成 hosts: files dns myhostname nis 时,表示你还希望系统通过 NIS 这个服务来查找主机名和 IP 地址的对应关系。NIS 是一种网络服务,可以帮助在整个网络中共享一些系统信息,包括主机名。
简而言之,你扩展了系统查找主机信息

方便复制:

systemctl status firewalld.service
echo "NOZEROCONF=yes" >> /etc/sysconfig/network
vi /etc/nsswitch.conf
hosts: files dns myhostname nis
systemctl stop avahi-daemon.socket avahi-daemon.service
systemctl disable avahi-daemon.socket avahi-daemon.service
systemctl stop ntpd
systemctl disable ntpd
systemctl status ntpd

做到这里事情还没结束,最重要的环境变量要设置,否则,后面你安装grid就会报错,怎么安装都没有用。

配置grid/Oracle环境变量

第一台 grid/Oracle都是这个/.bash_profile文件
输入

cat ~/.bash_profile 
vi  ~/.bash_profile

把下面的复制到第一台grid下面

PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
umask 022

# Uncomment the line below if you want to enable the alias for sqlplus
# alias sqlplus="rlwrap sqlplus"

export TMP=/tmp
export LANG=en_US
export TMPDIR=$TMP

ORACLE_SID=+ASM1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
ORACLE_BASE=/oracle/app/grid; export ORACLE_BASE
ORACLE_HOME=/oracle/app/11.2.0/grid; export ORACLE_HOME

NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT

PATH=.:$PATH:$HOME/bin:$ORACLE_HOME/bin; export PATH
THREADS_FLAG=native; export THREADS_FLAG

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
    umask 022
fi

[grid@fyserp21 ~]$ exit
[root@fyserp21:/root]$su - grid
Last login: Thu Nov 23 09:27:57 CST 2023 on pts/0
[grid@fyserp21:/home/grid]$env |grep ORACLE
ORACLE_SID=+ASM1
ORACLE_BASE=/oracle/app/grid
ORACLE_HOME=/oracle/app/11.2.0/grid

显示配置完成

配置完grid,接着配置oracle用户的

PS1="[`whoami`@`hostname`:"'$PWD]$'
#alias sqlplus="rlwrap sqlplus"
#alias rman="rlwrap rman"
export PS1
export TMP=/tmp
export LANG=en_US
export TMPDIR=$TMP
export ORACLE_UNQNAME=fyserpdb
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=fyserpdb01
export ORACLE_TERM=xterm
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=.:$PATH:$HOME/bin:$ORACLE_BASE/product/11.2.0/db_1/bin:$ORACLE_HOME/bin;
export THREADS_FLAG=native

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
    umask 022
fi

验证过程:

[oracle@fyserp22 ~]$  vi  ~/.bash_profile 
[oracle@fyserp22 ~]$ exit
[root@fyserp22 ~]# su - oracle
Last login: Thu Nov 23 09:49:23 CST 2023 on pts/0
[oracle@fyserp22:/home/oracle]$env |grep ORACLE
ORACLE_UNQNAME=fyserpdb
ORACLE_SID=fyspdb01
ORACLE_BASE=/oracle/app/oracle
ORACLE_TERM=xterm
ORACLE_HOME=/oracle/app/oracle/product/11.2.0/db_1..
[oracle@fyserp22:/home/oracle]$exit
logout

第二台grid

PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
umask 022
#alias sqlplus="rlwrap sqlplus"
export TMP=/tmp
export LANG=en_US
export TMPDIR=$TMP
ORACLE_SID=+ASM2; export ORACLE_SID  # 添加了一个分号
ORACLE_TERM=xterm; export ORACLE_TERM
ORACLE_BASE=/oracle/app/grid; export ORACLE_BASE
ORACLE_HOME=/oracle/app/11.2.0/grid; export ORACLE_HOME
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
PATH=.:$PATH:$HOME/bin:$ORACLE_HOME/bin; export PATH
THREADS_FLAG=native; export THREADS_FLAG

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
    umask 022
fi

每套机器做完以后
输入验证以下

[grid@fyserp21 ~]$ exit
[root@fyserp21:/root]$su - grid
Last login: Thu Nov 23 09:27:57 CST 2023 on pts/0
[grid@fyserp21:/home/grid]$env |grep ORACLE
ORACLE_SID=+ASM2
ORACLE_BASE=/oracle/app/grid
ORACLE_HOME=/oracle/app/11.2.0/grid

显示配置完成

su - oracle用户

PS1="[`whoami`@`hostname`:"'$PWD]$'
#alias sqlplus="rlwrap sqlplus"
#alias rman="rlwrap rman"
export PS1
export TMP=/tmp
export LANG=en_US
export TMPDIR=$TMP
export ORACLE_UNQNAME=fyserpdb
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=fyspdb02
export ORACLE_TERM=xterm
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=.:$PATH:$HOME/bin:$ORACLE_BASE/product/11.2.0/db_1/bin:$ORACLE_HOME/bin;
export THREADS_FLAG=native

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
    umask 022
fi

验证过程:

[oracle@fyserp22 ~]$  vi  ~/.bash_profile 
[oracle@fyserp22 ~]$ exit
[root@fyserp22 ~]# su - oracle
Last login: Thu Nov 23 09:49:23 CST 2023 on pts/0
[oracle@fyserp22:/home/oracle]$env |grep ORACLE
ORACLE_UNQNAME=fyserpdb
ORACLE_SID=fyspdb02
ORACLE_BASE=/oracle/app/oracle
ORACLE_TERM=xterm
ORACLE_HOME=/oracle/app/oracle/product/11.2.0/db_1..
[oracle@fyserp22:/home/oracle]$exit
logout
配置ssh信任关系(先把两台主机的hosts里面的不是自己配置的ip删掉127.0.0.1/:1等)
[root@fyserp21 backup]#  cp setup_passwordless_ssh.sh grid/rpm/
[root@fyserp21 backup]#  cd grid/rpm/
[root@fyserp21 rpm]# ls
cvuqdisk-1.0.9-1.rpm  setup_passwordless_ssh.sh
[root@fyserp21 rpm]# chmod +x setup_passwordless_ssh.sh
[root@fyserp21 rpm]# ./setup_passwordless_ssh.sh root@fyserp21 root@fyserp22 grid@fyserp21 grid@fyserp22 oracle@fyserp21 oracle@fyserp22

22主机:

[root@fyserp22 tmp]# chmod +x setup_passwordless_ssh.sh
[root@fyserp22 tmp]# ./setup_passwordless_ssh.sh root@fyserp21 root@fyserp22 grid@fyserp21 grid@fyserp22 oracle@fyserp21 oracle@fyserp22
GRID集群软件的安装部署

挂载起来
mount /dev/backupvg/backuplv /backup

  1. 先把xftp打卡,将三个安装包传到两台服务器

p13390677_112040_Linux-x86-64_3of7.zip
b19404309.zip
p18370031_112040_Linux-x86-64.zip
这三个包缺一不可,特别是p183/194,这是官方的基础包,如果不安装,在RHEL7中出现bug,集群软件安装不成功等情况。

把这个解压unzip b19404309.zip -d b19404309 这个b19404309里面
先把 cp b19404309 /grid/cvu_prereq.xml grid/stage/cvu/
exit进到root下面把(安装这个避免安装grid时验证asm出现问题)

[root@fyserp21 ~]# cd /backup/grid/rpm
[root@fyserp21 rpm]# ls
cvuqdisk-1.0.9-1.rpm
[root@fyserp21 rpm]# ls
cvuqdisk-1.0.9-1.rpm
[root@fyserp21 rpm]# rpm -ivh cvuqdisk-1.0.9-1.rpm 
然后把这个包传到22机器

我在这里解压文件的时候报错
checkdir error:  cannot create 18370031
                 Permission denied
                 unable to process.....
                 类似这样的,就是解压时没权限,那就是自己上面的用户组没做好,一定要做好权限关系。

接下来把这个包传到21主机上面

[grid@fyserp22 rpm]$ scp cvuqdisk-1.0.9-1.rpm fyserp21:/tmp

转到21主机安装

接下来安装grid

[root@fyserp21 ~]# cd /tmp/
[root@fyserp21 tmp]# ls
cvuqdisk-1.0.9-1.rpm
systemd-private-32874f1208134c65b0ecbf4fee621757-colord.service-mINjDA
systemd-private-32874f1208134c65b0ecbf4fee621757-cups.service-ajGQtJ
systemd-private-32874f1208134c65b0ecbf4fee621757-rtkit-daemon.service-u7Bhlu
systemd-private-32874f1208134c65b0ecbf4fee621757-vmtoolsd.service-n2uGf3
tracker-extract-files.1000

安装完毕回到第二台主机
那我们需要图形界面安装,这时候就要用到vnc这个服务了

一步先挂光驱(上面已经挂载过了)
df -h
 mount /dev/backupvg/backuplv /backup

 cd /etc/yum.repos.d
yum install  * vnc* -y
[grid@fyserp22 rpm]$ vnc    点两次tab键即可出现
vncconfig  vncpasswd  vncserver  vncviewer  
#要切换到grid用户下启动vncserver
vncserver -kill :2  # 关闭第二个会话
vncserver :1        # 启动第一个会话

[grid@fyserp22 rpm]$ su - grid 
Password: 
Last login: Wed Nov 22 13:01:41 CST 2023 on pts/0
[grid@fyserp22 ~]$ 

接下来在vnc图形界面下操作:
在这里插入图片描述
继续cd grid目录运行 :

#这个能解决窗口大小的问题给他放在/etc/alternatives/jre目录下
 [grid@fyserp22 grid]$ ./runInstaller -jreLoc /etc/alternatives/jre_1.8.0

 

启动页面如下
在这里插入图片描述
安装集群的
在这里插入图片描述
第三步选择 advanced installation–第四步 - 选择英文及chinese-第五步不要选择GNS,没有用到,这里的scan name 使用主机的名称,打开etc /hosts下的 自己配置的#scan ip192.168.0.25 fyserpdbscan这个名称
在这里插入图片描述
第六步选择-edit编辑一下啊,

eit
然后再添加两个主机:就是21那台主机fyserp21

在这里插入图片描述
如果点击Test时报错INS-06006] Passwordless SSH connectivity not set up between the following node(s): [fyserp21, fyserp22].
点击旁边的Setup重更新设置一下就可以了。
tips:如果点击setup还是不成功,[INS-06006] Passwordless SSH connectivity not set up between the following node(s): [fyserp22].
可以用下面的办法:
ssh-keygen -t rsa
ssh-copy-id grid@fyserp21
ssh grid@fyserp22

在这里插入图片描述

第八步选择–oracle automatcic…ASM(官网建议安装)
第九步选择
在这里,grid和oracle这里不一样,磁盘组,第一个是外部冗余External是一块盘,内部的话是Normal是三块盘,hight高级是5块盘,所以这里我们选择Normal,如果以后做数据盘就是3:2:1这样配H:N:E,然后AU_size选择8m
如果找磁盘不知道路径了 输入 ls -lsa /dev/mapper/ 在终端输入
在这里插入图片描述
然后在磁盘 输入 /dev/mapper/*找到此所有的磁盘,然后选择dggrid这三个盘就够用了

在这里插入图片描述
第十步 选择设置密码,设置统一的密码即可—选择do not…
第十一步,这里默认的组以及目录不用修改,都是环境变量设置好了的。
到这里:
os开头那些都是说内存比较小的原因导致的,可以顶级Fix&check去修复,就没有了
在这里插入图片描述
上面task resolv.conf lntegrity是名称解析的问题,需要dns的,我们没有设置dns这个是没关系的
然后那两个包装上就可以了。

[root@fyserp22 backup]# ls
compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm  pdksh-5.2.14-37.el5.x86_64.rpm
[root@fyserp22 tmp]# rpm -ivh --nodeps pdksh-5.2.14-37.el5.x86_64.rpm
warning: pdksh-5.2.14-37.el5.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID e8562897: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:pdksh-5.2.14-37.el5              ################################# [100%]
[grid@fyserp21:/backup/grid/rpm]$rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm 
warning: compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:compat-libstdc++-33-3.2.3-72.el7 ################################# [100%]

安装到最后会跳出一个弹窗,让你每台机器执行脚本

/oracle/app/oraInventory/orainstRoot.sh
/oracle/app/11.2.0/grid/root.sh

在这里插入图片描述
这里要注意,我们只能执行这个/oracle/app/oraInventory/orainstRoot.sh
第二个无论怎么做都会报错,这时候我们需要安装p18370031_112040_Linux-x86-64.zip但是打这个补丁有极大的可能会报错,
把这个包传到22主机
scp 18370031 fyserp22:/backup
在主机21下面输入,一定要用OPatch工具来打

[grid@fyserp21:/backup]$ cd 18370031/
[grid@fyserp21:/backup/18370031]$ls
custom  etc  files
[grid@fyserp21:/backup/18370031]$/oracle/app/11.2.0/grid/OPatch/opatch apply

安装成功以后输入先在第一台机器打完成结束以后

$ORACLE_HOME/OPatch/opatch lsinventory

再到第二台机器

[root@fyserp22 ~]# cd /oracle/app/11.2.0/     
[root@fyserp22 11.2.0]#  /oracle/app/11.2.0/grid/root.sh
  
这是22主机
[root@fyserp22 grid]# su - grid 
Last login: Mon Dec  4 10:00:28 CST 2023 on pts/0
[grid@fyserp22:/home/grid]$cd /oracle/app/11.2.0/grid/
[grid@fyserp22:/oracle/app/11.2.0/grid]$$ORACLE_HOME/OPatch/opatch lsinventory
这是21主机:
[grid@fyserp21:/backup/18370031]$$ORACLE_HOME/OPatch/opatch lsinventory

然后输入:

[root@fyserp21:/backup/18370031]$/oracle/app/11.2.0/grid/root.sh
[root@fyserp22:/oracle/app/11.2.0/grid]$ /oracle/app/11.2.0/grid/root.sh

安装时会跳出一个错误:这是一个bug不用管,因为我们只用一个ip,没有dns所以报错。
在这里插入图片描述
点击skip跳过这个报错,然后单击next即可。

安装结束以后关闭再输入
在grid用户下面输入

[gridefyserp21:/grid] $asmca
启动磁盘管理工具
在这里插入图片描述
然后点击Create创建其他盘组-点击Show A dvanced options-选择8m.
在这里插入图片描述
当你点击ok的时候,会弹出一个框,这个框就有个bug,
在这里插入图片描述
其实已经创建好了,在这里按 回车键就可以了,接下来就是创建数据盘 dgsystem,这里选择外部冗余及和8m
在这里插入图片描述
数据盘都是外部冗余 dgrecovery
在这里插入图片描述
dgdata01
在这里插入图片描述
下面就是已经创建好的磁盘组
在这里插入图片描述
2of2代表着两台机器都挂载了
然后这里安装结束点exit退出即可
tips:第三阶段会讲到用命令去创建asm磁盘组

接着这里asm就暂时不用了
把这个vnc关闭,
在root用户下打开
打开21/22主机
/oracle/ app/11.2.0/grid/bin: 写到

[root@fyserp21 backup]# vi ~/.bash_profile

在这里插入图片描述
这里是写到里面的图 path= …
两台机器要同时写进去在这里插入图片描述
然后先退出再进来

[root@fyserp21 backup]# exit
[root@fyserp21 ~]#ocrcheck       #检测orc的一些版本信息
[root@fyserp21 ~]# which ocrconfig
oracle/app/11.2.0/grid/bin/ocrconfig
[root@fyserp21 ~]# ocrconfig  -add  +dggrid2
[root@fgerp61 ~]#
[root@fgerp61 ~]# ocrconfig

可以看到创建的dggrid2镜像已经存在,创建这个镜像的原因就是 如果dggrid1有问题了,可以使用dggrid2镜像

tips ocrconfig -add +dggrid2在一台机器操作即可,可以在每台机器查询 ocrcheck
在这里插入图片描述
可以切换到su - grid用户下,查一下ocr的状态,两台主机的相关信息。 src_stat -t
在这里插入图片描述
在root用户下查一下crs,如果都是online说明是没有问题的,
[root@fgerp61 ~]# crsctl check crs
在这里插入图片描述
或者切到grid用户下,查一下asm的状态
在这里插入图片描述
asm的安装部署,相关的状态查询就到这里了。
grid的就部署完成啦!

接下来是集群软件的安装(Oracle)

先将这两个数据库集群软件包传到backup上面去进行解压安装。
集群软件数据库包
切换到orange用户下的backup解压安装
解压完成以后,打开vnc界面
这里和安装grid一样的步骤
下面是一些重要步骤
在这里插入图片描述
先安装数据库软件,在安装相关的磁盘
在这里插入图片描述
选择Oracle real application clusters database installation(默认的两个fyserp21/22都装上)
就是把主库的21也安装到备库22上面

这下面的是linux+11g的bug
在这里插入图片描述
这里要把这个"agent nmhs " bug屏蔽
下面操作的步骤:
[oracle@fgerp21:/backup]$ cd $ORACLE_HOME/
[oracle@fgerp21:/oracle/app/oracle/product/11.2.0/db_1]$ cd sysman/lib/
[oracle@fgerp21:/oracle/app/oracle/product/11.2.0/db_1/sysman/lib]$ cp ins_emagent.mkins_emagent.mk.bak
[oracle@fgerp21:/oracle/app/oracle/product/11.2.0/db_1/sysman/lib]$ vi ins_emagent.mk
在这里插入图片描述
然后进到 vi ins_emagent.mk 搜索 /NMECTL
在这里插入图片描述
搜索如图
在这里插入图片描述
在后面加一个参数 -lnnz11
在这里插入图片描述
然后保存,并要在第二台机器做同样的操作。
然后返回到orange界面点击 Recty重试
在这里插入图片描述
在root用户下,两台主机输入上面的脚本即可。

创建数据库

创建数据库
在这里插入图片描述

11gR2数据库打补丁

数据库补丁

集群维护之配置归档与闪回

猜你喜欢

转载自blog.csdn.net/weixin_43798406/article/details/134221495