2. 环境规划:
需要3台主机:
ASM存储服务器 1台
RAC 节点 2台,双网卡(一个对外的IP,一个用于私网IP:即心跳IP)
用途 | 操作系统 | IP地址 | VIP | SCAN IP | 心跳 | root信息 | oracle root | 配置 | 主机名 |
Oracle RAC | Oracle_Linux7.6 | 10.20.21.131 | 10.20.21.133 | 10.20.21.136 | 192.168.188.131 | xxxxx | xxxxxx | 8U/16G/300G | RAC1 |
10.20.21.132 | 10.20.21.134 | 192.168.188.132 | xxxxx | xxxxxx | 8U/16G/300G | RAC2 | |||
ASM存储 | Oracle_Linux7.6 | 10.20.21.135 | xxxxx | xxxxxx | 8U/16G/500G | dbstore |
3.RAC节点分区配置:
挂载点 | 磁盘空间 |
/opt/oracle | 200G |
/ | 50G |
/boot | 1G |
swap | 16G |
4.RAC节点环境配置:(以下配置两个节点都要配置)
注意:以下操作需要3台主机同时开启。
4.1 编辑RAC1/RAC2的hosts(IP地址设置:IP、VIP同一网段,心跳IP(prv)单独一个网段)
vim /etc/hosts
#RAC 主机IP
192.168.3.61 RAC61
192.168.3.62 RAC62
#RAC 私网IP
10.20.21.71 RAC61prv
10.20.21.72 RAC62prv
#RAC vip
192.168.3.63 RAC61-vip
192.168.3.64 RAC62-vip
#集群对外IP
192.168.3.65 RACSCAN
4.2 关闭防火墙:
systemctl stop firewalld.service
systemctl disable firewalld.service
4.3关闭selinux
echo "SELINUX=disabled" > /etc/selinux/config
echo "#SELINUXTYPE=targeted" >> /etc/selinux/config
setenforce 1
4.4 停止NTP服务
systemctl stop ntpd
systemctl disable ntpd
systemctl stop chronyd.service
systemctl disable chronyd.service
rm -f /etc/chrony.conf
cd /etc
mv ntp.conf ntp.conf.bk
4.5 配置yum:请确保光驱(或虚拟光驱)中存在Linux安装盘
mkdir /mnt/linux
mount /dev/cdrom /mnt/linux
cd /etc/yum.repos.d
mkdir bk
mv *.repo bk/
echo "[EL]" >> /etc/yum.repos.d/yuminstall.repo
echo "name =Linux 7.x DVD" >> /etc/yum.repos.d/yuminstall.repo
echo "baseurl=file:///mnt/linux" >> /etc/yum.repos.d/yuminstall.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/yuminstall.repo
echo "enabled=1" >> /etc/yum.repos.d/yuminstall.repo
cat /etc/yum.repos.d/yuminstall.repo
4.6 使用oracle-database-preinstall预检查环境资源:该工具oracle官方有下载
百度云盘下载地址:https://pan.baidu.com/s/1XReP8rOPzxKswc4_Bl4vrw
提取码:rji0
rpm -ivh oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
提示缺少包时,yum -y install 资源1 资源2 ...安装缺少的!
然后再次执行:
rpm -ivh oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
4.7 创建oracle所需用户,并修改密码(RAC每个节点中的密码需要保持一致):
// 删除自动创建的用户和组
userdel -r oracle
userdel -r grid
groupdel oinstall
groupdel dba
// 创建用户和组
groupadd -g 5001 oinstall
groupadd -g 5002 dba
groupadd -g 5003 asmdba
groupadd -g 5004 asmoper
groupadd -g 5005 asmadmin
useradd -u 6001 -g oinstall -G asmadmin,asmdba,asmoper grid
useradd -u 6002 -g oinstall -G dba,asmadmin oracle
//修改用户密码
passwd grid
passwd oracle
4.8 创建oracle安装目录,并给用户授权
// oracle grid集群目录
mkdir -p /opt/oracle/app/grid
mkdir -p /opt/oracle/app/19c/grid
chown -R grid:oinstall /opt/oracle
// oracle安装清单目录
mkdir -p /opt/oracle/app/oraInventory
chown -R grid:oinstall /opt/oracle/app/oraInventory
// oracle数据库软件目录
mkdir -p /opt/oracle/app/oracle/product/19c/dbhome_1
chown -R oracle:oinstall /opt/oracle/app/oracle
chmod -R 775 /opt/oracle
4.9 分别配置grid和oracle用户环境变量
4.9.1 grid用户:
su - grid
vim ~/.bash_profile
// 追加以下内容:
umask 022
#RAC1 配置为ASM1 RAC2则为ASM2
export ORACLE_SID=+ASM1
export ORACLE_BASE=/opt/oracle/app/grid
export ORACLE_HOME=/opt/oracle/app/19c/grid
export PATH=.:$PATH:$HOME/bin:$ORACLE_HOME/bin
// 保存退出后使环境变量生效
source ~/.bash_profile
env |grep ORACLE
4.9.2 oracle用户:
su - oracle
vim ~/.bash_profile
// 追加以下内容
umask 022
export ORACLE_BASE=/opt/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1
#oracle 数据库全局唯一名
export ORACLE_UNQNAME=orcl
#RAC1 SID = orcl1 RAC2 SID = orcl12
export ORACLE_SID=orcl1
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=.:$PATH:$HOME/bin:$ORACLE_HOME/bin
// 保存退出后,使环境变量立即生效
source ~/.bash_profile
env |grep ORACLE
5. ASM共享存储环境配置
5.1 存储服务器中用mkdir新建一个目录(注意:是在ASM存储主机操作,不是在RAC节点操作!)
mkdir /asm
5.2 配置exports
vim /etc/exports
/asm *(rw,sync,no_wdelay,insecure,no_root_squash)
// 保存退出后:
systemctl restart nfs-server.service
systemctl enable nfs-server.service
showmount -e
exportfs -v
5.3 关闭selinux、防火墙
echo "SELINUX=disabled" > /etc/selinux/config
echo "#SELINUXTYPE=targeted" >> /etc/selinux/config
setenforce 1
systemctl stop firewalld.service
systemctl disable firewalld.service
5.4 创建共享磁盘
mkdir -p /asm/oracleasm/disks
dd if=/dev/zero of=/asm/oracleasm/disks/asm1 bs=8192k count=1280
dd if=/dev/zero of=/asm/oracleasm/disks/asm2 bs=8192k count=1280
dd if=/dev/zero of=/asm/oracleasm/disks/asm3 bs=8192k count=1280
dd if=/dev/zero of=/asm/oracleasm/disks/asm4 bs=8192k count=1280
dd if=/dev/zero of=/asm/oracleasm/disks/asm5 bs=8192k count=1280
dd if=/dev/zero of=/asm/oracleasm/disks/asm6 bs=8192k count=128
dd if=/dev/zero of=/asm/oracleasm/disks/asm7 bs=8192k count=128
5.5 返回配置RAC两个节点共享存储(注意ASM存储的IP地址要填入你自己的,不要照搬!)
mkdir /asm
vim /etc/fstab
#加入这段代码
192.168.3.70:/asm /asm nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0 0 0
// 保存退出后:
mount -a
// grid用户授权
chown -R grid:asmadmin /asm
chown grid:asmadmin /asm/oracleasm/disks/asm1
chown grid:asmadmin /asm/oracleasm/disks/asm2
chown grid:asmadmin /asm/oracleasm/disks/asm3
chown grid:asmadmin /asm/oracleasm/disks/asm4
chown grid:asmadmin /asm/oracleasm/disks/asm5
chown grid:asmadmin /asm/oracleasm/disks/asm6
chown grid:asmadmin /asm/oracleasm/disks/asm7
chmod -R 777 /asm/oracleasm/disks/asm1
chmod -R 777 /asm/oracleasm/disks/asm2
chmod -R 777 /asm/oracleasm/disks/asm3
chmod -R 777 /asm/oracleasm/disks/asm4
chmod -R 777 /asm/oracleasm/disks/asm5
chmod -R 777 /asm/oracleasm/disks/asm6
chmod -R 777 /asm/oracleasm/disks/asm7
6. 安装grid
6.1 切换到RAC 1节点,切换到grid账户下解压grid安装压缩包(注意:不要在RAC2节点上解压安装包):
重要的事情说三遍:仅在主节点解压安装包!仅在主节点解压安装包!仅在主节点解压安装包!
su - grid
cd $ORACLE_HOME
unzip LINUX.X64_193000_grid_home.zip
6.2 解压完成后,图形界面用grid用户登录linux,打开终端控制台,进入oracle_home目录,执行gridSetup.sh开始安装grid
cd $ORACLE_HOME
./gridSetup.sh
公共主机名/虚拟主机名需要和hosts中的保持一致
截图这里标注写错了,19C时不强制建立,没有18C!
ASM磁盘组设置:
冗余:外部。
分配单元大小:8M
点击更改搜索路径:填入/asm/oracleasm/disks/*,grid会自动搜索到磁盘组,选择前5个
如果前面勾选了root用户自动配置脚本,这里grid会自动配置,否则需要分别在RAC每个节点下,用root用户执行红框中的脚本
注意:这里如果提示 需要重新执行安装之类的提示时,退出当前安装并重启linux,重新来过(因为修补后某些配置需要重启)。
该截图是前期测试截图,正常来说应该只会提示单客户机访问名(SCAN),以及DNS/NIS问题,这2个问题忽略即可!如果有其他问题,请查看下方的详细信息,单独解决!
截图中的两个脚本,如果前期选择了root自动配置,这里确认即可,否则需要分别在RAC所有节点中,使用root用户运行配置脚本。
完成grid安装!