Centos7.9静默安装12c RAC
一、基本信息
节点基本信息:
| 节点一 | 节点二 | |
|---|---|---|
| 主机名 | ora1 | ora2 |
| 操作系统 | Centos7.9 | Centos7.9 |
| grid用户名/密码 | grid | grid |
| Oracle用户名/密码 | oracle | oracle |
| Oracle 版本 | 12c Enterprise Edition Release 12.2.0.1.0 | 12c Enterprise Edition Release 12.2.0.1.0 |
| oracle用户SID | oracle1 | oracle2 |
| grid用户SID | +ASM1 | +ASM2 |
| GI安装位置 | /u01/app/grid/base | /u01/app/grid/base |
| 数据库安装位置 | /u01/app/oracle | /u01/app/oracle |
| 公网IP | 192.168.3.74/24 | 10.104.174.2/24 |
| 私网IP | 192.168.0.1/24 | 192.168.0.2/24 |
准备文件
# zip放置节点一的$ORACHLE_HOME即可
V840012-01-Grid-Infrastucture.zip
V839960-01-Oracle-Database-12.2.0.1.0-for-Linux x86-64.zip
libaio-devel-0.3.109-13.el7.x86_64.rpm
compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
二、系统调整
1、网络设置
-
修改/etc/hosts(注:具体ip根据实际情况填写)
参考文档:RAC的几种IP:https://cloud.tencent.com/developer/article/1578494
# public 192.168.3.74 ora1 192.168.3.75 ora2 # private 192.168.8.1 ora1-priv 192.168.8.2 ora2-priv # virtual 192.168.3.76 ora1-vip 192.168.3.77 ora2-vip # scan 192.168.3.78 ora-scan
2、用户/组配置
-
用户组
groupadd dba groupadd oinstall groupadd oper groupadd asmoper groupadd asmdba groupadd asmadmin groupadd backupdba groupadd dgdba groupadd kmdba -
gird用户
创建用户
useradd -g oinstall -p `openssl passwd -1 "grid"` -G asmadmin,asmdba,asmoper,dba -d /home/grid -m grid编辑/home/grid/.bash_profile
注:节点一的ORACLE_SID为+ASM1,节点二的ORACLE_SID为+ASM2
export ORACLE_BASE=/u01/app/grid/base export ORACLE_HOME=/u01/app/grid/home export ORACLE_SID=+ASM1 export CRS_HOME=$ORACLE_HOME export OPATCH=$ORACLE_HOME/OPatch export PATH=$PATH:$ORACLE_HOME/bin:$OPATCH -
oracle 用户
创建用户
useradd -g oinstall -p `openssl passwd -1 "oracle"` -G dba,asmdba,oper,kmdba,backupdba,dgdba -d /home/oracle -m oracle编辑/home/oracle/.bash_profile
注:节点一的ORACLE_SID为oracle1,节点二的ORACLE_SID为oracle2
export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/12.2.0/db_1 export OPATCH=$ORACLE_HOME/OPatch export ORACLE_SID=oracle1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export PATH=$PATH:$ORACLE_HOME/bin:$OPATCH -
赋权
mkdir -p /u01/app/oracle/product/12.2.0/db_1 chown -R oracle:oinstall /u01 mkdir -p /u01/app/grid/base /u01/app/grid/home chown -R grid:oinstall /u01/app/grid mkdir /u01/app/oraInventory chown grid:oinstall /u01/app/oraInventory && chmod 775 /u01/app/oraInventory
此时可以解压zip到各自用户的ORACLE_HOME之下
3、swap设置
-
创建swap文件
dd if=/dev/zero of=/rac-swap bs=1M count=16384 -
设置可访问权限
chmod 600 /rac-swap -
格式化文件
mkswap /rac-swap -
激活swap空间(每次swapon可以叠加swap空间)
swapon /rac-swap -
开机自动启用swap空间,追加下面内容到/etc/fstab
echo "/rac-swap swap swap default 0 0" >>/etc/fstab
4、依赖
-
yum 安装
yum install -y binutils.x86_64 compat-libcap1.x86_64 gcc.x86_64 gcc-c++.x86_64nglibc.x86_64 glibc-devel.x86_64 libaio.x86_64 libaio-devel.x86_64 libgcc.x86_64 libstdc++.x86_64 libstdc++-devel.x86_64 libXi.x86_64 libXtst.x86_64 make.x86_64 sysstat.x86_64 compat-libstdc++-33 elfutils-libelf-devel psk net-tools telnet unzip gcc-c++ ksh smartmontools
5、内核参数和资源限制
-
计算shmall和shmmax
# kernel.shmall shmall=$(echo "`cat /proc/meminfo | grep "MemTotal" | awk '{print $2}'` / (`getconf PAGESIZE` / 1024)" | bc) # kernel.shmmax(内存的80%) shmmax=$(echo "`cat /proc/meminfo | grep "MemTotal" | awk '{print $2}'` * 1024 * 0.8" | bc | sed 's#\..*$##') -
修改参数
cat >> /etc/sysctl.conf<<EOF fs.aio-max-nr = 3145728 fs.file-max = 6815744 kernel.shmall = ${shmall} kernel.shmmax = ${shmmax} kernel.shmmni = 4096 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 vm.min_free_kbytes = 524288 EOF -
生效内核参数
sysctl -p -
资源限制:修改/etc/security/limits.conf
cat >> /etc/security/limits.conf<< EOF grid soft nproc 16384 grid hard nproc 16384 grid soft nofile 65536 grid hard nofile 65536 grid soft stack 10240 grid hard stack 32768 oracle soft nproc 16384 oracle hard nproc 16384 oracle soft nofile 65536 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768 * soft memlock unlimited * hard memlock unlimited EOF -
修改/etc/security/limits.d/20-nproc.conf
sed -i -e "s/4096/16384/g" /etc/security/limits.d/20-nproc.conf echo "* hard nproc 16384" >> /etc/security/limits.d/20-nproc.conf
6、关闭selinux和禁用服务
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
systemctl stop firewalld.service
systemctl disable firewalld
systemctl stop avahi-daemon
systemctl disable avahi-daemon
systemctl disable bluetooth
systemctl disable cpuspeed
systemctl disable cups
systemctl disable firstboot
systemctl disable ip6tables
systemctl disable iptables
systemctl disable pcmcia
systemctl enable rc-local
systemctl start rc-local
systemctl stop NetworkManager
systemctl disable NetworkManager
7、其他设置
-
取消ctl+alt+delete重启
rm -f /usr/lib/systemd/system/ctrl-alt-del.target -
关闭Transparent HugePages
echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag -
设置RemoveIPC,编辑/etc/systemd/logind.conf
RemoveIPC=no -
重启服务
systemctl daemon-reload systemctl restart systemd-logind -
设定挂载(如果存在/dev/shm的话)
echo "tmpfs /dev/shm tmpfs defaults 0 0" >> /etc/fstab -
禁用路由
cat>> /etc/sysconfig/network<<EOF NOZEROCONF=yes EOF -
NTP网络时间服务器
注释contab -l的ntpdate -s 同步(如果有),可以设置ntp服务器。
三、共享磁盘配置
除配置iscsi服务端外,其他步骤每个节点执行
参考:iscsi安装参考文档
注:首先配置的asm表决盘三块应该是相同大小。
1、配置iscsi服务端
-
安装
yum install -y target* -
启动并自启
systemctl enable target systemctl start target -
将未格式化、未分区的硬盘进行分区通过
fdisk -l检查到/dev/sdb是我们需要进行共享的磁盘,先将它分区,但不需要格式化[root@ora1 grid]# fdisk /dev/sdb 命令(输入 m 获取帮助):n Select (default p): p 分区号 (1-4,默认 1):1 起始 扇区 (2048-41943039,默认为 2048):2048 Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):13981696 命令(输入 m 获取帮助):n Select (default p): p 分区号 (2-4,默认 2):2 起始 扇区 (13981697-41943039,默认为 13983744):13983744 Last 扇区, +扇区 or +size{K,M,G} (13983744-41943039,默认为 41943039):27962026 命令(输入 m 获取帮助):n Select (default p): p 分区号 (3,4,默认 3):3 起始 扇区 (13981697-41943039,默认为 27963392):27963392 Last 扇区, +扇区 or +size{K,M,G} (27963392-41943039,默认为 41943039):41943039 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。 -
查看分区
ora1 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 49G 0 part ├─centos-root 253:0 0 45.1G 0 lvm / └─centos-swap 253:1 0 3.9G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 6G 0 part ├─sdb2 8:18 0 6G 0 part └─sdb3 8:19 0 8G 0 part sr0 11:0 1 4.5G 0 rom loop0 7:0 0 4.5G 1 loop /mnt/iso -
进入子系统
[root@ora1 ~]# targetcli -
添加硬盘信息格式
/> /backstores/block create DB1 /dev/sdb1 /> /backstores/block create DB2 /dev/sdb2 /> /backstores/block create DB3 /dev/sdb3 /> /backstores/block create DB4 /dev/sdb4 -
创建iscsi,格式:/iscsi create 格式.年份-月份.*.com.自定义名称
/> /iscsi create iqn.2021-10.21.com.oracle -
关联block和target
/> /iscsi/iqn.2021-10.21.com.oracle/tpg1/luns create /backstores/block/DB1 /> /iscsi/iqn.2021-10.21.com.oracle/tpg1/luns create /backstores/block/DB2 /> /iscsi/iqn.2021-10.21.com.oracle/tpg1/luns create /backstores/block/DB3 /> /iscsi/iqn.2021-10.21.com.oracle/tpg1/luns create /backstores/block/DB4 -
创建acl
/> /iscsi/iqn.2021-10.21.com.oracle/tpg1/acls create iqn.2021-10.21.com.oracle:ora -
退出
/> exit Global pref auto_save_on_exit=true Configuration saved to /etc/target/saveconfig.json -
重启服务
systemctl restart target注:此时会有端口开放
[root@ora1 ~]# netstat -tunlp |grep 3260 tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN -
2、配置iscsi客户端
-
安装
yum install -y iscsi* -
开机自启
systemctl enable iscsid -
发现target
注:有输出才是被发现,-p 后面的参数是iscsi服务端的ip
[root@ora1 ~]# iscsiadm -m discovery -t st -p 192.168.3.74 192.168.3.74:3260,1 iqn.2021-10.21.com.oracle -
修改/etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2021-10.21.com.oracle:ora -
重启服务
systemctl restart iscsid -
登录
注:需要发现后,才能登陆
iscsiadm -m node -T iqn.2021-10.21.com.oracle -p 192.168.3.74 -l如果在主机A格式化了共享盘,在B上其实有了,但可能需要重新登录后,才能在
lsblk中看见,不登录也可以直接用格式化的磁盘 -
检查,其中sdc,sdd,sde就是我们共享盘啦
[root@ora1 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 49G 0 part ├─centos-root 253:0 0 45.1G 0 lvm / └─centos-swap 253:1 0 3.9G 0 lvm [SWAP] sdb 8:16 0 50G 0 disk ├─sdb1 8:17 0 8G 0 part ├─sdb2 8:18 0 8G 0 part ├─sdb3 8:19 0 8G 0 part └─sdb4 8:20 0 26G 0 part sdc 8:32 0 8G 0 disk └─sdc1 8:33 0 8G 0 part sdd 8:48 0 1K 0 disk sde 8:64 0 8G 0 disk sdf 8:80 0 8G 0 disk sr0 11:0 1 4.5G 0 rom loop0 7:0 0 4.5G 1 loop /mnt/iso -
在节点一分区,并在节点二重新登录
节点一:
[root@ora1 ~]# fdisk /dev/sdc [root@ora1 ~]# fdisk /dev/sdd [root@ora1 ~]# fdisk /dev/sde [root@ora1 ~]# fdisk /dev/sdf节点二:
# 注销 [root@ora2 ~]# iscsiadm -m node -T iqn.2021-10.21.com.oracle -p 192.168.3.74 -u Logging out of session [sid: 6, target: iqn.2021-10.21.com.oracle, portal: 192.168.3.74,3260] Logout of [sid: 6, target: iqn.2021-10.21.com.oracle, portal: 192.168.3.74,3260] successful. # 重新登录 [root@ora2 ~]# iscsiadm -m node -T iqn.2021-10.21.com.oracle -p 192.168.3.74 -l Logging in to [iface: default, target: iqn.2021-10.21.com.oracle, portal: 192.168.3.74,3260] (multiple) Login to [iface: default, target: iqn.2021-10.21.com.oracle, portal: 192.168.3.74,3260] successful. # 可以看到磁盘被分区了 [root@ora2 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 49G 0 part ├─centos-root 253:0 0 45.1G 0 lvm / └─centos-swap 253:1 0 3.9G 0 lvm [SWAP] sdb 8:16 0 8G 0 disk └─sdb1 8:17 0 8G 0 part sdc 8:32 0 26G 0 disk └─sdc1 8:33 0 26G 0 part sdd 8:48 0 8G 0 disk └─sdd1 8:49 0 8G 0 part sde 8:64 0 8G 0 disk └─sde1 8:65 0 8G 0 part sr0 11:0 1 4.5G 0 rom
3、配置多路径
参考文档:
-
安装软件(如果没有安装)
yum install device-mapper* -y -
启用模块
modprobe dm-multipath modprobe dm-round-robin -
查看是否启用
[root@ora1 ~]# lsmod | grep ^dm_m[uo] dm_multipath 27792 1 dm_round_robin dm_mod 124501 9 dm_multipath,dm_log,dm_mirror -
生成Multipath而配置文件
mpathconf --enable --find_multipaths y --with_module y --with_multipathd y -
添加共享磁盘的wwid
# 将添加到/etc/multipath/wwid [root@ora1 ~]# multipath -a /dev/sdc wwid '36001405845f59a2eb5e43b6b20604d27' added [root@ora1 ~]# multipath -a /dev/sdd wwid '36001405b381f6cd51044a1b89aab5fbe' added [root@ora1 ~]# multipath -a /dev/sde wwid '36001405146055fb6230434b9ec999dc7' added [root@ora1 ~]# multipath -a /dev/sdf wwid '360014059099bfbbcb9349b081de121e8' added -
修改/etc/multipath.conf配置文件
注:将本地磁盘排除,注意如果直接复制文件到另一节点注意被排除的硬盘
defaults { user_friendly_names yes find_multipaths yes path_grouping_policy multibus path_selector "round-robin 0" failback manual rr_weight priorities no_path_retry 5 } blacklist { devnode "sr0" } multipaths { multipath { wwid 36001405845f59a2eb5e43b6b20604d27 alias RAC-OCRVOTE1 } multipath { wwid 36001405146055fb6230434b9ec999dc7 alias RAC-OCRVOTE2 } multipath { wwid 360014059099bfbbcb9349b081de121e8 alias RAC-OCRVOTE3 } multipath { wwid 36001405b381f6cd51044a1b89aab5fbe alias RAC-DATA } } -
重启服务
systemctl restart multipathd -
检查
此时查看
multipath -v3 | grep "not in wwids file, skipping",没有报错。查看
[root@ora1 ~]# ll /dev/mapper/RAC-* lrwxrwxrwx. 1 root root 7 Oct 21 02:59 /dev/mapper/RAC-DATA -> ../dm-8 lrwxrwxrwx. 1 root root 8 Oct 21 02:59 /dev/mapper/RAC-DATA1 -> ../dm-10 lrwxrwxrwx. 1 root root 7 Oct 21 02:59 /dev/mapper/RAC-OCRVOTE1 -> ../dm-7 lrwxrwxrwx. 1 root root 7 Oct 21 02:59 /dev/mapper/RAC-OCRVOTE1p1 -> ../dm-9 lrwxrwxrwx. 1 root root 7 Oct 21 02:59 /dev/mapper/RAC-OCRVOTE2 -> ../dm-4 lrwxrwxrwx. 1 root root 7 Oct 21 02:59 /dev/mapper/RAC-OCRVOTE2p1 -> ../dm-6 lrwxrwxrwx. 1 root root 7 Oct 21 02:59 /dev/mapper/RAC-OCRVOTE3 -> ../dm-3 lrwxrwxrwx. 1 root root 7 Oct 21 02:59 /dev/mapper/RAC-OCRVOTE3p1 -> ../dm-5查看
[root@ora1 ~]# multipathd show paths hcil dev dev_t pri dm_st chk_st dev_st next_check 4:0:0:0 sdc 8:32 1 active ready running XXXXXXX... 15/20 4:0:0:1 sdf 8:80 1 active ready running XXXXXXX... 15/20 4:0:0:2 sde 8:64 1 active ready running XXXXXXX... 15/20 4:0:0:3 sdd 8:48 1 active ready running XXXXXXX... 15/20到此multipath 配置完成!
4、配置udev
参考文档:udev简介及配置
通过UDEV配置,能够让Oracle对磁盘名进行持久化并改变磁盘访问权限为grid:asmadmin。这样在ASM的配置过程中能够看到磁盘。今后增加磁盘也不会改变原有的磁盘名称。该步骤可使用ASMLIB
-
批量生成配置文件并添加到/etc/udev/rules.d/99-oracle-asmdevices.rules
模板:
# KERNEL=="dm-*",SYMLINK+="",ENV{DM_UUID}=="",OWNER="grid",GROUP="asmadmin",MODE="0660" ENV{DM_UUID}==""依次为上诉查找的结果,SYMLINK(该名称作为/dev/.....)具体命令:
for i in RAC-DATA RAC-OCRVOTE1 RAC-OCRVOTE2 RAC-OCRVOTE3; do printf "KERNEL==\"dm-*\",SYMLINK+=\"%s\",ENV{DM_UUID}==\"%s\",OWNER=\"grid\",GROUP=\"asmadmin\",MODE=\"0660\" \n" "$i" "$(udevadm info --query=all --name=/dev/mapper/$i |grep -i -o dm_uuid.*)"; done | sed 's\"DM_UUID=\"\g' KERNEL=="dm-*",SYMLINK+="RAC-DATA",ENV{DM_UUID}=="mpath-36001405b381f6cd51044a1b89aab5fbe",OWNER="grid",GROUP="asmadmin",MODE="0660" KERNEL=="dm-*",SYMLINK+="RAC-OCRVOTE1",ENV{DM_UUID}=="mpath-36001405845f59a2eb5e43b6b20604d27",OWNER="grid",GROUP="asmadmin",MODE="0660" KERNEL=="dm-*",SYMLINK+="RAC-OCRVOTE2",ENV{DM_UUID}=="mpath-36001405146055fb6230434b9ec999dc7",OWNER="grid",GROUP="asmadmin",MODE="0660" KERNEL=="dm-*",SYMLINK+="RAC-OCRVOTE3",ENV{DM_UUID}=="mpath-360014059099bfbbcb9349b081de121e8",OWNER="grid",GROUP="asmadmin",MODE="0660" -
双节点配置完完规则后,重启udev服务
udevadm control --reload-rules udevadm trigger --type=devices --action=change -
测试文件是否生效
在查看
ll /dev/mapper/时,能够发现RAC-FRA1 -> ../dm-5,RAC-OCRVOTE1 -> ../dm-6,RAC-DATA1 -> ../dm-7,针对dm-5、dm-6、dm-7进行查看。udevadm test /sys/block/dm-5查看权限分配是否正确
[root@ora1 rules.d]# ll /dev/dm-5 brw-rw---- 1 grid asmadmin 253, 5 7月 4 14:06 /dev/dm-5
四、安装Grid Infrastructure
-
互信:在grid的安装包下,使用grid用户执行
./oui/prov/resources/scripts/sshUserSetup.sh -hosts "ora1 ora2" -user grid -advanced -noPromptPassphrase -
编辑./install/response/gridsetup.rsp资源文件
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v12.2.0
INVENTORY_LOCATION=/u01/app/oraInventory
oracle.install.option=CRS_CONFIG
ORACLE_BASE=/u01/app/grid/base
oracle.install.asm.OSDBA=asmdba
oracle.install.asm.OSOPER=asmoper
oracle.install.asm.OSASM=asmadmin
# scan name
oracle.install.crs.config.gpnp.scanName=ora-scan
oracle.install.crs.config.gpnp.scanPort=1521
oracle.install.crs.config.ClusterConfiguration=STANDALONE
oracle.install.crs.config.configureAsExtendedCluster=false
oracle.install.crs.config.memberClusterManifestFile=
# 集群名可以默认
oracle.install.crs.config.clusterName=ora-scan
oracle.install.crs.config.gpnp.configureGNS=false
oracle.install.crs.config.autoConfigureClusterNodeVIP=false
oracle.install.crs.config.gpnp.gnsOption=
oracle.install.crs.config.gpnp.gnsClientDataFile=
oracle.install.crs.config.gpnp.gnsSubDomain=
oracle.install.crs.config.gpnp.gnsVIPAddress=
oracle.install.crs.config.sites=
# 主机名
oracle.install.crs.config.clusterNodes=ora1:ora1-vip:HUB,ora2:ora2-vip:HUB
# 1:public,5:ASM&private,3:not use
oracle.install.crs.config.networkInterfaceList=eth0:192.168.0.0:1,eth1:192.168.8.0:5
oracle.install.asm.configureGIMRDataDG=false
oracle.install.crs.config.storageOption=FLEX_ASM_STORAGE
oracle.install.crs.config.useIPMI=false
oracle.install.crs.config.ipmi.bmcUsername=
oracle.install.crs.config.ipmi.bmcPassword=
oracle.install.asm.storageOption=ASM
oracle.install.asmOnNAS.ocrLocation=
oracle.install.asmOnNAS.configureGIMRDataDG=
oracle.install.asmOnNAS.gimrLocation=
oracle.install.asm.SYSASMPassword=Password@1
# 仅用于OCR(DATA盘后续添加)
oracle.install.asm.diskGroup.name=OCR
oracle.install.asm.diskGroup.redundancy=NORMAL
oracle.install.asm.diskGroup.AUSize=4
oracle.install.asm.diskGroup.FailureGroups=
# OCR磁盘组
oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/RAC-OCRVOTE1,,/dev/RAC-OCRVOTE2,,/dev/RAC-OCRVOTE3,
# 指定OCR磁盘组
oracle.install.asm.diskGroup.disks=/dev/RAC-OCRVOTE1,/dev/RAC-OCRVOTE2,/dev/RAC-OCRVOTE3
oracle.install.asm.diskGroup.quorumFailureGroupNames=
# 磁盘组发现
oracle.install.asm.diskGroup.diskDiscoveryString=dev/RAC-*
oracle.install.asm.monitorPassword=Password@1
oracle.install.asm.gimrDG.name=
oracle.install.asm.gimrDG.redundancy=
oracle.install.asm.gimrDG.AUSize=
oracle.install.asm.gimrDG.FailureGroups=
oracle.install.asm.gimrDG.disksWithFailureGroupNames=
oracle.install.asm.gimrDG.disks=
oracle.install.asm.gimrDG.quorumFailureGroupNames=
oracle.install.asm.configureAFD=false
oracle.install.crs.configureRHPS=false
oracle.install.crs.config.ignoreDownNodes=false
oracle.install.config.managementOption=NONE
oracle.install.config.omsHost=
oracle.install.config.omsPort=0
oracle.install.config.emAdminUser=
oracle.install.config.emAdminPassword=
oracle.install.crs.rootconfig.executeRootScript=false
oracle.install.crs.rootconfig.configMethod=
oracle.install.crs.rootconfig.sudoPath=
oracle.install.crs.rootconfig.sudoUserName=
oracle.install.crs.config.batchinfo=
oracle.install.crs.app.applicationAddress=
-
检索安装环境
一些CVU检查需要根特权才能从系统中检索所需的信息。在这种情况下,当根凭据不可用时,用户会收到“PRVG-11250”等消息的通知:检查“RPM软件包管理器数据库”没有执行,因为它需要“根”用户特权。MOS文档
./runcluvfy.sh stage -pre crsinst -n ora1,ora2 -method root -
安装验证,根据日志过滤
VERIFICATION_FAILED./gridSetup.sh -silent -responseFile ./install/response/gridsetup.rsp -executePrereqs
安装前的注意事项:
安装之前请确保其他节点的$ORACLE_HOME没有文件
安装包别放到/tmp之下,建议放到$ORACLE_HOME
网卡 私有网卡应该是private和asm
脚本执行顺序为在节点一、二orainstRoot.sh、再节点一、二执行脚本root.sh
仅在确定检测的日志无严重错误时才能使用
-ignorePrereqFailure参数
-
使用grid用户,进入家目录后开始安装
rm -rf /u01/app/oraInventory/* && ./gridSetup.sh -silent -responsefile ./install/response/gridsetup.rsp -ignoreInternalDriverError -ignorePrereqFailure -
HAIP:如果使用云服务器搭建,最好关闭HAIP,否则会造成无法连接节点的169.254地址,其他节点的+ASM实例无法启动
export HAIP_UNSUPPORTED=YES -
root.sh 和oraInst.sh执行顺序:
Execute /u01/app/oraInventory/orainstRoot.sh on the following nodes: [ora1, ora2] Execute /u01/app/grid/home/root.sh on the following nodes: [ora1, ora2] -
检查实例状态:任何grid用户执行
lsnrctl staatus均有实例启动Services Summary... Service "+ASM" has 1 instance(s). Instance "+ASM2", status READY, has 1 handler(s) for this service... Service "+ASM_OCR" has 1 instance(s). Instance "+ASM2", status READY, has 1 handler(s) for this service... The command completed successfully -
安装完成后使用grid用户执行,可能会有Configuration failed,关系不大
/u01/app/grid/home/gridSetup.sh -executeConfigTools -responseFile ./install.rsp -silent
五、安装oracle软件
-
oracle用户互信
./oui/prov/resources/scripts/sshUserSetup.sh -hosts "ora1 ora2" -user oracle -advanced -noPromptPassphrase -
rsp资源文件
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory # oracle的用户$ORACLE_HOME ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1 # oracle的用户$ORACLE_BASE ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=oper oracle.install.db.OSBACKUPDBA_GROUP=backupdba oracle.install.db.OSDGDBA_GROUP=dgdba oracle.install.db.OSKMDBA_GROUP=kmdba oracle.install.db.OSRACDBA_GROUP=dba oracle.install.db.rootconfig.executeRootScript=false oracle.install.db.rootconfig.configMethod= oracle.install.db.rootconfig.sudoPath= oracle.install.db.rootconfig.sudoUserName= # 节点主机名 oracle.install.db.CLUSTER_NODES=ora1,ora2 oracle.install.db.config.starterdb.type= oracle.install.db.config.starterdb.globalDBName= oracle.install.db.config.starterdb.SID= oracle.install.db.ConfigureAsContainerDB= oracle.install.db.config.PDBName= oracle.install.db.config.starterdb.characterSet= oracle.install.db.config.starterdb.memoryOption= oracle.install.db.config.starterdb.memoryLimit= oracle.install.db.config.starterdb.installExampleSchemas= oracle.install.db.config.starterdb.password.ALL= oracle.install.db.config.starterdb.password.SYS= oracle.install.db.config.starterdb.password.SYSTEM= oracle.install.db.config.starterdb.password.DBSNMP= oracle.install.db.config.starterdb.password.PDBADMIN= oracle.install.db.config.starterdb.managementOption= oracle.install.db.config.starterdb.omsHost= oracle.install.db.config.starterdb.omsPort= oracle.install.db.config.starterdb.emAdminUser= oracle.install.db.config.starterdb.emAdminPassword= oracle.install.db.config.starterdb.enableRecovery= oracle.install.db.config.starterdb.storageType= oracle.install.db.config.starterdb.fileSystemStorage.dataLocation= oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation= oracle.install.db.config.asm.diskGroup= oracle.install.db.config.asm.ASMSNMPPassword= -
执行安装验证
./runInstaller -executePrereqs -silent -responsefile ./ora.rsp注: 其他节点需要清空$ORACLE_HOME
-
执行安装
./runInstaller -silent -ignorePrereqFailure -responsefile ./ora.rsp -
按照以下顺序执行root.sh
As a root user, execute the following script(s): 1. /u01/app/oracle/product/19.3.0/db_1/root.sh Execute /u01/app/oracle/product/19.3.0/db_1/root.sh on the following nodes: [ora1, ora2]
六、创建磁盘组
-
使用grid用户创建DATA磁盘组
[grid@ora1 ~]$ asmca -silent \ -sysAsmPassword Password@1 \ -asmsnmpPassword Password@1 \ -createDiskGroup -diskGroupName DATA \ # 根据实际情况填写disk参数 -disk /dev/RAC-DATA \ -redundancy EXTERNAL -au_size 4 -compatible.asm 19.0.0.0.0 -compatible.rdbms 19.0.0.0.0 [INFO] [DBT-30001] Disk groups created successfully. Check /u01/app/grid/base/cfgtoollogs/asmca/asmca-210904AM042040.log for details.
七、创建数据库实例
-
dbca.rsp资源文件
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0 # gdb gdbName=oracle # SID sid=oracle databaseConfigType=RAC RACOneNodeServiceName= policyManaged=false createServerPool=false serverPoolName= cardinality= force=false pqPoolName= pqCardinality= createAsContainerDatabase=false numberOfPDBs=0 pdbName= useLocalUndoForPDBs=true pdbAdminPassword= # 节点主机名 nodelist=ora1,ora2 templateName=/u01/app/oracle/product/19.3.0/db_1/assistants/dbca/templates/New_Database.dbt # sys密码 sysPassword=Password@1 # syspass密码 systemPassword=Password@1 serviceUserPassword= emConfiguration= emExpressPort=5500 runCVUChecks=FALSE dbsnmpPassword= omsHost= omsPort=0 emUser= emPassword= dvConfiguration=false dvUserName= dvUserPassword= dvAccountManagerName= dvAccountManagerPassword= olsConfiguration=false datafileJarLocation= datafileDestination=+DATA/{DB_UNIQUE_NAME}/ recoveryAreaDestination= storageType=ASM diskGroupName=+DATA/{DB_UNIQUE_NAME}/ asmsnmpPassword= recoveryGroupName= # 字符集 characterSet=AL32UTF8 # 国家字符集 nationalCharacterSet=AL16UTF16 registerWithDirService=false dirServiceUserName= dirServicePassword= walletPassword= listeners=LISTENER variablesFile= variables= initParams= sampleSchema=false memoryPercentage=40 databaseType=MULTIPURPOSE automaticMemoryManagement=false totalMemory=0 -
安装前检查
注:如果有错误,可以从List of failed Tasks开始看
dbca -silent -responsefile assistants/dbca/dbca.rsp -executePrereqs -databaseConfigType RAC -
执行安装
dbca -silent -responsefile assistants/dbca/dbca.rsp -createDatabase -ignorePrereqFailure
到此安装完毕,oracle用户通过sqlplus尝试连接实例,grid用户通过crs status res -t检查状态




