centos7 Oracle 11g rac 静默安装(NFS配置共享存储)

1.环境信息准备

 注意: 在配置网络时,Oracle RAC的每个节点必须具有至少两个以上的网卡,一张网卡对外提供网络服务,另一张网卡用于各个节点间的通信和心跳检测等。在配置RAC集群的网卡时,如果节点1的公共接口是eth0,则所有节点的公共接口必须是eth0。(配置私有网口时也必须一致)另外,每个节点的主机名必须符合RFC 952标准,不允许使用下划线。对于Oracle 11G RAC双节点说,Oracle要求我们至少有7个ip地址,Public IP、Virtual IP和Scan IP在同一个网段下,Private IP在另一个网段中。

主机名rac1rac2
Public IP10.186.63.5210.186.63.53
Private IP10.186.202.210.186.202.3
Virtual ip10.186.63.20310.186.63.204
Scan ip10.186.63.205
NFS ip10.186.63.26

2.共享存储规划

磁盘名磁盘数量磁盘大小冗余模式
OCR310G/个Normal
DATA150GExternal
FRA120GExternal

3.安装步骤

3.1主机配置

#修改主机名
#10.186.63.52
hostnamectl set-hostname rac1 
#10.186.63.53
hostnamectl set-hostname rac2

#修改/etc/hosts文件 rac1和rac2一样文件末加入如下内容

vi /etc/hosts

#Public ip
10.186.63.52 rac1
10.186.63.53 rac2

# Private ip
10.186.202.2 rac1priv
10.186.202.3 rac2priv

# Virtual ip
10.186.63.203 rac1vip
10.186.63.204 rac2vip

# Scan ip
10.186.63.205 racscan

#NFS
10.186.63.26 nfs

#刷新
exec bash 

#查看是否生效,注意hostname不生效可能导致安装失败
cat /etc/hostname 

 3.2创建用户组和用户

groupadd oinstall -g 500
groupadd dba -g 501
groupadd oper -g 502
groupadd asmadmin -g 2003
groupadd asmdba -g 2004
groupadd asmoper -g 2005
useradd -u 500 -g oinstall -G dba,oper,asmdba,asmadmin,asmoper -d /home/oracle oracle
useradd -u 2001 -g oinstall -G asmadmin,asmdba,asmoper,dba -d /home/grid grid
echo oracle | passwd --stdin oracle &&\
echo grid | passwd --stdin grid

3.3 禁用firewalld和selinux

systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

3.4禁用 avahi-daemon服务

systemctl stop avahi-daemon
systemctl disable avahi-daemon
echo 'NOZEROCONF=yes' >> /etc/sysconfig/network

3.5关闭透明大页和NUMA

#查看透明页情况
cat /sys/kernel/mm/transparent_hugepage/enabled
#结果显示
[always] madvise never      表示开启了透明页

   #关闭透明大页
cat <<EOF>> /etc/rc.d/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF

授权
chmod +x /etc/rc.d/rc.local


#关闭numactl(关闭交换页面)
sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub

#生成启动规则
grub2-mkconfig -o /boot/grub2/grub.cfg

#重启服务器
reboot

3.6修改nsswitch.conf

nsswitch.conf保存的是域名检索顺序,在一些系统配置中,NIS(Network Information system)可能会引起SCAN域名解析异常

sed -i "s/^hosts:      files dns myhostname/hosts:      files dns myhostname nis/g" /etc/nsswitch.conf

3.7调整磁盘调度模式

为了获得Oracle ASM的最佳性能,Oracle建议使用Deadline I/O调度

#查看当前系统的I/O调度方法
cat /sys/block/sda/queue/scheduler
noop [deadline] cfq     #表示是使用deadline I/O调度

#如果磁盘调度为noop或者是cfq,则需要修改为deadline,通过如下命令处理
#永久的更改I/O调度方法:修改内核引导参数,加入elevator=调度程序名
grubby --update-kernel=ALL --args="elevator=deadline"

#需要重启生效
reboot

#再次查看当前系统的I/O调度方法 
cat /sys/block/sda/queue/scheduler
结果显示:
noop [deadline] cfq     #此时已经是deadline了

3.8禁用NTP服务

