全网最全Oracle 11g RAC 安装教程(基于VirtualBox+RedHat7.2)

全网最全Oracle 11g RAC 安装教程(基于VirtualBox+RedHat7.2)

wls1036发布于 2019-09-28

环境信息

配置项目数据库1数据库2
主机名 rac1 rac2
操作系统 Red Hat Enterprise Linux Server release 7.2 (Maipo) Red Hat Enterprise Linux Server release 7.2 (Maipo)
内核 3.10.0-327.el7.x86_64 3.10.0-327.el7.x86_64
public网卡 enp0s9 enp0s9
public ip 192.168.56.101 192.168.56.102
private网卡 enp0s8 enp0s8
private ip 10.0.0.7 10.0.0.0.8
virtual ip 192.168.56.103 192.168.56.104
scan name definescan
scan ip 192.168.56.105

环境配置

如无特殊说明,以下操作需在所有节点上进行配置。

设置主机名

rac1(root)
# hostnamectl set-hostname rac1
# su
# hostname
rac1
rac2(root)
# hostnamectl set-hostname rac2
# su
# hostname
rac2

设置hosts文件

rac1(root),rac2(root)
# public IP
192.168.56.101     rac1
192.168.56.102     rac2
# virtual IP
192.168.56.103     rac1-vip
192.168.56.104     rac2-vip
# rac scan IP
192.168.56.106     definescan
# private IP
10.0.0.7     rac1-priv
10.0.0.8     rac2-priv

设置网卡

!> 所有的网卡都需要设置静态ip

  • 通过命令nmcli con show查看所有的网卡
[root@rac1 /]# nmcli con show
NAME        UUID                                  TYPE            DEVICE     
enp0s8      e849869a-de19-4824-bafd-4491e66e8ca4  802-3-ethernet  enp0s8     
enp0s3      86db33b5-ea89-47aa-a038-98f6029fa608  802-3-ethernet  enp0s3     
enp0s9      706ffc32-e82c-4a01-8b8f-eefbf92950ff  802-3-ethernet  --         
virbr0-nic  1ac00d88-3f52-4dad-8da7-006b9073469f  802-3-ethernet  virbr0-nic 
virbr0      00facfd9-5460-4846-8e94-1a12de673348  bridge          virbr0 

然后到路径/etc/sysconfig//etc/sysconfig/network-scripts下根据网卡名称找到网卡到配置文件,一般名称命名格式为ifcfg-NAME

rac1(root)

ifcfg-enp0s9(public ip)

TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPADDR=192.168.56.101
IPV4_FAILURE_FATAL=no
NAME=enp0s9
UUID=706ffc32-e82c-4a01-8b8f-eefbf92950ff
DEVICE=enp0s9
ONBOOT=yes

ifcfg-enp0s8(private ip)

TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPADDR=10.0.0.7
NAME=enp0s8
UUID=e849869a-de19-4824-bafd-4491e66e8ca4
DEVICE=enp0s8
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
rac2(root)

ifcfg-enp0s9(public ip)

HWADDR=08:00:27:26:72:E5
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPADDR=192.168.56.102
IPV4_FAILURE_FATAL=no
NAME=enp0s9
UUID=bc89e1c6-2457-41ce-a366-5a505c5d1cd3
ONBOOT=yes

ifcfg-enp0s8(private ip)

HWADDR=08:00:27:F9:1B:62
TYPE=Ethernet
IPADDR=10.0.0.8
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
NAME=enp0s8
UUID=0d68de3e-74ab-4e0d-af99-12a68f5f7525
ONBOOT=yes
  • 验证

在两个节点上通过ping验证两个节点是否可通

ping rac1
ping rac2
ping rac1-priv
ping rac2-priv
如果在network-scripts目录下找不到配置文件,可自行创建一个,网卡的UUID可通过命令nmcli con show查看

关闭防火墙和SELinux

# systemctl status firewalld.service
# systemctl stop firewalld.service
# systemctl disable firewalld.service

修改文件/etc/selinux/config,设置

SELINUX=disabled

关闭selinux

# setenforce 0
# getenforce

设置系统镜像yum源

