一、Oracle grid软件:
1.1运行环境准备:
所需设备:
操作系统 | ip1 | ip2 | 主机名 |
Contos7 | 192.168.11.67 | 192.168.188.67 | rac1 |
Contos7 | 192.168.11.68 | 192.168.188.68 | rac2 |
Contos7 | 192.168.11.69 | iscsi-server | |
Win10 | 192.168.20.66 | liuchengji |
基础环境规划:
ip类型 | IP地址 | 主机名 | 作用 |
Public ip | 192.168.11.67 | rac1 | 本机物理网卡对应的IP用于网络之间的连接 |
192.168.11.68 | rac2 | ||
Privacy ip | 192.168.188.67 | rac1-priv | 私有ip,用作于节点之间的心跳检测 |
192.168.188.68 | rac2-priv | ||
scan ip | 192.168.11.70 | rac-scan | 用于DNS和GNS解析、一个节点最多有三个scan ip,但写入host文件解析只能有一个 |
vip | 192.168.11.167 | rac1-vip | 虚拟IP地址,需要与物理网卡在同一网段、只需写入host文件,当服务启动时就会生成这个IP、当服务宕机这个IP地址就会漂移到其他存活的节点上 |
192.168.11.168 | rac2-vip |
节点一和节点二的hosts配置:
[root@rac1 ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
#public ip
192.168.11.67 rac1
192.168.11.68 rac2
#priv ip
192.168.188.67 rac1-priv
192.168.188.68 rac2-priv
#vip
192.168.11.167 rac1-vip
192.168.11.168 rac2-vip
#scan
192.168.11.70 rac-scan
发送配置文件至节点二
[root@rac1 ~]# scp /etc/hosts root@192.168.11.68:/etc/hosts
The authenticity of host '192.168.11.68 (192.168.11.68)' can't be established.
ECDSA key fingerprint is SHA256:qshWKJ+cGX5OYoSmJA7YrwfvYaj9CuI5oG1UlRCmXsw.
ECDSA key fingerprint is MD5:27:a3:50:62:45:7e:6f:15:46:cf:26:96:ce:6f:cc:56.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.11.68' (ECDSA) to the list of known hosts.
root@192.168.11.68's password:
hosts 100% 411 16.8KB/s 00:00
配置yum 源、安装epel 拓展源 (两个节点做相同操作)
[root@rac1 yum.repos.d]#curl -o CentOS7-Base-163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1572 100 1572 0 0 11116 0 --:--:-- --:--:-- --:--:-- 11148
[root@rac1 yum.repos.d]# sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS7-Base-163.repo
[root@rac1 yum.repos.d]# sed -i 's/^enabled=.*/enabled=1/g' /etc/yum.repos.d/CentOS7-Base-163.repo
oracle 11g centos 7系统所需安装包安装(两个节点做相同操作)
具体需要哪些依赖包参考文档:
Oracle® Database Quick Installation Guide Oracle Database Documentation - Oracle Database
[root@rac1 ~]# yum -y install binutils compat-libcap1 compat-libstdc++.i686 compat-libstdc++ gcc gcc-c++ glibc.i686 glibc glibc-devel.i686 glibc-devel ksh libaio.i686 libaio libaio-devel.i686 libaio-devel libgcc.i686 libgcc libstdc++.i686 libstdc++ libstdc++.i686 libstdc++ libXi.i686 libXi libXtst.i686 libXtst mak sysstat
关闭防火墙和selinux(两个节点做相同操作)
[root@rac1 ~]# systemctl stop firewalld.service
[root@rac1 ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@rac1 ~]# setenforce 0
[root@rac1 ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config
创建用户和组,由于建立互信关系需使用密码,并给用户配置密码 (两个节点做相同操作)
[root@rac1 ~]# groupadd oinstall
[root@rac1 ~]# groupadd dba
[root@rac1 ~]# groupadd oper
[root@rac1 ~]# groupadd asmdba
[root@rac1 ~]# groupadd asmoper
[root@rac1 ~]# groupadd asmadmin
[root@rac1 ~]# useradd -g oinstall -G dba,oper,asmdba oracle
[root@rac1 ~]# useradd -g oinstall -G asmdba,dba,asmadmin,asmoper grid
[root@rac1 ~]# echo "123456" | passwd --stdin oracle
更改用户 oracle 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@rac1 ~]# echo "123456" | passwd --stdin grid
更改用户 grid 的密码 。
passwd:所有的身份验证令牌已经成功更新。
创建目录 (两个节点做相同操作)
[root@rac1 ~]# mkdir -p /u01/app/{grid,oracle,gridbase}
[root@rac1 ~]# chown -R grid:oinstall /u01/
[root@rac1 ~]# chown -R oracle:oinstall /u01/app/oracle/
[root@rac1 ~]# chmod -R g+w /u01/
[root@rac1 ~]# ls -l /u01/app/
总用量 0
drwxr-xr-x 2 grid oinstall 6 8月 16 15:45 grid
drwxr-xr-x 7 grid oinstall 87 8月 16 16:37 gridbase
drwxr-xr-x 2 oracle oinstall 6 8月 16 15:45 oracle
添加环境变量 (两个节点做相同操作)
[root@rac1 app]# vim /home/grid/.bash_profile #追加下方内容
ORACLE_BASE=/oracle/app/grid
ORACLE_HOME=/oracle/app/11.2.0/grid
PATH=$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export ORACLE_BASE ORACLE_HOME PATH LD_LIBRARY_PATH DISPLAY
export DISPLAY=192.168.20.66:0.0
export LANG=""
[root@rac1 app]# vim /home/oracle/.bash_profile #追加下方内容
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ORACLE_SID=orcl1 #注意节点1和节点2的SID 不能一样
PATH=$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH DISPLAY
[root@rac1 app]# source /home/grid/.bash_profile /home/grid/.bash_profile
修改linux 内核参数 (两个节点做相同操作) 具体版本参数需参照Oracle官方安装手册
[root@rac1 ~]# vim /etc/sysctl.conf
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
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 = 1048576
[root@rac1 ~]# sysctl -p
修改配置文件/etc/security/limits.conf (两个节点做相同操作)
[root@rac1 ~]# vi /etc/security/limits.conf //在文件尾部添加
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
1.2共享磁盘iscsi创建
设备类别 | 设备ip | 主机名 |
iSCSI服务端 | 192.168.11.69 | iscsi-server |
iSCSI客户端 | 192.168.11.68 | rac2 |
iSCSI客户端 | 192.168.11.67 | rac1 |
1.2.1服务端操作
添加空闲磁盘
下载安装targetd targetcli:
[root@iscsi-server ~]# yum install targetd targetcli -y
[root@iscsi-server ~]# systemctl start targetd
[root@iscsi-server ~]# systemctl enable targetd
用targetcli 来管理
[root@iscsi-server ~]# targetctl
/> cd /backstores/block
/backstores/block> create disk0 /dev/sdb
Created block storage object disk0 using /dev/sdb.
/backstores/block> create disk1 /dev/sdc
Created block storage object disk1 using /dev/sdc.
/backstores/block> create disk2 /dev/sdd
Created block storage object disk2 using /dev/sdd.
/backstores/block> cd /iscsi
/iscsi> create #创建target名称,配置共享资源
/iscsi> cd iqn.2003-01.org.linux-iscsi.....
/iscsi/iqn.20....a1281bc5b561> cd tpg1/luns
/iscsi/iqn.20...561/tpg1/luns> create /backstores/block/disk0
/iscsi/iqn.20...561/tpg1/luns> create /backstores/block/disk1
/iscsi/iqn.20...561/tpg1/luns> create /backstores/block/disk2
/iscsi/iqn.20...561/tpg1/luns> cd ../acls
/iscsi/iqn.20...561/tpg1/acls> create iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.a1281bc5b561
/iscsi/iqn.20...561/tpg1/acls> cd ../portals
/iscsi/iqn.20.../tpg1/portals> delete 0.0.0.0 3260 #删除默认的监听地址
/iscsi/iqn.20.../tpg1/portals> create 192.168.11.69 #配置服务端的IP地址
/iscsi/iqn.20.../tpg1/portals> cd / #切回根目录
/> saveconfig #保存
/> exit #退出
1.2.2客户端配置(两个节点做相同操作)
下载安装iscsi配置工具
[root@rac1 ~]# yum install iscsi-initiator-utils –y
[root@rac1 ~]# systemctl start iscsid
[root@rac1 ~]# systemctl enable iscsid
iSCSI配置
[root@rac1 ~]# vim /etc/iscsi/initiatorname.iscsi
[root@rac1 ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.a1281bc5b561
[root@rac1 ~]# systemctl restart iscsid
#查找目标存储
[root@rac1 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.11.69
#登录到服务端
[root@rac1 ~]# iscsiadm --mode node --targetname iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.a1281bc5b561 --portal 192.168.11.69 -l
[root@rac1 ~]# lsblk
#磁盘分区(一个节点配置即可)
[root@rac1 ~]# fdisk /dev/sdb
[root@rac1 ~]# fdisk /dev/sdc
[root@rac1 ~]# fdisk /dev/sdd
1.3 oracleasm 来创建ASM磁盘
oracleasm需要下载两个安装包oracleasm-support,oracleasmlib在官网下载,或者在yum 源网站下载到本地,然后上传到服务器的两个节点rac1 和 rac2 进行安装
在官网查找对应的软件包
Red Hat Enterprise Linux 7系列下载地址:
Oracle ASMLib Downloads for Red Hat Enterprise Linux 7
安装 oracleasm(两个节点做相同操作)
[root@rac1 ~]# rpm -ivh oracleasm-supportt-2.1.11-2.el7.x86_64.rpm
[root@rac1 ~]# yum install oracleasmlib-2.0.12-1.el7.x86_64 .rpm –y
[root@rac1 ~]# oracleasm configure -i
查看结果
[root@rac1 ~]# oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm #注意这个地方,如果是failed那么请检查安装方式及顺序是否一样、还要检查你的安装包与系统的内核版本是否一致
Configuring "oracleasm" to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm
以上操作没问题,接下来创建DISK01、DISK02、DISK03(只需要在节点一创
[root@rac1 ~]# oracleasm createdisk DISK01 /dev/sdb1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk DISK02 /dev/sdc1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk DISK03 /dev/sdd1
Writing disk header: done
Instantiating disk: done
#查看创建的磁盘
[root@rac1 ~]# oracleasm listdisks
DISK01
DISK02
DISK03
#节点二执行asm硬盘扫描
[root@rac2 ~]# oracleasm scandisks
1.4 节点之间建立互信关系
[root@rac1 opt]# unzip p10404530_112030_Linux-x86-64_3of7.zip
[root@rac1 opt]# cd grid/sshsetup/
[root@rac1 opt]# su – oracle
[oracle@rac1 grid]$ cd /opt/grid/sshsetup
[oracle@rac1 sshsetup]$./sshUserSetup.sh -user grid -hosts "rac1 rac2" -advanced –noPromptPassphrase
[oracle@rac1 sshsetup]$ ./sshUserSetup.sh -user oracle -hosts "rac1 rac2" -advanced –noPromptPassphrase
[oracle@rac1 sshsetup]$ exit
[root@rac1 opt]# cd grid/ sshsetup/
[root@rac1 opt]# ./sshUserSetup.sh -user root -hosts "rac1 rac2" -advanced –noPromptPassphrase
#随便在一个节点上,输入ssh执行命令,若提示输入密码,则验证失败,若不需要则验证成功
[root@rac1 grid]# ssh rac2 date
oracle RAC安装环境检测验证
[root@rac1 opt]# su - grid
[grid@rac1 ~]$ cd /opt/grid/
[grid@rac1 grid]$ ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose
1.5 grid软件的安装
自行下载xmanage软件
新建xstart进行连接
#下载图形工具
[root@rac1 ~]# yum install -y xorg-x11-server-utils
[root@rac1 ~]# yum -y install xterm
[root@rac1 ~]# su – grid
#刷新环境变量
[grid@rac1 grid]$ source $HOME/.bash_profile
#运行脚本
[grid@rac1 grid]$ ./runInstaller
图形界面安装
1、选择Skip software updates,然后选择next
2、安装集群和配置环境
3、高级安装
4、默认语言英文
5、此处集群名自己取,SCAN名需要和/etc/hosts中的scan ip别名一致,端口默认,不选GNS,然后 next
6、添加节点2
7、系统制动识别公有IP与私有ip,这里默认即可
8、选择asm存储
9、创建磁盘组
10、设置这个asm磁盘组的管理密码
11、不识别IPMI
12、选择对应组
13、选择grid安装目录、由于配置了环境变量,这里默认即可
14、环境检查(依赖包、内核参数等)
15、错误提示,以下问题直接忽略即可,如有其他包提示或参数失败请自行检测
这边依赖包已经解决,选择忽略(如未解决自行安装依赖包)
16、安装
查看安装日志:tail -f /u01/oraInventory/logs/installActions2021-08-17_01-39-05PM.log
17、使用root用户执行弹出路径的脚本
执行脚本
[root@rac2 install]# /u01/app/11.2.0/grid/root.sh
问题记录,此次安装碰到如下问题
以上失败的原因,是在centos 7/redhat 7里面启动方式为Systemd ,而这个脚本的启动方式为init 是 centos 6/redhat 6 里面的启动方式,解决方法如下:
以 root 用户创建服务文件
[root@rac2 /]# touch /usr/lib/systemd/system/ohas.service
[root@rac2 /]# chmod 777 /usr/lib/systemd/system/ohas.service
[root@rac2 /]#vim /usr/lib/systemd/system/ohas.service
[Unit]
Description=Oracle High Availability Services
After=syslog.target
[Service]
ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 Type=simple
Restart=always
[Install]
WantedBy=multi-user.target
#加载服务
[root@rac2 /]# systemctl daemon-reload
[root@rac2 /]# systemctl start ohas.service
[root@rac2 /]# systemctl enable ohas.service
[root@rac2 /]# systemctl status ohas.service
#再次执行
[root@rac2 install]# /u01/app/11.2.0/grid/root.sh
执行过程较久,耐心等待安装,出现下图内容代表安装成功。
完成节点二安装后继续再节点一执行相同操作,完成操作后进行下面步骤。
由于配置了/etc/hosts来解析SCAN,导致未走DNS来进行SCAN的解析,爆出此错误,可以考虑忽略掉,或者删除/etc/hosts文件中的SCAN解析部分,并且再次通过nslookup验证DNS的解析是否正常即可
下一步
完成安装
1.6测试安装状态
在两个节点均运行的状态下查看两天机器的网卡信息。
将rac2节点停止后再查看两台机器的网卡信息
[root@rac2 grid]# /u01/app/11.2.0.3/grid/bin/crsctl stop cluster -n rac2
可以看到rac2的vip和scan-ip已经不见了
此时查看rac1可以发现11.168和11.70已经转移过来了