Oracle会在安装时检测是否有NTP服务,如果有,则会认为你的服务器是使用NTP来同步节点时间的,会将自身的CTSS服务配置成观察状态;如果检测到没有NTP服务,则会使用CTSS服务来同步时间。CTSS服务会将安装Grid软件的那台来作为主节点,然后让集群的其他节点时间与主节点的时间进行同步。

禁用NTP服务,使用Oracle的CTSS服务来同步节点的时间,如果时间和时间差异比较大,则将其修改为主节点的时区,并将时间调整到与主节点相近的时间,后续CTSS服务会修正时间

#停止NTP服务并关闭开机自启
systemctl stop ntpd && systemctl disable ntpd && rm -fr /etc/ntp.conf

3.9 配置内核参数

cat <<EOF>> /etc/sysctl.conf
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
#kernel.shmall = 1310720
#kernel.shmmax = 8589934591
kernel.shmmax = 5368709120
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
vm.nr_hugepages = 2700
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_default = 262144
net.core.wmem_max = 16777216
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_keepalive_time = 120
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_fin_timeout = 10
EOF

 重加载内核参数使之立即生效

sysctl -p

 配置注解:

配置讲解:
(1)fs.file-max:最大打开文件数
(2)kernel.shmall:共享内存的总量,8G内存设置:(8*1024*1024)KB/4KB=2097152
(3)kernel.shmmax:最大共享内存的段大小,一般设置为服务器的80%内存总大小:物理内存大小*1024*1024*1024-1,必须要大于等于SGA,
    比如8G=oracle 内存8G*0.8=6.4 (SGA=6.4*0.8=5.12+PGA=6.4*0.2)---->=SGA=5*1024*1024*1024
   oracle 内存设置: oracle 内存=物理内存*40%-80%,生产服务器内存比较大可以设置为60%,小可以设置为80%
   物理内存的80%,   物理内存的40%
  oracle = SGA (80%)+ PGA(20%)
   SGA=物理内存的80%的80%=8*0.8*0.8=5
   PGA=物理内存的80%的20%=8*0.8*0.2=1.2
   shmmax=5*1024*1024*1024
   shmall=shmmax/PAGESIZE
   nr_hugepages=SGA/2+100~500=2600
    shmall参数:控制共享内存页数: = shmmax/PAGESIZE
   getconf PAGESIZE 获取每而大小
   shmmni参数:共享内存段最大数量
   vm.nr_hugepages:大页,系统内存大于8G,生产一定要设置,设置了大页会让oracle运行得更快
   SGA/2M+200
(4)net.ipv4.ip_local_port_range:可使用的ipv4端口范围
如果服务器只运行单个实例(数据库),可以参考下下面的建议值
内存为12G
     kernel.shmall = 3145728
     kernel.shmmax = 12884901887
内存为16G
     kernel.shmall = 4194304
     kernel.shmmax = 17179869183
内存为32G
     kernel.shmall = 8388608
     kernel.shmmax = 34359738367
内存为64G
     kernel.shmall = 16777216
     kernel.shmmax = 68719476735

3.10限制用户资源使用

cat <<EOF>> /etc/security/limits.conf
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 7340032
oracle  hard  memlock 7340032

grid    soft  nproc  2047
grid    hard  nproc  16384
grid    soft  nofile 1024
grid    hard  nofile 65536
grid    soft  stack  10240
grid    hard  stack   32768
grid    soft  memlock 7340032
grid    hard  memlock 7340032
EOF

 memlock(内存锁)要比内存要小:比如服务器内存是8G,内存锁可使用:7*1024*1024

ulimit -a

 login文件增加如下参数

cat <<EOF>> /etc/pam.d/login
#Oracle Setting
session       required        pam_limits.so
session       required        /lib64/security/pam_limits.so
EOF

 修改nproc参数

echo "* - nproc 16384" > /etc/security/limits.d/20-nproc.conf

 编辑profile文件,添加如下内容

cat <<EOF>> /etc/profile
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
  else
    ulimit -u 16384 -n 65536
  fi
fi
EOF

生效:

source /etc/profile

3.11配置用户环境变量

#root用户执行就行:
#rac1节点:
vim /home/oracle/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl11g1
export LANG=en_US.UTF-8


vim /home/grid/.bash_profile
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=+ASM1
export LANG=en_US.UTF-8

#rac2节点:

vim /home/oracle/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl11g2
export LANG=en_US.UTF-8