rac安装过程需要依赖较多的包,这些包都包含在系统镜像中,可通过将系统镜像挂载到系统中设置本地yum源来进行安装。每个虚拟环境挂载镜像的方式不同,步骤并不复杂,这里以VirtualBox为例。

  • 在关机状态下,到存储配置界面,添加SATA

  • 界面默认会提供安装的镜像盘,如果没有可以手动点击注册进行添加

  • 重启后系统默认将镜像挂载到/dev/sr0,可以通过mount命令挂载到/mnt
# mount /dev/sr0 /mnt
# cd /mnt
# ll
total 872
dr-xr-xr-x.  4 root root   2048 Oct 30  2015 addons
dr-xr-xr-x.  3 root root   2048 Oct 30  2015 EFI
-r--r--r--.  1 root root   8266 Apr  4  2014 EULA
-r--r--r--.  1 root root  18092 Mar  6  2012 GPL
dr-xr-xr-x.  3 root root   2048 Oct 30  2015 images
dr-xr-xr-x.  2 root root   2048 Oct 30  2015 isolinux
dr-xr-xr-x.  2 root root   2048 Oct 30  2015 LiveOS
-r--r--r--.  1 root root    114 Oct 30  2015 media.repo
dr-xr-xr-x.  2 root root 835584 Oct 30  2015 Packages
dr-xr-xr-x. 24 root root   6144 Oct 30  2015 release-notes
dr-xr-xr-x.  2 root root   4096 Oct 30  2015 repodata
-r--r--r--.  1 root root   3375 Oct 23  2015 RPM-GPG-KEY-redhat-beta
-r--r--r--.  1 root root   3211 Oct 23  2015 RPM-GPG-KEY-redhat-release
-r--r--r--.  1 root root   1568 Oct 30  2015 TRANS.TBL
  • 修改yum源
# cd /etc/yum.repos.d
# cat <<EOF > redhat7.2iso.repo
[rhel7]
name = Red Hat Enterprise Linux 7.2
baseurl=file:///mnt/
gpgcheck=0
enabled=1
EOF
# yum clean all
# yum grouplist
# yum makecache

能正常输出说明配置成功

  • yum仓库问题

Red Hat默认的yum仓库需要注册用户才能使用,如果你的系统未注册,使用yum时会报以下错误

Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

解决办法就是删掉自带的仓库,只要删除文件/etc/yum.repos.d/redhat.repo即可。

安装vnc

本次rac安装是通过GUI界面进行安装,因此需要事先安装VNC,通过VNC进入系统进行数据库安装。

安装vnc之前先确保已经完成以上挂载镜像设置本地yum源相关步骤。
  • 安装vnc
# yum install tigervnc-server
  • 修改配置文件

编辑文件/lib/systemd/system/vncserver@.service,将里面<USER>替换成登录用户,这里直接用root登录。

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

修改完执行以下命令重新加载

# systemctl daemon-reload
  • 启动vnc服务
# vncserver

首次启动需要输入密码,启动后,默认端口号是5901,也可以通过命令查看端口号

# netstat -npl|grep vnc
tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      7048/Xvnc           
tcp6       0      0 :::5901                 :::*                    LISTEN      7048/Xvnc         

后续所有的GUI操作都通过vnc客户端进行操作。

创建用户组

groupadd -g 1204 oinstall
groupadd -g 1200 dba
groupadd -g 1203 asmadmin
groupadd -g 1201 asmdba
groupadd -g 1202 asmoper

创建用户

useradd -u 1100 -g oinstall -G dba,asmdba,asmadmin -d /home/oracle oracle
useradd -u 1200 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid grid
passwd oracle
passwd grid

检查nobody用户是否存在

# id nobody

检查是否存在,若无则手动创建,且保证两边的ID一致

设置系统参数

cat 1>> /etc/sysctl.conf <<EOF
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 858993459200
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
EOF

执行以下命令生效

sysctl -p

limits.conf

cat 1>>/etc/security/limits.conf <<EOF
grid soft nofile 1024
grid soft nofile 1024
grid hard nofile 65536
grid soft nproc 4096
grid hard nproc 16384
grid soft stack 10240
grid hard stack 32768
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 4096
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
grid soft memlock -1
grid hard memlock -1
oracle soft memlock -1
oracle hard memlock -1
EOF

/etc/pam.d/login

cat 1>>/etc/pam.d/login <<EOF
session required pam_limits.so
EOF

/etc/profile

cat 1>>/etc/profile <<EOF
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
EOF

设置环境变量

