护工级Oracle 11g RAC集群实战安装教程

一、基础环境准备

1、下载所需的操作系统镜像包和数据库安装包

护工级Oracle 11g RAC集群实战安装教程-每日运维

  1. 链接: https://pan.baidu.com/s/1QM9lLCJhZ6La8zD7ngBRpw 提取码: n8vs

护工级Oracle 11g RAC集群实战安装教程-每日运维

2、安装操作系统

本次安装以两节点 RAC 为例,需要两台虚机,参考配置内存 8g、CPU 4 核、用于存储数据的磁盘 40G,至少 2 个网卡,且网卡名称一致,两张网卡配置 IP 分别为 Public IP 地址、Private IP 地址,VIP 地址、SCAN IP 地址不需要配置在网卡上。

节点操作系统版本数据库版本内存磁盘网卡
节点1Oracle linux 7.511.2.0.44g40G双网卡
节点2Oracle linux 7.511.2.0.44g40G双网卡

以下步骤均需两个节点都操作。
下图为第二块网卡添加
护工级Oracle 11g RAC集群实战安装教程-每日运维
选择加载下载的镜像包
护工级Oracle 11g RAC集群实战安装教程-每日运维
点击开启虚拟机进行操作系统安装
护工级Oracle 11g RAC集群实战安装教程-每日运维
选择第一行
护工级Oracle 11g RAC集群实战安装教程-每日运维
点击enter,选择英文继续continue
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
选择时区上海
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
磁盘分区选择默认即可
护工级Oracle 11g RAC集群实战安装教程-每日运维
选择安装方式,这里我们选择带桌面
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
开启双网卡
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
点击Begin Installation进行安装
护工级Oracle 11g RAC集群实战安装教程-每日运维
设置管理员的密码
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
点击reboot,然后进行lincense授权,最后点击FINISH CONFIGURATION,至此安装完成
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

3、集群IP规划

RAC集群至少需要规划7个IP地址,两台虚机分别作为RAC 节点 1、节点 2,参考IP规划如下:

主机名rac1rac2
Public IP 地址192.168.59.243192.168.59.243
VIP 地址192.168.59.250192.168.59.251
Private IP 地址192.168.1.1192.168.1.2
SCAN IP 地址192.168.59.100

4、配置yum源(两个节点都执行)

  1. [root@localhost network-scripts]# mount /dev/cdrom /mnt

  2. [root@localhost network-scripts]# cat /etc/yum.repos.d/local.repo

  3. > [local]

  4. > name=local

  5. > baseurl=file:///mnt

  6. > gpgcheck=0

  7. > enabled=1

  8. > EOF

  1. [root@localhost yum.repos.d]# cd /etc/yum.repos.d

  2. [root@localhost yum.repos.d]# rm -rf public-yum-ol7.repo

  3. [root@localhost yum.repos.d]# yum list all|wc -l

  4. [root@localhost yum.repos.d]# yum makecache

护工级Oracle 11g RAC集群实战安装教程-每日运维

5、安装依赖包(两个节点都执行)

  1. yum install -y readline* binutils compat-libstdc++ compat-libstdc++ elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc glibc-common glibc-devel glibc-headers libaio libaio libaio-devel libaio-devel libgcc libgcc libstdc++ libstdc++ libstdc++-devel make pdksh sysstat unixODBC unixODBC unixODBC-devel unixODBC-devel binutils libaio-devel libaio elfutils-libelf-devel compat-libstdc++-33 libgcc gcc gcc-c++ glibc sysstat libstdc++ libstdc++-devel unixODBC-devel unixODBC

  2. yum install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat unixODBC-devel unixODBC -y

护工级Oracle 11g RAC集群实战安装教程-每日运维

6、配置 IP 等相关服务

修改主机名

节点1:

  1. [root@localhost ~]# hostnamectl set-hostname rac1

护工级Oracle 11g RAC集群实战安装教程-每日运维
节点2:

  1. [root@localhost ~]# hostnamectl set-hostname rac2

护工级Oracle 11g RAC集群实战安装教程-每日运维