vim /home/grid/.bash_profile
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=+ASM2
export LANG=en_US.UTF-8

生效:

source /home/oracle/.bash_profile
source /home/grid/.bash_profile

3.12创建软件目录

mkdir -p /u01/software
mkdir -p /u01/app/oracle
chown oracle:oinstall /u01/app/oracle
mkdir -p /u01/app/grid
chown grid:oinstall /u01/app/grid
chgrp oinstall /u01/app
chmod 775 /u01/app

 3.13配置ssh

grid用户配置互信:su - grid

rac1:

# 生成协议2版本的RSA密钥对
[grid@rac1 ~]$ ssh-keygen -t rsa
# 将密钥内容复制到authorized_keys文件中
[grid@rac1 ~]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys

rac2:

# 生成协议2版本的RSA密钥对
[grid@rac2 ~]$ ssh-keygen -t rsa

rac1:

[grid@rac1 ~]$ scp .ssh/authorized_keys rac-2:/home/grid/.ssh

rac2:

# 将节点2的密钥写入到authorized_keys文件中
[grid@rac2 ~]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
# 拷贝authorized_keys文件至节点1
[grid@rac2 ~]$ scp .ssh/authorized_keys rac1:/home/grid/.ssh

 oracle用户配置互信:su - oracle

rac1:

# 生成协议2版本的RSA密钥对
[oracle@rac1 ~]$ ssh-keygen -t rsa
# 将密钥内容复制到authorized_keys文件中
[oracle@rac1 ~]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys

 rac2:

# 生成协议2版本的RSA密钥对
[oracle@rac2 ~]$ ssh-keygen -t rsa

rac1:

[oracle@rac1 ~]$ scp .ssh/authorized_keys rac-2:/home/oracle/.ssh

 rac2:

# 将节点2的密钥写入到authorized_keys文件中
[grid@rac2 ~]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
# 拷贝authorized_keys文件至节点1
[grid@rac2 ~]$ scp .ssh/authorized_keys rac1:/home/oracle/.ssh

 测试grid和oracle用户互信

rac1:

ssh rac1 date; ssh rac2 date; ssh rac1priv date; ssh rac2priv date;

[root@rac1 ~]# su - grid
Last login: Sat Oct 12 07:07:27 UTC 2024 on pts/2
[grid@rac1 ~]$ ssh rac1 date; ssh rac2 date; ssh rac1priv date; ssh rac2priv date;
Sat Oct 12 09:37:27 UTC 2024
Sat Oct 12 09:37:27 UTC 2024
Sat Oct 12 09:37:27 UTC 2024
Sat Oct 12 09:37:27 UTC 2024
[grid@rac1 ~]$ su - oracle
[oracle@rac1 ~]$ ssh rac1 date; ssh rac2 date; ssh rac1priv date; ssh rac2priv date;
Sat Oct 12 09:38:19 UTC 2024
Sat Oct 12 09:38:19 UTC 2024
Sat Oct 12 09:38:19 UTC 2024
Sat Oct 12 09:38:19 UTC 2024
[oracle@rac1 ~]$

rac2:

ssh rac1 date; ssh rac2 date; ssh rac1priv date; ssh rac2priv date;

[root@rac2 ~]# su - grid
Last login: Sat Oct 12 07:07:27 UTC 2024 on pts/2
[grid@rac2 ~]$ ssh rac1 date; ssh rac2 date; ssh rac1priv date; ssh rac2priv date;
Sat Oct 12 09:37:27 UTC 2024
Sat Oct 12 09:37:27 UTC 2024
Sat Oct 12 09:37:27 UTC 2024
Sat Oct 12 09:37:27 UTC 2024
[grid@rac2 ~]$ su - oracle
[oracle@rac2 ~]$ ssh rac1 date; ssh rac2 date; ssh rac1priv date; ssh rac2priv date;
Sat Oct 12 09:38:19 UTC 2024
Sat Oct 12 09:38:19 UTC 2024
Sat Oct 12 09:38:19 UTC 2024
Sat Oct 12 09:38:19 UTC 2024
[oracle@rac2 ~]$

4.配置NFS共享存储(10.186.63.26 nfs)

4.1创建lvm(10.186.63.26 nfs服务端操作)