grid用户环境变量设置

在.bash_profile其中添加以下内容,注意是以RAC节点1为例,在节点2上要写ORACLE_SID=+ASM2,节点3上要写ORACLE_SID=+ASM3。

rac1

# su - grid
# vi ~/.bash_profile
umask 022
export ORACLE_SID=+ASM1
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_BASE=/u01/app/oracle
export PATH=/u01/app/11.2.0/grid/bin:$PATH
# source ~/.bash_profile

rac2

# su - grid
# vi ~/.bash_profile
umask 022
export ORACLE_SID=+ASM2
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_BASE=/u01/app/oracle
export PATH=/u01/app/11.2.0/grid/bin:$PATH
# source ~/.bash_profile
oracle用户环境变量设置

在.bash_profile其中添加以下内容,注意是以RAC节点1为例,在节点2上要写ORACLE_SID=db2,在节点3上要写ORACLE_SID=db3

rac1

# su - oracle
# vi ~/.bash_profile
umask 022
export ORACLE_SID=db1
export ORACLE_BASE=/u01/app/oracledb
export ORACLE_HOME=/u01/app/oracledb/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
# source ~/.bash_profile

rac2

# su - oracle
# vi ~/.bash_profile
umask 022
export ORACLE_SID=db2
export ORACLE_BASE=/u01/app/oracledb
export ORACLE_HOME=/u01/app/oracledb/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
# source ~/.bash_profile

所有节点创建文件夹

用root用户在所有节点上执行以下命令创建文件夹。

su - root
mkdir -p  /u01/app/11.2.0/grid
mkdir -p /u01/app/oracle/product/11.2.0/db_1
mkdir -p /u01/soft
mkdir -p /u01/app/oracledb
mkdir -p /u01/app/oracledb/product/11.2.0/db_1
chown -R grid:oinstall /u01/app/oracle
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01/app/oracledb
chown -R oracle:oinstall /u01/app/oracledb/product/11.2.0/db_1
chown -R grid:oinstall /u01/app/11.2.0/grid
chmod -R 775 /u01/

禁用透明大页

# chmod +x /etc/rc.d/rc.local
# cat >>/etc/rc.local <<EOF
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
EOF
# cat >/etc/default/grub <<EOF
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet transparent_hugepage=never"
GRUB_DISABLE_RECOVERY="true"
EOF
# grub2-mkconfig -o /boot/grub2/grub.cfg

设置swap分区

# grep SwapTotal /proc/meminfo
SwapTotal:       2723836 kB
# mkdir -p /usr/swap
# dd if=/dev/zero of=/usr/swap/swapfile bs=1G count=2
# mkswap /usr/swap/swapfile
# swapon /usr/swap/swapfile
# grep SwapTotal /proc/meminfo
SwapTotal:       4820984 kB

设置开机启动挂载,编辑/etc/fstab在文件最后增加一行

/usr/swap/swapfile swap swap defaults 0 0

其他

  • 关闭RemoveIPC(RHEL7.2)

修改文件/etc/systemd/logind.conf

设置RemoveIPC值为no

RemoveIPC=no

重新加载

systemctl daemon-reload
systemctl restart systemd-logind
  • 配置NOZEROCONF

修改文件/etc/sysconfig/network

NOZEROCONF=yes

系统补丁安装

安装

执行以下命令,安装依赖包,如果报错请忽略

yum clean all

yum install -y binutils*
yum install -y compat-libcap1*
yum install -y compat-libstdc++*
yum install -y compat-libstdc++*686*
yum install -y e2fsprogs*
yum install -y e2fsprogs-libs*
yum install -y glibc*686*
yum install -y glibc*
yum install -y glibc-devel*
yum install -y glibc-devel*686*
yum install -y ksh*
yum install -y libgcc*686*
yum install -y libgcc*
yum install -y libs*
yum install -y libstdc++*
yum install -y libstdc++*686*
yum install -y libstdc++-devel*
yum install -y libstdc++*686*
yum install -y libaio*
yum install -y libaio*686*
yum install -y libaio-devel*
yum install -y libaio-devel*686*
yum install -y libXtst*
yum install -y libXtst*686*
yum install -y libX11*686*
yum install -y libX11*
yum install -y libXau*686*
yum install -y libXau*
yum install -y libxcb*686*
yum install -y libxcb*
yum install -y libXi*
yum install -y libXi*686*
yum install -y make*
yum install -y net-tools*
yum install -y nfs-utils*
yum install -y sysstat*
yum install -y smartmontools*
yum install -y unixODBC*
yum install -y unixODBC-devel*
yum install -y unixODBC*686*
yum install -y unixODBC-devel*686*
yum install -y gcc-*
yum install -y gcc-c++*
yum install -y elfutils-libelf-devel
特别说明:RHEL7.2对于Oracle11.2.0.4的认证是后认证(11.2.0.4先于Redhat7.2发布)的,compat-libstdc++-33这个包11.2.0.4安装需要,但是Redhat7.2自带的包中不存在,所以需要从其他版本获得这个包,并手动安装。