配置host文件(两台机器都执行)

  1. cat /etc/hosts

  2. #Public IP

  3. 192.168.59.243 rac1

  4. 192.168.59.244 rac2

  5. #Private IP

  6. 192.168.1.1 rac1-priv

  7. 192.168.1.2 rac2-priv

  8. #Vip IP

  9. 192.168.59.250 rac1-vip

  10. 192.168.59.251 rac2-vip

  11. #Scan IP

  12. 192.168.59.100 rac-scan

  13. EOF

护工级Oracle 11g RAC集群实战安装教程-每日运维
节点1:

  1. ##配置Public IP

  2. nmcli connection modify ens33 ipv4.addresses 192.168.59.243/24 ipv4.gateway 192.168.59.1 ipv4.method manual autoconnect yes

  3. ##配置Private IP

  4. nmcli connection modify ens33 ipv4.addresses 192.168.1.1/24 ipv4.method manual autoconnect yes

  5. ##生效

  6. nmcli connection up ens33

  7. nmcli connection up ens34

护工级Oracle 11g RAC集群实战安装教程-每日运维
节点2:

  1. ##配置Public IP

  2. nmcli connection modify ens33 ipv4.addresses 192.168.59.244/24 ipv4.gateway 192.168.59.1 ipv4.method manual autoconnect yes

  3. ##配置Private IP

  4. nmcli connection modify ens34 ipv4.addresses 192.168.1.2/24 ipv4.method manual autoconnect yes

  5. ##生效

  6. nmcli connection up ens33

  7. nmcli connection up ens34

护工级Oracle 11g RAC集群实战安装教程-每日运维

7、关闭防火墙(两个节点都执行)

  1. [root@localhost network-scripts]# systemctl stop firewalld

  2. [root@localhost network-scripts]# systemctl disable firewalld

  3. [root@localhost network-scripts]# systemctl status firewalld

护工级Oracle 11g RAC集群实战安装教程-每日运维

8、关闭selinux(两个节点都执行)

  1. [root@localhost network-scripts]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

  2. [root@localhost network-scripts]# setenforce 0 #selinux 配置需要重启生效!

9、设置共享存储(两个节点都执行)

本例使用VM虚修改vmk文件使用udev。
在VMvare虚拟机上添加共享存储。本例OCR 盘采用 normal 冗余,数据文件盘采用 external 冗余,故需要3 块 20G 且没有挂载的 SATA 可共享磁盘作为 OCR,1 块 50G 且没有挂载的SATA 可共享磁盘作为数据文件存储。
节点1机器:
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
节点2机器:
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
在浏览中找到第一台添加好的硬盘
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
打开两个虚拟机的安装目录,在vmx文件最后添加(scsi1指定总线为1的所有盘):

  1. scsi1.sharedBus = "virtual"

  2. disk.locking = "false"

  3. diskLib.dataCacheMaxSize = "0"

  4. diskLib.dataCacheMaxReadAheadSize = "0"

  5. diskLib.dataCacheMinReadAheadSize = "0"

  6. diskLib.dataCachePageSize = "4096"

  7. diskLib.maxUnsyncedWrites = "0"

  8. disk.EnableUUID = "TRUE"

护工级Oracle 11g RAC集群实战安装教程-每日运维

节点1:

  1. [root@rac1 ~]# lsblk

护工级Oracle 11g RAC集群实战安装教程-每日运维
节点2:

  1. [root@rac2 ~]# lsblk

护工级Oracle 11g RAC集群实战安装教程-每日运维

  1. **两个节点都执行**:

  2. [root@rac1 ~]# udevadm info -q all -n /dev/sdb|grep 'S: disk/by-id/scsi'

  3. [root@rac1 ~]# udevadm info -q all -n /dev/sdc|grep 'S: disk/by-id/scsi'

  4. [root@rac1 ~]# udevadm info -q all -n /dev/sdd|grep 'S: disk/by-id/scsi'

  5. [root@rac1 ~]# udevadm info -q all -n /dev/sde|grep 'S: disk/by-id/scsi'