vgcreate vg01 /dev/vdb
vgcreate vg02 /dev/vdc
lvcreate -n lv01 -l 100%free vg01
lvcreate -n lv02 -l 100%free vg02

 注意:lvcreate -n lv02 -l 100%free vg02&vg01创建的时候选择分配所有空间,不然后面安装grid执行root.sh时节点2可能会重新创建表决盘而无法加入集群。

4.2挂载共享目录

mkdir -p /ora_data
mkdir -p /ora_arch

mkfs.xfs /dev/vg01/lv01
mkfs.xfs /dev/vg02/lv02 

mount /dev/vg01/lv01 /ora_data
mount /dev/vg02/lv02 /ora_arch

vi /etc/fstab
/dev/vg01/lv01 /ora_data  xfs defaults 0 0 
/dev/vg02/lv02 /ora_arch  xfs defaults 0 0 

mount -a 

/ora_data存放oracle数据,ora_arch存放归档日志

#挂载后如图:

4.3配置NFS共享目录,让目标节点可以识别到

yum install -y nfs-utils rpcbind


vi /etc/exports
#rac1\rac2-ASM
/ora_data 10.186.63.52/32(rw,sync,no_wdelay,insecure,no_root_squash)
/ora_data 10.186.63.53/32(rw,sync,no_wdelay,insecure,no_root_squash)

#ra1\rac2-arch
/ora_arch 10.186.63.52/32(rw,sync,no_wdelay,insecure,no_root_squash)
/ora_arch 10.186.63.53/32(rw,sync,no_wdelay,insecure,no_root_squash)



systemctl start nfs-server.service && systemctl enable nfs-server.service
systemctl status nfs-server

exportfs -v

10.186.63.52&53为oracle rac两个节点ip

#配置好后截图如下:

4.4创建ASM磁盘组

mkdir /ora_data/oracleasm/

mkdir /ora_arch/oracleasm/

dd if=/dev/zero of=/ora_data/oracleasm/ocr1 bs=8192k count=1280
dd if=/dev/zero of=/ora_data/oracleasm/ocr2 bs=8192k count=1280
dd if=/dev/zero of=/ora_data/oracleasm/ocr3 bs=8192k count=1280
dd if=/dev/zero of=/ora_data/oracleasm/fra  bs=8192k count=2560
dd if=/dev/zero of=/ora_data/oracleasm/data bs=8192k count=6400

4.5 nfs客户端配置(rac1和rac2)

yum install nfs-utils -y

systemctl start nfs-server.service && systemctl enable nfs-server.service

systemctl status nfs-server.service

showmount -e 10.186.63.26

mkdir /ora_data /ora_arch

#设置开机自动挂载

vi /etc/fstab

10.186.63.26:/ora_data  /ora_data  nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0 0 0
10.186.63.26:/ora_arch  /ora_arch  nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0 0 0

#手动挂载

mount -a

#更改属主和执行权限(rac1&rac2任意节点执行)

chown -R grid:asmadmin /ora_data/oracleasm/ocr1
chown -R grid:asmadmin /ora_data/oracleasm/ocr2
chown -R grid:asmadmin /ora_data/oracleasm/ocr3
chown -R grid:asmadmin /ora_data/oracleasm/fra
chown -R grid:asmadmin /ora_data/oracleasm/data

chmod -R 660 /ora_data/oracleasm/ocr1
chmod -R 660 /ora_data/oracleasm/ocr2
chmod -R 660 /ora_data/oracleasm/ocr3
chmod -R 660 /ora_data/oracleasm/fra
chmod -R 660 /ora_data/oracleasm/data