两个包可以从以下地址获取

下载完后执行以下命令完成安装

rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm 
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.i686.rpm

检查

执行以下命令检查依赖包安装情况

rpm -q binutils compat-libcap1 compat-libstdc++-33 e2fsprogs e2fsprogs-libs glibc glibc glibc-devel glibc-devel ksh libgcc libgcc libs libstdc++ libstdc++ libstdc++-devel libstdc++ libaio libaio libaio-devel libaio-devel libXtst libXtst libX11 libX11 libXau libXau libxcb libxcb libXi libXi make net-tools nfs-utils sysstat smartmontools unixODBC unixODBC-devel unixODBC unixODBC-devel gcc gcc-c++ elfutils-libelf-devel

如果有no install请安装好再进行下一步。

存储设备绑定

设备

系统总共挂载了5块共享存储盘,各盘存储情况如下

路径大小用途
/dev/sdb 2G vote(投票)
/dev/sdc 2G vote(投票)
/dev/sdd 2G vote(投票)
/dev/sde 20G arch(归档)
/dev/sdf 40G data(数据)

可以用命令fdisk -l查看具体情况

分区

因为存储都是共享的,所以分区操作在任一节点上操作即可

对每个盘进行分区,以/dev/sde为例,输入命令fdisk /dev/sde,依次输入n->p->(一路默认到底)->w

# fdisk /dev/sde
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-43548671, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-43548671, default 43548671): 
Using default value 43548671
Partition 1 of type Linux and of size 20.8 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

规则文件

通过命令/usr/lib/udev/scsi_id -g -u /dev/sdxxx查看磁盘wwid,因为是共享存储,每个节点看到的wwid都是一样的,udev通过规则文件,给磁盘设置权限,让grid用户有权限操作磁盘。

  • 查看wwid
# /usr/lib/udev/scsi_id -g -u /dev/sdb
1ATA_VBOX_HARDDISK_VB54ce865f-e65a7d00
# /usr/lib/udev/scsi_id -g -u /dev/sdc
1ATA_VBOX_HARDDISK_VB8f9429ee-32f50530
# /usr/lib/udev/scsi_id -g -u /dev/sdd
1ATA_VBOX_HARDDISK_VBc92cde00-a564f90e
# /usr/lib/udev/scsi_id -g -u /dev/sde
1ATA_VBOX_HARDDISK_VBcc226ad4-aee5f903
# /usr/lib/udev/scsi_id -g -u /dev/sdf
1ATA_VBOX_HARDDISK_VB3fd31e1a-a035187e

根据查询到的wwid,创建规则文件/etc/udev/rules.d/99-asmdevices.rules内容如下,RESULT就是上面查到的wwid,每一块盘创建一条记录。

ENV{DEVTYPE}=="disk", SUBSYSTEM=="block",  PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",  RESULT=="1ATA_VBOX_HARDDISK_VB54ce865f-e65a7d00", SYMLINK+="asmdisk001",  OWNER="grid", GROUP="asmadmin", MODE="0660"
ENV{DEVTYPE}=="disk", SUBSYSTEM=="block",  PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",  RESULT=="1ATA_VBOX_HARDDISK_VB8f9429ee-32f50530", SYMLINK+="asmdisk002",  OWNER="grid", GROUP="asmadmin", MODE="0660"
ENV{DEVTYPE}=="disk", SUBSYSTEM=="block",  PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",  RESULT=="1ATA_VBOX_HARDDISK_VBc92cde00-a564f90e", SYMLINK+="asmdisk003",  OWNER="grid", GROUP="asmadmin", MODE="0660"
ENV{DEVTYPE}=="disk", SUBSYSTEM=="block",  PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",  RESULT=="1ATA_VBOX_HARDDISK_VBcc226ad4-aee5f903", SYMLINK+="asmdisk004",  OWNER="grid", GROUP="asmadmin", MODE="0660"
ENV{DEVTYPE}=="disk", SUBSYSTEM=="block",  PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",  RESULT=="1ATA_VBOX_HARDDISK_VB3fd31e1a-a035187e", SYMLINK+="asmdisk005",  OWNER="grid", GROUP="asmadmin", MODE="0660"
  • 执行以下命令生效
