共计 21890 个字符,预计需要花费 55 分钟才能阅读完成。
环境信息
配置项目 | 数据库 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 自带的包中不存在,所以需要从其他版本获得这个包,并手动安装。
两个包可以从以下地址获取
- compat-libstdc++-33-3.2.3-72.el7.i686.rpm
- compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
下载完后执行以下命令完成安装
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,导致显示不全或者按钮点不了,这样启动可以避免该情况。
-
- 跳过软件更新
-
- 选择安装 oracle 集群软件
-
- 高级安装
-
- 语言选择中文
Simplified Chinese
- 语言选择中文
-
- 输入集群名称和 scan 名称,scan 名称和 hosts 文件里 scan 名称保持一致,scan 端口默认
1521
可以修改,不启动 GNS
- 输入集群名称和 scan 名称,scan 名称和 hosts 文件里 scan 名称保持一致,scan 端口默认
-
- 根据 hosts 文件里的配置点击
Add
增加集群节点
- 根据 hosts 文件里的配置点击
此时如果还未配置节点信任,点击下一步会报 [INS-30132]
的错误
点击界面上 SSH Connectivity
配置互信
输入 rac2 grid 用户的密码,点击 setup,如果提示配置成功,可以点击 test 测试是否现在是互信状态,如果未 setup 就 test,会报错。
-
- 根据规划,选择好网卡类型,非 public 和 private 的网卡选择
Do Not Use
- 根据规划,选择好网卡类型,非 public 和 private 的网卡选择
-
- 选择
Oracle ASM
- 选择
-
-
Disk Group Name
输入CRS
,点击Change Discovery Path
,输入/dev/asmdisk*
,这个文件名在我们前面配置存储规则的时候指定。
-
根据前面的规划,选择 asmdisk001/002/003
三块 2G 的盘
-
- 为所有的 asm 账号设置相同的密码
-
- 选择不要使用 IPM
-
- 如图
-
- 选择安装路径,保持默认即可
-
- 选择 Inventory 目录,保持默认即可
-
- 开始检查安装环境,检查完毕后会列出不符合项
这里由于系统自带了 ksh,可以忽略 pdksh 的缺包问题;ASM 磁盘设备由于使用裸盘,已确认共享,也可以忽略。
如果这里有错误,可以根据提示解决完毕后点击
Check Again
进行重新检查如果确认错误可以忽略,把
Ignore All
的选项勾上进行下一步
-
- 安装信息概览
-
- 在安装到 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
-
- 回到安装界面点击 ok,安装程序继续执行
在集群验证过程中提示 scan 验证问题,这是由于我们采用了 hosts 解析,只要保证所有节点解析 definescan 正常即可
点击Next
,选择忽略该错误即可
-
- 至此,集群安装结束
集群安装失败重新安装
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
-
- 忽略安全更新
-
- 忽略软件更新
-
- 选择只安装数据库软件
-
- 选择 oracle rac 数据库安装
和集群安装一样,这里需要配置互信,输入 rac2 oracle 用户的密码,点击 setup,执行完后点击 test 测试,测试通过就可以下一步
-
- 语言选择中文
-
- 选择企业版安装
-
- 选择安装路径,保持默认即可
-
- 操作角色选择
dba
- 操作角色选择
-
- 安装检查,pdksh 可以忽略,scan 名称只要保证能够访问即可
-
- 安装概览
-
- 开始安装,安装过程中报以下错误
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
-
- 根据提示到每个节点上执行 root.sh 脚本
-
- 至此,数据库软件安装完毕
创建磁盘组
-
- grid 用户输入命令
asmc
,点击 Create 创建 diskgroup
- grid 用户输入命令
su -
export DISPLAY=:1.0
xhost +
su - grid
export DISPLAY=:1.0
xhost +
asmca
-
- 创建一个 DATA 数据盘类型选择
External
- 创建一个 DATA 数据盘类型选择
如果这边看不到,可能是窗口太小了,需要鼠标点击右下角进行放大。
-
- 创建一个 ARCH 归档盘类型选择
External
- 创建一个 ARCH 归档盘类型选择
最后 ASM 磁盘组状态如下
点击 mount all
点击 Exit 退出
创建数据库
-
- oracle 用户输入命令
dbca
- oracle 用户输入命令
su -
export DISPLAY=:1.0
xhost +
su - oracle
export DISPLAY=:1.0
xhost +
dbca
-
- 选择 rac 数据库
-
- 选择创建数据库
-
- 选择 General Purpose or Transaction Processing
-
- 输入数据库名,然后选择 select all 所有节点
-
- 选择不创建 OEM
-
- 这里统一密码,输入密码
-
- 确认数据库文件目录为 +DATA,点击 Browser
-
- 勾选 Fast Recovery 和归档
将归档放入 +ARCH 中
-
- 由于是生产环境,不需要 Sample Schemas
-
- 内存配置默认,后续可以更改
进程数调整为1000
字符集选择 UTF-8
连接模式默认即可
-
- 存储部分,我们这里只调整了 redo 的大小和组数,大小调整为 500M 每组,每个实例调整为 2 组,点击 Next
-
- 点击创建数据库
-
- 创建数据库
-
- 直接点 Exit 退出安装
补丁安装
以下操作需要在所有节点上完成
-
- 下载 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
-
- 替换掉原来 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
-
- 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
-
- 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 数据库安装完毕。