ls -l /ora_data/oracleasm/*

5.上传安装包并解压(rac1节点执行即可)

 

unzip p13390677_112040_Linux-x86-64_1of7.zip -d /u01/software
unzip p13390677_112040_Linux-x86-64_2of7.zip -d /u01/software
unzip p13390677_112040_Linux-x86-64_3of7.zip -d /u01/software
chown -R grid:oinstall /u01/software/grid
chown -R oracle:oinstall /u01/software/database

6.安装依赖包(rac1&&rac2)

yum -y install gcc* compat-libstdc* elfutils-libelf-devel* glibc-devel* glibc-headers* libaio-devel* libstdc* ksh* compat-libcap1*
rpm -ivh pdksh-5.2.14-30.x86_64.rpm --force --nodeps
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

# 安装Grid软件带的依赖包
rpm -ivh /u01/software/grid/rpm/cvuqdisk-1.0.9-1.rpm

7.安装前校验(一个节点执行即可)

[grid@rac1 ~]$ cd /u01/software/grid
# 校验
[grid@rac1 grid]$ ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose

 根据报错调整,重新执行检查

#添加swap

dd if=/dev/zero of=/home/swap bs=8M count=1000

mkswap /home/swap

swapon /home/swap

echo "/home/swap swap swap defaults 0 0" >>/etc/fstab

8.静默安装Grid软件

8.1 grid用户登录rac1进行安装

# 进入响应文件目录
[grid@rac1 grid]$ cd response
# 编辑Grid软件
[grid@rac1 response]$ vim grid_install.rsp

#文件末尾添加如下内容:

INVENTORY_LOCATION=/u01/app/oraInventory
oracle.install.option=CRS_CONFIG
ORACLE_BASE=/u01/app/grid
ORACLE_HOME=/u01/app/11.2.0/grid
oracle.install.asm.OSDBA=asmdba
oracle.install.asm.OSOPER=asmoper
oracle.install.asm.OSASM=asmadmin
oracle.install.crs.config.gpnp.scanName=racscan
oracle.install.crs.config.gpnp.scanPort=1521
oracle.install.crs.config.clusterName=rac
oracle.install.crs.config.autoConfigureClusterNodeVIP=false
oracle.install.crs.config.clusterNodes=rac1:rac1vip,rac2:rac2vip
oracle.install.crs.config.networkInterfaceList=eth0:10.186.63.0:1,eth1:10.186.202.0:2
oracle.install.crs.config.storageOption=ASM_STORAGE
oracle.install.asm.SYSASMPassword=orcl
oracle.install.asm.diskGroup.name=OCR
oracle.install.asm.diskGroup.redundancy=NORMAL
oracle.install.asm.diskGroup.AUSize=4
oracle.install.asm.diskGroup.disks=/ora_data/oracleasm/ocr1,/ora_data/oracleasm/ocr2,/ora_data/oracleasm/ocr3
oracle.install.asm.diskGroup.diskDiscoveryString=/ora_data/oracleasm/*
oracle.install.asm.monitorPassword=orcl

8.2安装

cd ..
./runInstaller -silent -responseFile /u01/software/grid/response/grid_install.rsp -ignorePrereq

8.3 配置ohas.service

linux 7安装Oracle11g rac 在执行root.sh时有bug,上面没有打补丁,用如下方式解决。

cat<<EOF>/usr/lib/systemd/system/ohas.service
[Unit]
Description=Oracle High Availability Services
After=syslog.target
 
[Service]
ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 Type=simple
Restart=always
 
[Install]
WantedBy=multi-user.target
EOF

#启动服务

systemctl daemon-reload && systemctl enable ohas.service && systemctl start ohas.service && systemctl status ohas.service

8.4切换root用户执行root.sh脚本

rac1:

[root@rac1 ~]# /u01/app/oraInventory/orainstRoot.sh
[root@rac1 ~]# /u01/app/11.2.0/grid/root.sh

#执行过程中启ohas.service

systemctl daemon-reload && systemctl enable ohas.service && systemctl start ohas.service && systemctl status ohas.service

#查看日志

注意:rac1执行完再去rac2执行  

rac2:

[root@rac2 ~]# /u01/app/oraInventory/orainstRoot.sh
[root@rac2 ~]# /u01/app/11.2.0/grid/root.sh

#执行root.sh过程中ohas.service

systemctl daemon-reload && systemctl enable ohas.service && systemctl start ohas.service && systemctl status ohas.service

查看日志:

8.4 检查grid集群进程

#集群状态:crsctl status res -t ,确保rac1和rac2都有相关进程

rac1:

rac2:

 9.静默配置其他ASM磁盘

Grid软件安装完成后,就需要配置其他ASM磁盘组了,例如DATA\FRA等。

rac1:

# 进入到sqlplus命令行
[grid@rac1 grid]$ sqlplus / as sysasm
# 创建FRA磁盘组
create diskgroup FRA external redundancy disk '/ora_data/oracleasm/fra';
#创建DATA磁盘组
create diskgroup DATA external redundancy disk '/ora_data/oracleasm/data';
#查看磁盘组状态
select state,name,type,total_mb, free_mb from v$asm_diskgroup_stat ;

 rac2:

[grid@rac2 ~]$ export ORACLE_SID=+ASM2
# 进入到sqlplus命令行
[grid@rac2 grid]$ sqlplus / as sysasm
# 挂载FRA磁盘组
SQL> alter diskgroup FRA mount;
# 挂载DATA磁盘组
SQL> alter diskgroup DATA mount;
# 查看磁盘组状态
SQL> select state,name,type,total_mb, free_mb from v$asm_diskgroup_stat ;

10.静默安装oracle软件

10.1检查产品清单文件crs属性

检查HOME标签中是否有CRS属性,如果没有,则手动加上。注意,CRS必须大写。

su - oracle
vim /u01/app/oraInventory/ContentsXML/inventory.xml

<?xml version="1.0" standalone="yes" ?>
<!-- Copyright (c) 1999, 2013, Oracle and/or its affiliates.
All rights reserved. -->
<!-- Do not modify the contents of this file by hand. -->
<INVENTORY>
<VERSION_INFO>
   <SAVED_WITH>11.2.0.4.0</SAVED_WITH>
   <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER>
</VERSION_INFO>
<HOME_LIST>
<HOME NAME="Ora11g_gridinfrahome1" LOC="/u01/app/11.2.0/grid" TYPE="O" IDX="1" CRS="true">
   <NODE_LIST>
      <NODE NAME="rac-1"/>
      <NODE NAME="rac-2"/>
   </NODE_LIST>
</HOME>
</HOME_LIST>
<COMPOSITEHOME_LIST>
</COMPOSITEHOME_LIST>
</INVENTORY>

10.2静默安装Oracle软件

# oracle用户进入到响应文件中
[oracle@rac1 ~]$ cd /u01/software/database/response
# 编辑响应文件
[oracle@rac1 response]$ vim db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oper
oracle.install.db.CLUSTER_NODES=rac1,rac2
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
oracle.installer.autoupdates.option=SKIP_UPDATES

10.3静默安装

# 退至上一级目录
[oracle@rac1 response]$ cd ..
# 静默安装
[oracle@rac1 database]$ ./runInstaller -silent -responseFile /u01/software/database/response/db_install.rsp -ignorePrereq

 10.4执行root脚本

执行后根据提示的日志文件目录去查看下日志,看是否有报错。

rac2:

 /u01/app/oraInventory/orainstRoot.sh

 rac1:

 /u01/app/oracle/product/11.2.0/dbhome_1/root.sh

rac2:

 /u01/app/oracle/product/11.2.0/dbhome_1/root.sh

 11.添加监听至集群中(rac1&rac2)

grid用户登录rac1和rac2执行

su - grid
srvctl status listener
# 添加监听
srvctl add listener
srvctl start listener
srvctl status listener

12.安装数据库

12.1编辑dbca.rsp响应文件

# 进入响应文件目录
[oracle@rac1 ~]$ cd /u01/software/database/response
# 编辑响应文件
[oracle@rac1 response]$ mv dbca.rsp dbca.rsp_bak
[oracle@rac1 response]$ vim  dbca.rsp 

[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"

[CREATEDATABASE]
GDBNAME = "orcl11g"
SID = "orcl11g"
NODELIST=rac1,rac2
TEMPLATENAME = "General_Purpose.dbc"
SYSPASSWORD = "orcl"
SYSTEMPASSWORD = "orcl"
DATAFILEDESTINATION ="+DATA"
RECOVERYAREADESTINATION="+FRA"
STORAGETYPE=ASM
DISKGROUPNAME=DATA
CHARACTERSET = "AL32UTF8"
DATABASETYPE = "OLTP"

[createTemplateFromDB]
SOURCEDB = "myhost:1521:orcl"
SYSDBAUSERNAME = "system"
TEMPLATENAME = "My Copy TEMPLATE"

[createCloneTemplate]
SOURCEDB = "orcl"
TEMPLATENAME = "My Clone TEMPLATE"

[DELETEDATABASE]
SOURCEDB = "orcl"

[generateScripts]
TEMPLATENAME = "New Database"
GDBNAME = "orcl11.us.oracle.com"

[CONFIGUREDATABASE]

[ADDINSTANCE]
DB_UNIQUE_NAME = "orcl11g.us.oracle.com"
SYSDBAUSERNAME = "sys"

[DELETEINSTANCE]
DB_UNIQUE_NAME = "orcl11g.us.oracle.com"
INSTANCENAME = "orcl11g"
SYSDBAUSERNAME = "sys"

12.1静默安装(在rac1节点执行即可)

[oracle@rac1 response]$ dbca -silent -responseFile /u01/software/database/response/dbca.rsp

#登录oracle数据库验证是否安装成功(rac1&rac2) 

 13.检查集群状态

su - grid 

crsctl status res -t 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

下一代安全:融合网络和物理策略以实现最佳保护

在当今快速发展的技术环境中&#xff0c;网络和物理安全融合变得比以往任何时候都更加重要。随着物联网 (IoT) 和工业物联网 (IIoT) 的兴起&#xff0c;组织在保护数字和物理资产方面面临着独特的挑战。 本文探讨了安全融合的概念、说明其重要性的实际事件以及整合网络和物理安…

本地装了个pytorch cuda

安装命令选择 pip install torch1.13.1cu116 torchvision0.14.1cu116 torchaudio0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116 torch版本查看 python import torch print(torch.__version__) 查看pytorch能否使用cuda import torch# 检查CUDA是否可用…

鸿蒙NEXT开发-动画(基于最新api12稳定版)

注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章写的好的话&#xff0c;可以点下关注&#xff0c;博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…

241014-绿联UGOSPro-通过虚拟机访问主机的用户目录及文件夹

如图所示&#xff0c;两种方式&#xff1b; 方式1: 通过Files中的Other Locations 添加主机ip&#xff0c;随后输入主机的用户名及密码即可系统及文件加载可能需要一段时间&#xff0c;有点卡&#xff0c;加载完应该就可以点击访问了 方式2: 通过命令行直接ssh/sftp userna…

【C++网络编程】(一)Linux平台下TCP客户/服务端程序

文章目录 Linux平台下TCP客户/服务端程序服务端客户端相关头文件介绍 Linux平台下TCP客户/服务端程序 图片来源&#xff1a;https://subingwen.cn/linux/socket/ 下面实现一个Linux平台下TCP客户/服务端程序&#xff1a;客户端向服务器发送&#xff1a;“你好&#xff0c;服务…

网络资源模板--Android Studio 实现简易新闻App

目录 一、项目演示 二、项目测试环境 三、项目详情 四、完整的项目源码 一、项目演示 网络资源模板--基于Android studio 实现的简易新闻App 二、项目测试环境 三、项目详情 登录页 用户输入&#xff1a; 提供账号和密码输入框&#xff0c;用户可以输入登录信息。支持“记…

[ComfyUI]Flux:国漫经典!斗破苍穹古熏儿之绮梦流光模型来袭

在数字艺术和创意领域&#xff0c;FLUX以其独特的虚实结合技术&#xff0c;已经成为艺术家和设计师们手中的利器。今天&#xff0c;我们激动地宣布&#xff0c;FLUX推出了一款全新的ComfyUI版本——Flux&#xff0c;它将国漫经典《斗破苍穹》中的古熏儿之绮梦流光模型完美融合&…

第十四章 RabbitMQ延迟消息之延迟队列

目录 一、引言 二、死信队列 三、核心代码实现 四、运行效果 五、总结 一、引言 什么是延迟消息&#xff1f; 发送者发送消息时指定一个时间&#xff0c;消费者不会立刻收到消息&#xff0c;而是在指定时间后收到消息。 什么是延迟任务&#xff1f; 设置在一定时间之后才…

Qt入门教程:创建我的第一个小程序

本章教程&#xff0c;主要介绍如何编写一个简单的QT小程序。主要是介绍创建项目的过程。 一、打开QT软件编辑器 这里使用的是QT5.14.2版本的&#xff0c;安装教程参考以往教程&#xff1a;https://blog.csdn.net/qq_19309473/article/details/142907096 二、创建项目 到这里&am…

使用Docker部署nextjs应用

最近使用nextjs网站开发&#xff0c;希望使用docker进行生产环境的部署&#xff0c;减少环境的依赖可重复部署操作。我采用的是Dockerfile编写应用镜像方式 docker-compose实现容器部署的功能。 Docker Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器…

【大模型问答测试】大模型问答测试脚本实现(第一版)

背景 公司已经做了一段时间的大模型&#xff0c;每次测试或者回归的时候都需要针对问答进行测试回归&#xff0c;耗费大量的时间与精力&#xff0c;因此结合产品特点&#xff0c;开发自动化脚本替代人工的操作&#xff0c;提升测试回归效率 设计 使用pythonrequestExcel进行…

Android笔记(二十四)基于Compose组件的MVVM模式和MVI模式的实现

仔细研究了一下MVI(Model-View-Intent)模式&#xff0c;发现它和MVVM模式非常的相识。在采用Android JetPack Compose组件下&#xff0c;MVI模式的实现和MVVM模式的实现非常的类似&#xff0c;都需要借助ViewModel实现业务逻辑和视图数据和状态的传递。在这篇文章中&#xff0c…

易我数据恢复软件,一键找回你的重要资料!

我们生活在数字时代&#xff0c;数据对我们来说超级重要。工作文件、学习资料&#xff0c;还有照片视频&#xff0c;这些东西要是没了或者不小心删了&#xff0c;那得多烦人啊。幸好现在科技发达&#xff0c;有了数据恢复软件&#xff0c;就像给我们数据上了一把安全锁。市面上…

一篇闪击常用放大器电路(学习笔记)

文章目录 声明概念名词经典电路分析反向放大器同向放大器加法器减法器积分电路微分电路差分放大电路电流->电压转换电路电压->电流转换电路 虚短与虚断一、虚短二、虚断 一些碎碎念 声明 ​ 本文是主要基于以下两篇博客所做的笔记&#xff1a; 模电四&#xff1a;基本放…

IT招聘乱象的全面分析

近年来&#xff0c;IT行业的招聘要求似乎越来越苛刻&#xff0c;甚至有些不切实际。许多企业在招聘时&#xff0c;不仅要求前端工程师具备UI设计能力&#xff0c;还希望后端工程师精通K8S服务器运维&#xff0c;更有甚至希望研发经理掌握所有前后端框架和最新开发技术。这种招聘…

MySQL基本语法、高级语法知识总结以及常用语法案例

MySQL基本语法总结 MySQL是一种广泛使用的关系型数据库管理系统&#xff0c;其基本语法涵盖了数据库和数据表的创建、查询、修改和删除等操作。 一、数据库操作 创建数据库&#xff08;CREATE DATABASE&#xff09; 语法&#xff1a;CREATE DATABASE [IF NOT EXISTS] databa…

最新PHP礼品卡回收商城 点卡回收系统源码_附教程

最新PHP礼品卡回收商城 点卡回收系统源码_附教程 各大电商平台优惠券秒杀拼团限时折扣回收商城带余额宝 1、余额宝理财 2、回收、提现、充值、新订单语音消息提醒功能 3、带在线客服 4、优惠券回收功能 源码下载&#xff1a;https://download.csdn.net/download/m0_66047…

Android实现App内直接预览本地PDF文件

在App内实现直接预览pdf文件&#xff0c;而不是通过调用第三方软件&#xff0c;如WPS office等打开pdf。 主要思路&#xff1a;通过PhotoView将pdf读取为图片流进行展示。 一、首先&#xff0c;获取对本地文件读取的权限 在AndrooidManifest.xml中声明权限&#xff0c;以及页…

Windows,MySQL主从复制搭建

前提&#xff1a;windows环境&#xff0c;同一个服务器安装多个相同版本的mysql数据库 多个MySQL服务搭建完成后&#xff0c;下面我们进行主从复制的相关配置 1.主数据库 执行指令 #创建用户 CREATE USER slavelocalhost IDENTIFIED BY 123456;#授权 GRANT REPLICATION SLA…

[CS报错]找不到 .NETFramework,Version=v4.6.2 的引用程序集

报错 error MSB3644: 找不到 .NETFramework,Versionv4.6.2 的引用程序集。要解决此问题&#xff0c;请为此框架版本安装开发人员工具包(SDK/目标包)或者重新定向应用程序。可在 https://aka.ms/msbuild/developerpacks 处下载 .NET Framework 开发人员工具包 解决 打开https…