partprobe
udevadm control --reload-rules
udevadm trigger --type=devices --action=change
如果是用名称进行绑定,在执行规则文件之前,一定要用partprobe命令进行更新磁盘信息
  • 验证

如果目录/dev/下生成asmdisk*软链接,则说明执行成功

# cd /dev
# ll asmdisk*
lrwxrwxrwx 1 root root 3 Sep 26 00:55 asmdisk001 -> sdb
lrwxrwxrwx 1 root root 3 Sep 26 00:55 asmdisk002 -> sdc
lrwxrwxrwx 1 root root 3 Sep 26 00:55 asmdisk003 -> sdd
lrwxrwxrwx 1 root root 3 Sep 26 00:55 asmdisk004 -> sde
lrwxrwxrwx 1 root root 3 Sep 26 00:55 asmdisk005 -> sdf

此时查看设备权限,正常的话权限变为660(rw-rw----),拥有者变为 grid:asmadmin

# ls -l /dev/sd*
brw-rw----. 1 grid asmadmin 8, 16 Sep 26 10:38 /dev/sdb
brw-rw----. 1 grid asmadmin 8, 32 Sep 26 10:38 /dev/sdc
brw-rw----. 1 grid asmadmin 8, 48 Sep 26 10:38 /dev/sdd
brw-rw----. 1 grid asmadmin 8, 64 Sep 26 10:38 /dev/sde
brw-rw----. 1 grid asmadmin 8, 80 Sep 26 10:38 /dev/sdf

集群安装

  • 将以下文件上传到服务器,如果是虚拟机可直接挂载到主机内
# ll /u01/soft/
total 9797256
-rw-r--r--@  1 grid  oinstall  1395582860  9 26 14:13 p13390677_112040_Linux-x86-64_1of7.zip
-rw-r--r--@  1 grid  oinstall  1151304589  9 26 13:52 p13390677_112040_Linux-x86-64_2of7.zip
-rw-r--r--@  1 grid  oinstall  1205251894  9 20 01:57 p13390677_112040_Linux-x86-64_3of7.zip
-rw-r--r--@  1 grid  oinstall  1133472011  9 26 09:59 p29255947_112040_Linux-x86-64.zip
-rw-r--r--@  1 grid  oinstall   113112960  9 17 13:02 p6880880_112000_Linux-x86-64.zip
  • 用grid用户登录并解压
# su - grid
# cd /u01/soft
# unzip *.zip
  • 在节点1执行
# su - root
# cd /u01/soft/grid/rpm
# rpm -ivh cvuqdisk-1.0.9-1.rpm

将文件/u01/soft/grid/rpm/cvuqdisk-1.0.9-1.rpm拷贝至其他节点tmp目录下,可以用scp命令拷贝

其他节点执行以下操作

# su - root
# cd /tmp
# scp grid@rac1:/u01/soft/grid/rpm/cvuqdisk-1.0.9-1.rpm .
# rpm -ivh cvuqdisk-1.0.9-1.rpm

cvu的包安装完成后在节点一以grid用户启动grid安装。

安装数据库集群

在节点一登录grid用户,安装数据库集群软件

# su - grid
$ export DISPLAY=:1.0
$ xhost +
$ cd /u01/soft/grid
$ ./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
export DISPLAY=:1.0 设置图形界面显示到哪个端口上,1.0是vnc的监听端口,./runInstaller -jreLoc /etc/alternatives/jre_1.8.0这样写的目的是安装程序在显示上会有一些bug,导致显示不全或者按钮点不了,这样启动可以避免该情况。
    1. 跳过软件更新

    1. 选择安装oracle 集群软件

    1. 高级安装

    1. 语言选择中文Simplified Chinese

    1. 输入集群名称和scan名称,scan名称和hosts文件里scan名称保持一致,scan端口默认1521可以修改,不启动GNS

    1. 根据hosts文件里的配置点击Add增加集群节点