新建规则文件(两个节点都执行)

  1. [root@rac1 ~]# vi /etc/udev/rules.d/99-oracle-asmdevices.rules

  2. KERNEL=="sd*", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000c29b726c700e3ad7a03c15281158", RUN+="/bin/sh -c 'mknod dev/asm-ocr1 b $major $minor; chown grid:asmadmin dev/asm-ocr1; chmod 0660 dev/asm-ocr1'"

  3. KERNEL=="sd*", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000c2939804eef0627fec6584ac1965", RUN+="/bin/sh -c 'mknod dev/asm-ocr2 b $major $minor; chown grid:asmadmin dev/asm-ocr2; chmod 0660 dev/asm-ocr2'"

  4. KERNEL=="sd*", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000c2959a11c65fe9051d08e5b5ae09", RUN+="/bin/sh -c 'mknod dev/asm-ocr3 b $major $minor; chown grid:asmadmin dev/asm-ocr3; chmod 0660 dev/asm-ocr3'"

  5. KERNEL=="sd*", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000c2928974e5221143335907c14053", RUN+="/bin/sh -c 'mknod dev/asm-ocr4 b $major $minor; chown grid:asmadmin dev/asm-ocr4; chmod 0660 dev/asm-ocr4'"

重载udev(两个节点都执行)

  1. [root@rac1 ~]# udevadm control --reload-rules

  2. [root@rac1 ~]# udevadm trigger --type=devices --action=change

  3. [root@rac1 ~]# ll /dev/asm*

护工级Oracle 11g RAC集群实战安装教程-每日运维