此时如果还未配置节点信任,点击下一步会报[INS-30132]的错误

点击界面上SSH Connectivity配置互信

输入rac2 grid用户的密码,点击setup,如果提示配置成功,可以点击test测试是否现在是互信状态,如果未setup就test,会报错。

    1. 根据规划,选择好网卡类型,非public和private的网卡选择Do Not Use

    1. 选择Oracle ASM

    1. Disk Group Name输入CRS,点击Change Discovery Path,输入/dev/asmdisk*,这个文件名在我们前面配置存储规则的时候指定。

根据前面的规划,选择 asmdisk001/002/003三块2G的盘

    1. 为所有的asm账号设置相同的密码

    1. 选择不要使用IPM

    1. 如图

    1. 选择安装路径,保持默认即可

    1. 选择Inventory目录,保持默认即可

    1. 开始检查安装环境,检查完毕后会列出不符合项

这里由于系统自带了ksh,可以忽略pdksh的缺包问题;ASM磁盘设备由于使用裸盘,已确认共享,也可以忽略。

如果这里有错误,可以根据提示解决完毕后点击Check Again进行重新检查

如果确认错误可以忽略,把Ignore All的选项勾上进行下一步

    1. 安装信息概览

    1. 在安装到76%的时候会弹出一个对话框,让我们在每个节点上执行对话框中的脚本,执行脚本用root用户执行

执行第一个脚本/u01/app/oraInventory/orainstRoot.sh一般不会有问题。

执行第二个脚本/u01/app/11.2.0/grid/root.sh时报以下错误

Adding Clusterware entries to inittab
ohasd failed to start
Failed to start the Clusterware. Last 20 lines of the alert log follow: 
2019-09-27 12:54:19.483: 

这个地方是RHEL7.x和11.2.0.4.0兼容性问题。因为RHEL7使用systemd而不是initd运行进程和重启进程,而root.sh通过传统的initd运行ohasd进程。解决方法就是在RHEL7中ohasd需要被设置为一个服务,并且在运行脚本root.sh之前启动。

停掉root.sh脚本,以root用户执行以下脚本

# touch /usr/lib/systemd/system/ohas.service
# chmod 777 /usr/lib/systemd/system/ohas.service
# cat >>/usr/lib/systemd/system/ohas.service <<EOF
[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
● ohas.service - Oracle High Availability Services
   Loaded: loaded (/usr/lib/systemd/system/ohas.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2019-09-27 00:36:06 CST; 4s ago
 Main PID: 5730 (init.ohasd)
   CGroup: /system.slice/ohas.service
           └─5730 /bin/sh /etc/init.d/init.ohasd run >/dev/null 2>&1 Type=simple

Sep 27 00:36:06 rac2 systemd[1]: Started Oracle High Availability Services.
Sep 27 00:36:06 rac2 systemd[1]: Starting Oracle High Availability Services...

重新执行root.sh,如果此时还是报错可能是root.sh脚本创建了init.ohasd之后,ohas.service没有马上启动,解决方法参考以下,当运行root.sh时,一直刷新/etc/init.d,直到出现init.ohasd文件,马上手动启动ohas.service服务命令

systemctl start ohas.service

当两个节点显示以下信息时说明脚本执行成功

CRS-2672: Attempting to start 'ora.asm' on 'rac1'
CRS-2676: Start of 'ora.asm' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.CRS.dg' on 'rac1'
CRS-2676: Start of 'ora.CRS.dg' on 'rac1' succeeded
Configure Oracle Grid Infrastructure for a Cluster ... succeeded

当所有节点执行完后在任意节点执行以下命令查看各节点状态

# /u01/app/11.2.0/grid/bin/crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
               ONLINE  ONLINE       rac1                                         
               ONLINE  ONLINE       rac2                                         
ora.asm
               ONLINE  ONLINE       rac1                     Started             
               ONLINE  ONLINE       rac2                     Started             
ora.gsd
               OFFLINE OFFLINE      rac1                                         
               OFFLINE OFFLINE      rac2                                         
ora.net1.network
               ONLINE  ONLINE       rac1                                         
               ONLINE  ONLINE       rac2                                         
ora.ons
               ONLINE  ONLINE       rac1                                         
               ONLINE  ONLINE       rac2                                         
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac1                                         
ora.cvu
      1        ONLINE  ONLINE       rac1                                         
ora.oc4j
      1        ONLINE  ONLINE       rac1                                         
ora.rac1.vip
      1        ONLINE  ONLINE       rac1                                         
ora.rac2.vip
      1        ONLINE  ONLINE       rac2                                         
ora.scan1.vip
      1        ONLINE  ONLINE       rac1        
    1. 回到安装界面点击ok,安装程序继续执行

在集群验证过程中提示scan验证问题,这是由于我们采用了hosts解析,只要保证所有节点解析definescan正常即可

点击Next,选择忽略该错误即可

    1. 至此,集群安装结束

集群安装失败重新安装

cd /u01/app
rm -rf *

mkdir -p  /u01/app/11.2.0/grid
mkdir -p /u01/app/oracle/product/11.2.0/db_1
mkdir -p /u01/soft
mkdir -p /u01/app/oracledb
mkdir -p /u01/app/oracledb/product/11.2.0/db_1
chown -R grid:oinstall /u01/app/oracle
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01/app/oracledb
chown -R oracle:oinstall /u01/app/oracledb/product/11.2.0/db_1
chown -R grid:oinstall /u01/app/11.2.0/grid
chmod -R 775 /u01/

cd /etc/
rm -rf ora*

# 移除之前的配置 
/u01/app/11.2.0.4/grid/perl/bin/perl   /u01/app/11.2.0.4/grid/crs/install/roothas.pl -deconfig -force

安装数据软件

在节点一登录grid用户,安装数据库集群软件

# su - oracle
$ export DISPLAY=:1.0
$ xhost +
$ cd /u01/soft/database
$ ./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
    1. 忽略安全更新

    1. 忽略软件更新

    1. 选择只安装数据库软件

    1. 选择oracle rac数据库安装

和集群安装一样,这里需要配置互信,输入rac2 oracle用户的密码,点击setup,执行完后点击test测试,测试通过就可以下一步

    1. 语言选择中文

    1. 选择企业版安装

    1. 选择安装路径,保持默认即可

    1. 操作角色选择dba

    1. 安装检查,pdksh可以忽略,scan名称只要保证能够访问即可

    1. 安装概览

    1. 开始安装,安装过程中报以下错误

Error in invoking target 'agent nhms' of makefile....

这里也是由于RHEL7.x与11.2.0.4兼容性的一个bug,解决方法(安装节点执行即可):

su - oracle
cd $ORACLE_HOME/sysman/lib
vi ins_emagent.mk #搜索关键字 MK_EMAGENT_NMECTL,添加 -lnnz11,如下

#===========================
#  emdctl
#===========================

$(SYSMANBIN)emdctl:
        $(MK_EMAGENT_NMECTL) -lnnz11

修改完毕后回到安装界面Retry

    1. 根据提示到每个节点上执行root.sh脚本

    1. 至此,数据库软件安装完毕

创建磁盘组

    1. grid用户输入命令asmc,点击Create创建diskgroup
su -
export DISPLAY=:1.0
xhost +
su - grid 
export DISPLAY=:1.0
xhost +
asmca
    1. 创建一个DATA数据盘类型选择External

如果这边看不到,可能是窗口太小了,需要鼠标点击右下角进行放大。
    1. 创建一个ARCH归档盘类型选择External

最后ASM磁盘组状态如下

点击mount all

点击Exit退出

创建数据库

    1. oracle用户输入命令dbca
su -
export DISPLAY=:1.0
xhost +
su - oracle 
export DISPLAY=:1.0
xhost +
dbca
    1. 选择rac数据库

    1. 选择创建数据库

    1. 选择General Purpose or Transaction Processing

    1. 输入数据库名,然后选择select all所有节点

    1. 选择不创建OEM

    1. 这里统一密码,输入密码

    1. 确认数据库文件目录为+DATA,点击Browser

    1. 勾选Fast Recovery和归档

将归档放入+ARCH中

    1. 由于是生产环境,不需要Sample Schemas

    1. 内存配置默认,后续可以更改

进程数调整为1000

字符集选择UTF-8

连接模式默认即可

    1. 存储部分,我们这里只调整了redo的大小和组数,大小调整为500M每组,每个实例调整为2组,点击Next

    1. 点击创建数据库

    1. 创建数据库

    1. 直接点Exit退出安装

补丁安装

以下操作需要在所有节点上完成
    1. 下载OPatch和补丁文件
# ll /u01/soft
-rw-r--r--@  1 grid  oinstall  1133472011  9 26 09:59 p29255947_112040_Linux-x86-64.zip
-rw-r--r--@  1 grid  oinstall   113112960  9 17 13:02 p6880880_112000_Linux-x86-64.zip
    1. 替换掉原来grid_home和oracle_home下的Opatch
export GRID_HOME=/u01/app/11.2.0/grid
export ORACLE_HOME=/u01/app/oracledb/product/11.2.0/db_1
mv $GRID_HOME/OPatch $GRID_HOME/OPatch_bak
mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_bak
unzip p6880880_112000_Linux-x86-64.zip -d $GRID_HOME
unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
chown -R grid:oinstall $GRID_HOME/OPatch
chown -R oracle:oinstall $ORACLE_HOME/OPatch
    1. grid用户解压补丁文件,并生产ocm文件
# su - grid
$ cd /u01/soft
$ unzip p29255947_112040_Linux-x86-64.zip
$ /u01/app/11.2.0/grid/OPatch/ocm/bin/emocmrsp -no_banner -output /tmp/ocm.rsp
Provide your email address to be informed of security issues, install and
initiate Oracle Configuration Manager. Easier for you if you use your My
Oracle Support Email address/User Name.
Visit http://www.oracle.com/support/policies.html for details.
Email address/User Name: 

You have not provided an email address for notification of security issues.
Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]:  y^H
The OCM configuration response file (/tmp/ocm.rsp) was successfully created.

$ ll /tmp/ocm.rsp
-rw-r--r-- 1 grid oinstall 621 Sep 28 16:27 /tmp/ocm.rsp
    1. root用户执行补丁程序
# su -
# export PATH=/u01/app/11.2.0/grid/OPatch:$PATH
# opatch auto ./29255947/ -ocmrf /tmp/ocm.rsp
Executing /u01/app/11.2.0/grid/perl/bin/perl /u01/app/11.2.0/grid/OPatch/crs/patch11203.pl -patchdir . -patchn 29255947 -ocmrf /tmp/ocm.rsp -paramfile /u01/app/11.2.0/grid/crs/install/crsconfig_params

This is the main log file: /u01/app/11.2.0/grid/cfgtoollogs/opatchauto2019-09-28_16-32-59.log

This file will show your detected configuration and all the steps that opatchauto attempted to do on your system:
/u01/app/11.2.0/grid/cfgtoollogs/opatchauto2019-09-28_16-32-59.report.log

2019-09-28 16:32:59: Starting Clusterware Patch Setup
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params

Stopping RAC /u01/app/oracle_base/product/11.2.0/db_1 ...
Stopped RAC /u01/app/oracle_base/product/11.2.0/db_1 successfully

patch ./29255947/29141201/custom/server/29141201  apply successful for home  /u01/app/oracle_base/product/11.2.0/db_1 
patch ./29255947/29141056  apply successful for home  /u01/app/oracle_base/product/11.2.0/db_1 

Stopping CRS...
Stopped CRS successfully

patch ./29255947/29141201  apply successful for home  /u01/app/11.2.0/grid 
patch ./29255947/29141056  apply successful for home  /u01/app/11.2.0/grid 
patch ./29255947/28729245  apply successful for home  /u01/app/11.2.0/grid 

Starting CRS...
Installing Trace File Analyzer
CRS-4123: Oracle High Availability Services has been started.

Starting RAC /u01/app/oracle_base/product/11.2.0/db_1 ...
Started RAC /u01/app/oracle_base/product/11.2.0/db_1 successfully

opatch auto succeeded.

当出现opatch auto succeeded时表示补丁安装成功。如果补丁安装失败,可以根据控制台输出找到日志文件,如上面日志文件位于/u01/app/11.2.0/grid/cfgtoollogs/opatchauto2019-09-28_16-32-59.log

至此,rac数据库安装完毕。

posted @ 2021-05-20 17:25  耀阳居士  阅读(1019)  评论(0编辑  收藏  举报