10、关闭透明大页和 NUMA(两个节点都执行)

  1. [root@rac1 ~]# sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub

  2. [root@rac1 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

11、avahi-daemon 配置(两个节点都执行)

  1. yum install -y avahi*

  2. systemctl stop avahi-daemon.socket

  3. systemctl stop avahi-daemon.service

  4. pgrep -f avahi-daemon | awk '{print "kill -9 "$2}'

  5. 配置 NOZEROCONF:

  6. cat /etc/sysconfig/network

  7. NOZEROCONF=yes

  8. EOF

护工级Oracle 11g RAC集群实战安装教程-每日运维

二、操作系统参数配置

1、配置系统参数(两个节点都执行)

  1. cat /etc/sysctl.conf

  2. #ORACLE SETTING

  3. #可以拥有的异步IO请求数

  4. fs.aio-max-nr = 1048576

  5. #允许文件句柄的最大数目

  6. fs.file-max = 6815744

  7. #信号参数

  8. kernel.sem = 250 32000 100 128

  9. #IP V4的端口范围

  10. net.ipv4.ip_local_port_range = 9000 65500

  11. #缓存区的缺省值

  12. net.core.rmem_default = 262144

  13. #缓存区的最大值

  14. net.core.rmem_max = 4194304

  15. #发送缓存区的缺省值

  16. net.core.wmem_default = 262144

  17. #发送缓存区的最大值

  18. net.core.wmem_max = 1048586

  19. #当系统检测到oops时,重新启动系统,以便系统能够重新初始化恢复正常工作

  20. kernel.panic_on_oops = 1

  21. #单个共享内存段最大值,让数据库在一个共享段里面的可以容纳整个SGA

  22. #最大值:比物理内存小1字节

  23. #(kernel.shmmax = 物理内存*1024*1024*1024-1)

  24. kernel.shmmax = 2684354560

  25. #控制共享内存页数(kernel.shmall = shmmax/4096)

  26. kernel.shmall = 655360

  27. #共享内存的最大数量

  28. kernel.shmmni = 4096

  29. #当系统内存使用90%的时候开始使用交换页面

  30. vm.swappiness=10

  31. #默认是100,增大这个参数设置了虚拟内存回收directory和i-node缓冲的倾向,这个值越大。越容易回收。

  32. vm.vfs_cache_pressure=200

  33. EOF

生效

  1. sysctl -p

2、配置系统资源限制(两个节点都执行)

配置limits.conf

  1. cat /etc/security/limits.conf

  2. #ORACLE SETTING

  3. #打开文件描述符大小

  4. grid soft nproc 16384

  5. grid hard nproc 16384

  6. oracle soft nproc 16384

  7. oracle hard nproc 16384

  8. #单个用户可用的进程数

  9. grid soft nofile 65536

  10. grid hard nofile 65536

  11. oracle soft nofile 65536

  12. oracle hard nofile 65536

  13. #进程堆栈段的大小

  14. grid soft stack 32768

  15. grid hard stack 32768

  16. oracle soft stack 32768

  17. oracle hard stack 32768

  18. EOF

配置pam.d/login

  1. cat /etc/pam.d/login

  2. session required pam_limits.so

  3. session required /lib64/security/pam_limits.so

  4. EOF

三、创建用户及组、目录(两个节点都执行)

  1. ##组创建

  2. /usr/sbin/groupadd -g 54321 oinstall

  3. /usr/sbin/groupadd -g 54322 dba

  4. /usr/sbin/groupadd -g 54323 oper

  5. /usr/sbin/groupadd -g 54324 backupdba

  6. /usr/sbin/groupadd -g 54325 dgdba

  7. /usr/sbin/groupadd -g 54326 kmdba

  8. /usr/sbin/groupadd -g 54327 asmdba

  9. /usr/sbin/groupadd -g 54328 asmoper

  10. /usr/sbin/groupadd -g 54329 asmadmin

  11. /usr/sbin/groupadd -g 54330 racdba

  12. #### 用户创建

  13. /usr/sbin/useradd -u 11012 -g oinstall -G asmadmin,asmdba,asmoper,dba,racdba,oper grid

  14. /usr/sbin/useradd -u 54321 -g oinstall -G asmdba,dba,backupdba,dgdba,kmdba,racdba,oper oracle

  15. #### 修改用户密码为oracle

  16. echo "oracle" |passwd oracle --stdin

  17. echo "oracle" |passwd grid --stdin

  18. #### 创建软件目录

  19. mkdir -p /u01/app/11.2.0/grid

  20. mkdir -p /u01/app/grid

  21. mkdir -p /u01/app/oracle/product/11.2.0/db

  22. mkdir -p /u01/app/oraInventory

  23. mkdir -p /backup

  24. mkdir -p /home/oracle/scripts

  25. chown -R oracle:oinstall /backup

  26. chown -R oracle:oinstall /home/oracle/scripts

  27. chown -R grid:oinstall /u01

  28. chown -R grid:oinstall /u01/app/grid

  29. chown -R grid:oinstall /u01/app/11.2.0/grid

  30. chown -R grid:oinstall /u01/app/oraInventory

  31. chown -R oracle:oinstall /u01/app/oracle

  32. chmod -R 775 /u01

护工级Oracle 11g RAC集群实战安装教程-每日运维

四、配置环境变量(两个节点都执行)

grid 用户:

  1. cat /home/grid/.bash_profile

  2. ################OracleBegin#########################

  3. umask 022

  4. export TMP=/tmp

  5. export TMPDIR=\$TMP

  6. export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

  7. export ORACLE_BASE=/u01/app/grid

  8. export ORACLE_HOME=/u01/app/11.2.0/grid

  9. export ORACLE_TERM=xterm

  10. export TNS_ADMIN=\$ORACLE_HOME/network/admin

  11. export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib

  12. export ORACLE_SID=+ASM1

  13. export PATH=/usr/sbin:\$PATH

  14. export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH

  15. alias sas='sqlplus as sysasm'

  16. export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '

  17. EOF

  18. [grid@rac1 ~]$ source /home/grid/.bash_profile

护工级Oracle 11g RAC集群实战安装教程-每日运维

  1. ```shell

  2. cat /home/grid/.bash_profile

  3. ################OracleBegin#########################

  4. umask 022

  5. export TMP=/tmp

  6. export TMPDIR=\$TMP

  7. export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

  8. export ORACLE_BASE=/u01/app/grid

  9. export ORACLE_HOME=/u01/app/11.2.0/grid

  10. export ORACLE_TERM=xterm

  11. export TNS_ADMIN=\$ORACLE_HOME/network/admin

  12. export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib

  13. export ORACLE_SID=+ASM2

  14. export PATH=/usr/sbin:\$PATH

  15. export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH

  16. alias sas='sqlplus as sysasm'

  17. export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '

  18. EOF

  19. [grid@rac2 ~]$ source home/grid/.bash_profile

  1. ![](https://admin.pgfans.cn/upload/editormd/20240714/0e9f625388218fdb107ab0261f91c794.png)

  2. **oracle 用户**:

  3. ```shell

  4. cat /home/oracle/.bash_profile

  5. ################OracleBegin#########################

  6. umask 022

  7. export TMP=/tmp

  8. export TMPDIR=\$TMP

  9. export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

  10. export ORACLE_BASE=/u01/app/oracle

  11. export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/db

  12. export ORACLE_HOSTNAME=rac1

  13. export ORACLE_TERM=xterm

  14. export TNS_ADMIN=\$ORACLE_HOME/network/admin

  15. export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib

  16. export ORACLE_SID=orcl1

  17. export PATH=/usr/sbin:\$PATH

  18. export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH

  19. alias sas='sqlplus as sysdba'

  20. export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '

  21. ################OracleEnd#########################

  22. EOF

  23. [oracle@rac1 ~]$ source home/oracle/.bash_profile

护工级Oracle 11g RAC集群实战安装教程-每日运维

  1. cat /home/oracle/.bash_profile

  2. ################OracleBegin#########################

  3. umask 022

  4. export TMP=/tmp

  5. export TMPDIR=\$TMP

  6. export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

  7. export ORACLE_BASE=/u01/app/oracle

  8. export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/db

  9. export ORACLE_HOSTNAME=rac2

  10. export ORACLE_TERM=xterm

  11. export TNS_ADMIN=\$ORACLE_HOME/network/admin

  12. export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib

  13. export ORACLE_SID=orcl2

  14. export PATH=/usr/sbin:\$PATH

  15. export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH

  16. alias sas='sqlplus as sysdba'

  17. export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '

  18. ################OracleEnd#########################

  19. EOF

  20. [oracle@rac2 ~]$ source /home/oracle/.bash_profile

护工级Oracle 11g RAC集群实战安装教程-每日运维

五、安装数据库

1、安装介质上传解压(节点1)

  1. [root@rac1 ~]# mkdir /soft

将下载的三个包上传至/soft路径下
护工级Oracle 11g RAC集群实战安装教程-每日运维

  1. [root@rac1 ~]# cd /soft/

  2. [root@rac1 soft]#unzip -q p13390677_112040_Linux-x86-64_1of7.zip

  3. [root@rac1 soft]#unzip -q p13390677_112040_Linux-x86-64_2of7.zip

  4. [root@rac1 soft]#unzip -q p13390677_112040_Linux-x86-64_3of7.zip

授权目录

  1. chown -R oracle:oinstall /soft/database

  2. chown -R grid:oinstall /soft/grid

root用户下,cvuqdisk安装(两个节点都执行)

  1. cd /soft/grid/rpm

  2. rpm -ivh cvuqdisk-1.0.9-1.rpm

传输到节点二安装

  1. scp cvuqdisk-1.0.9-1.rpm rac2:/tmp

  2. yum install -y smartmontools

  3. rpm -ivh /tmp/cvuqdisk-1.0.9-1.rpm

护工级Oracle 11g RAC集群实战安装教程-每日运维

六、安装 Grid 软件(节点1)

(一)安装VNC软件

1、安装VNC

  1. [root@rac1 rpm]#su - root

  2. [root@rac1 rpm]#sudo yum install tigervnc tigervnc-server -y

2、 修改配置

  1. [root@rac1 rpm]# vim /etc/sysconfig/vncservers

  1. 添加以下内容:

  2. # THIS FILE HAS BEEN REPLACED BY lib/systemd/system/vncserver@.service

  3. # VNCSERVERS="桌面号:系统用户 桌面号:系统用户"

  4. VNCSERVERS="1:grid 2:root"

  5. # VNCSERVERARGS[桌面号]="-geometry 分辨率 -alwaysshared[允许多个客户端同时连接] -depth [色深,值有8,16,24,32]"

  6. VNCSERVERARGS[1]="-geometry 1024x768 -alwaysshared -depth 24"

  7. VNCSERVERARGS[2]="-geometry 1024x768 -alwaysshared -depth 24"

3、设置密码

  1. [root@rac1 rpm]#vncpasswd

护工级Oracle 11g RAC集群实战安装教程-每日运维
4、 启动服务

  1. [root@rac1 rpm]# vncserver

护工级Oracle 11g RAC集群实战安装教程-每日运维
5、grid用户下执行vncpasswd和 vncserver

  1. [grid@rac1:/home/grid]$ vncpasswd

  2. [grid@rac1:/home/grid]$ vncserver

护工级Oracle 11g RAC集群实战安装教程-每日运维
6、oracle用户下执行vncpasswd和 vncserver

  1. [oracle@rac1:/home/oracle]$ vncpasswd

  2. [oracle@rac1:/home/oracle]$ vncserver

护工级Oracle 11g RAC集群实战安装教程-每日运维

(二)开始安装grid软件

在vnc客户端界面输入192.168.56.243:1,输入刚才输入的密码即可连接。

  1. [grid@rac2~]$source ~/.bash_profile

进入安装目录

  1. [grid@rac2~]$cd /soft/grid

执行安装程序开始安装,加上jar包防止弹窗不显示问题

  1. [grid@rac2~]$./runInstaller -jreLoc /etc/alternatives/jre_1.8.0

护工级Oracle 11g RAC集群实战安装教程-每日运维

选择集群模式安装

护工级Oracle 11g RAC集群实战安装教程-每日运维

自定义模式安装

护工级Oracle 11g RAC集群实战安装教程-每日运维

选择语言

护工级Oracle 11g RAC集群实战安装教程-每日运维

修改集群名称和 scan 名称

护工级Oracle 11g RAC集群实战安装教程-每日运维

配置 grid 用户节点间互信

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

确认网络信息是否正确

护工级Oracle 11g RAC集群实战安装教程-每日运维

选择ASM模式安装

护工级Oracle 11g RAC集群实战安装教程-每日运维
填写 OCR 裁决盘信息,OCR 裁决盘这里冗余模式 External,Normal,High 对应磁盘数量为 1,3,5,这里我们选择Normal。也就是需要三块盘。
护工级Oracle 11g RAC集群实战安装教程-每日运维
选择三块一样的磁盘
护工级Oracle 11g RAC集群实战安装教程-每日运维

填写 ASM 实例 SYS 用户密码为 oracle

护工级Oracle 11g RAC集群实战安装教程-每日运维

不使用IPMI

护工级Oracle 11g RAC集群实战安装教程-每日运维

选择用户组

护工级Oracle 11g RAC集群实战安装教程-每日运维

选择grid安装目录

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

安装前预检查

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

选择忽略即可

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

执行安装

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

  1. yum install libXp.so.6 -y

护工级Oracle 11g RAC集群实战安装教程-每日运维

执行 root 脚本(两个节点都执行)

护工级Oracle 11g RAC集群实战安装教程-每日运维

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

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

护工级Oracle 11g RAC集群实战安装教程-每日运维

没有打补丁的话,会报错

护工级Oracle 11g RAC集群实战安装教程-每日运维
进行补丁的安装(两个节点都执行)

补丁安装

这里我们安装18370031补丁包
护工级Oracle 11g RAC集群实战安装教程-每日运维

  1. 链接: https://pan.baidu.com/s/1_MOJ4eFwL3MCYTy3_OAvvA

  2. 提取码: hdi8

上传p18370031_112040_Linux-x86-64.zip补丁包

  1. cd /soft

护工级Oracle 11g RAC集群实战安装教程-每日运维

  1. [root@rac1 soft]#unzip -q p18370031_112040_Linux-x86-64.zip

补丁包赋权

  1. [root@rac1 soft]#chown -R grid:oinstall /soft/18370031

  2. [root@rac1 soft]#chown -R grid:oinstall /u01

  3. [root@rac1 soft]#chown -R grid:oinstall /u01/app/grid

  4. [root@rac1 soft]#chown -R grid:oinstall /u01/app/11.2.0/grid

  5. [root@rac1 soft]#chown -R grid:oinstall /u01/app/oraInventory

  6. [root@rac1 soft]#chown -R oracle:oinstall /u01/app/oracle

开始安装18370031补丁(两个节点都需要执行)

  1. opatch napply -oh $ORACLE_HOME -local /soft/18370031

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

节点2会报错,没有加载对应的java环境,我们手动去添加

  1. [grid@rac2:/u01/app/11.2.0/grid/oui/bin]$ ./attachHome.sh -jreLoc /tmp/jdk

然后再执行补丁命令

  1. [grid@rac2:/u01/app/11.2.0/grid/oui/bin]$opatch napply -oh $ORACLE_HOME -local /soft/18370031

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

安装过程中会报错,直接skip,不用管

Cause?-The plug-in failed in its perform method Action?-Refer to the logs or contact Oracle Support Services. Log File Location
/u01/app/oraInventory/logs/installActions2024-07-27_05-27-10PM.log

这个报错也直接skip

护工级Oracle 11g RAC集群实战安装教程-每日运维

护工级Oracle 11g RAC集群实战安装教程-每日运维

  1. [grid@rac1:/home/grid]$ crs_stat -t

护工级Oracle 11g RAC集群实战安装教程-每日运维

  1. [grid@rac2:/home/grid]$ crs_stat -t

护工级Oracle 11g RAC集群实战安装教程-每日运维

护工级Oracle 11g RAC集群实战安装教程-每日运维

七、创建 ASM 数据盘 DATA

  1. [grid@rac1:/home/grid]$ asmca

护工级Oracle 11g RAC集群实战安装教程-每日运维

点击 create 创建 DATA盘

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

重启两台主机,检查重启后Grid集群是否正常运行

  1. [grid@rac1:/home/grid]$ asmcmd lsdg

护工级Oracle 11g RAC集群实战安装教程-每日运维

  1. [grid@rac2:/u01/app/oraInventory/logs]$ asmcmd lsdg

护工级Oracle 11g RAC集群实战安装教程-每日运维

八、安装Oracle软件

  1. [oracle@rac1 ~]$ source ~/.bash_profile

  1. [oracle@rac1:/home/oracle]$ cd /soft/database

执行安装程序开始安装,加上jar包防止弹窗不显示问题

  1. [oracle@rac1:/home/oracle]$./runInstaller -jreLoc /etc/alternatives/jre_1.8.0

不配置 Oracle 邮件发送

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

跳过软件更新

护工级Oracle 11g RAC集群实战安装教程-每日运维

选择仅安装 oracle 软件

护工级Oracle 11g RAC集群实战安装教程-每日运维

配置 oracle 用户互信,输入密码,点击 setup 开始ssh互信

护工级Oracle 11g RAC集群实战安装教程-每日运维

选择语言

护工级Oracle 11g RAC集群实战安装教程-每日运维

选择企业版安装

护工级Oracle 11g RAC集群实战安装教程-每日运维

检查用户组,默认即可

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

安装前预检查

护工级Oracle 11g RAC集群实战安装教程-每日运维

选择ignore all即可

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

点击install开始oracle安装

护工级Oracle 11g RAC集群实战安装教程-每日运维
[root@rac1 oraInventory]# sed -i ‘s/^(\s\$(MK_EMAGENT_NMECTL))\s$/\1 -lnnz11/g’ “$ORACLE_HOME/sysman/lib/ins_emagent.mk
[root@rac2 app]# sed -i ‘s/^(\s\$(MK_EMAGENT_NMECTL))\s$/\1 -lnnz11/g’ “$ORACLE_HOME/sysman/lib/ins_emagent.mk
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

执行 root.sh 脚本(两个节点都执行)

护工级Oracle 11g RAC集群实战安装教程-每日运维
[root@rac1 oraInventory]# u01/app/oracle/product/11.2.0/db/root.sh
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
至此,Oracle 软件已经成功安装

九、创建数据库实例

  1. [oracle@rac1:/soft/database]$ dbca

选择rac模式

护工级Oracle 11g RAC集群实战安装教程-每日运维

选择创建数据库

护工级Oracle 11g RAC集群实战安装教程-每日运维

选择自定义模板

护工级Oracle 11g RAC集群实战安装教程-每日运维

填写数据库实例 ID

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

关闭 EM,保留自动化系统 JOB

护工级Oracle 11g RAC集群实战安装教程-每日运维

填写 SYS 密码

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

选择存放数据的 ASM 盘DATA

护工级Oracle 11g RAC集群实战安装教程-每日运维

报错的话,需要给oracle添加s权限

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
[grid@rac1:/home/grid]$ chmod +s /u01/app/11.2.0/grid/bin/oracle
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

这里选择不开启闪回区

护工级Oracle 11g RAC集群实战安装教程-每日运维

选择自定义组件,默认即可

配置初始化参数

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

选择数据库字符集,默认字符集为 AL32UTF8

护工级Oracle 11g RAC集群实战安装教程-每日运维

开始建库

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

如有报错,需执行以下命令(两个节点都执行)

护工级Oracle 11g RAC集群实战安装教程-每日运维

  1. [root@rac2 app]# mkdir -p /dev/asm

  2. [root@rac2 app]# chown -R grid.asmadmin /dev/asm

  3. [root@rac2 app]# chmod -R 777 /dev/asm

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

如出现以下错误,需要设置参数(两个节点都执行)

  1. [grid@rac11 ~]$ ls -l /u01/app/11.2.0/grid/bin/oracle

  2. -rwsr-x--x 1 grid oinstall 209836240 Jul 27 17:36 /u01/app/11.2.0/grid/bin/oracle

  3. [grid@rac11 ~]$ chmod 6751 /u01/app/11.2.0/grid/bin/oracle

  4. [grid@rac11 ~]$ ls -l /u01/app/11.2.0/grid/bin/oracle

  5. -rwsr-s--x 1 grid oinstall 209836240 Jul 27 17:36 /u01/app/11.2.0/grid/bin/oracle

  6. [oracle@rac11 ~]$ ls -l /u01/app/oracle/product/11.2.0/db_1/bin/oracle

  7. -rwsr-sr-x 1 oracle asmadmin 239501472 Jul 27 23:12 /u01/app/oracle/product/11.2.0/db/bin/oracle

护工级Oracle 11g RAC集群实战安装教程-每日运维
护工级Oracle 11g RAC集群实战安装教程-每日运维

  1. SQL> select status from v$instance;

护工级Oracle 11g RAC集群实战安装教程-每日运维

  1. SQL> select instance_number,instance_name,startup_time,status from gv$Instance;

护工级Oracle 11g RAC集群实战安装教程-每日运维
[grid@rac1:/u01/app/11.2.0/grid/bin]$ srvctl stop database -d orcl
护工级Oracle 11g RAC集群实战安装教程-每日运维

开启数据库实例

  1. [grid@rac1:/u01/app/11.2.0/grid/bin]$srvctl start database -d orcl

至此,oracle 11g RAC搭建完成!

护工级Oracle 11g RAC集群实战安装教程-每日运维

参考文章:

https://mp.weixin.qq.com/s/XTjngtkP19M17aR2fFa1dA

https://www.modb.pro/db/1703649053032665088

https://www.modb.pro/db/153861

文中的概念来源于互联网,如有侵权,请联系我删除。

欢迎关注公众号:小周的数据库进阶之路,一起交流数据库、中间件和云计算等技术。欢迎觉得读完本文有收获,可以转发给其他朋友,大家一起学习进步!感兴趣的朋友可以加我微信,拉您进群与业界的大佬们一起交流学习。