暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

以最简单的方式从零开始静默(无图形界面)部署Oracle19c RAC

原创 洋钞™ 恩墨学院 2021-08-26
2774

以最简单的方式从零开始静默(非图形界面)部署Oracle19c RAC
一、 软件准备

  1. SSH客户端工具XSHELL或者SecureCRT,由于SecureCRT是收费工具,这里我们选择免费的XSHELL试用版,去xshellcn下载即可。
  2. 虚拟机工具VirtaulBox 或者VMware Workstation,由于后者是收费工具,因此这里我们选择免费的VirtaulBox,去VirtaulBox官网下载即可。
  3. Oracle 19c数据库软件包“LINUX.X64_193000_db_home.zip”,去Oracle官网免费注册下载即可,仅用于学习目的,未购买授权勿用于生产环境。


认准官网sha256sum值,谨防下载到损坏的包。
4. Grid Infrastructure 19c软件包“LINUX.X64_193000_grid_home.zip”,去Oracle官网免费注册下载即可,仅用于学习目的,未购买授权勿用于生产环境。


认准官网sha256sum值,谨防下载到损坏的包。
5. Linux操作系统,可以选择Red Hat Enterprise Linux ,或者Oracle Enterprise Linux(OEL)或者CentOS,Oracle的要求是操作系统要选择Linux7.5或以上的版本,这里我们选择免费的CentOS 7.9,“CentOS-7-x86_64-DVD-2009.iso”去CentOS官网下载即可。
6. 为了配合RAC的安装,还需要下载几个额外的RPM包
compat-libstdc+±33-3.2.3-72.el7.x86_64.rpm
Linux7镜像盘中已经没有此包,我们到pkgs.org下载即可。
oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
OEL7.5以上镜像盘中包含此包,此包需要和compat-libstdc+±33同时安装,安装完成后配合本地yum源其会一并安装好Oracle RAC运行所需要的所有RPM包,并创建Oracle用户组,通过id oracle即可查看。
配置共享存储这里我们采用ASMLIB的方式,这种方式配置比配置raw要简单易用,只不过需要额外下载3个ASMLIB支持包
oracleasmlib-2.0.12-1.el7.x86_64.rpm
在Oracle官网免费下载此包
oracleasm-support-2.1.11-2.el7.x86_64.rpm
OEL7.5以上镜像盘中包含此包
kmod-oracleasm-2.0.8-28.0.1.el7.x86_64.rpm
OEL7.5以上镜像盘中包含此包

二、 规划网络配置,RAC安装好之后需要占用5个公网IP地址。
节点1:
主机名rac1 IP地址:公网192.168.56.171 私网10.10.10.171
节点1虚拟IP地址:192.168.56.173
节点2:
主机名rac2 IP地址:公网192.168.56.172 私网10.10.10.172
节点2虚拟IP地址:192.168.56.174
集群SCAN IP地址:192.168.56.175
可以在操作系统装好之后第一步先在两个节点编辑/etc/hosts,将规划好的IP地址填入其中
192.168.56.171 rac1
192.168.56.172 rac2
192.168.56.173 rac1-vip
192.168.56.174 rac2-vip
192.168.56.175 rac-cluster-scan
10.10.10.171 rac1-pri
10.10.10.172 rac2-pri

三、 开始安装Linux7操作系统
Oracle19c RAC要求操作系统物理内存不小于8GB,由于我的笔记本只有16G内存,所以只能给每台虚拟机分配最多6G内存。
打开VirtaulBox,开始创建虚拟机


按照需要分配6G内存,64G硬盘,CPU个数分配windows主机的一半即可。
网络设置,分配两个网卡,均采用host only方式,隔绝互联网



存储,插入CentOS7镜像盘


设置windows共享文件夹给Linux,我设置了C盘media文件夹,这里放着我在第一步下载的各种软件包


启动电源,按照提示设置公私网络和主机名,禁用Kdump然后选择最小化安装即可。



安装完成后用root用户登录系统


执行ip addr |grep inet检查配置的两个网络IP是否启用。

以同样步骤再安装一台Linux虚拟机,确认网络和主机名是否和规划一致。
四、 配置Linux操作系统,以下操作均为双节点同时进行。
1.在两台主机上分别编辑/etc/hosts,参考步骤二将规划好的IP地址写入。
2.在两台主机上分别配置本地yum源,
加载CentOS7镜像盘,


cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.bak
vi CentOS-Media.repo
设置enable=1


创建目录挂载cdrom
mkdir /media/cdrom/
mount /dev/cdrom /media/cdrom/
安装Vbox增强功能包
yum install bzip2 kernel-devel gcc-c++ -y
umount /dev/cdrom
卸载Cent7镜像盘,然后选择设备-安装增强功能,可以看到光驱加载一个新的ISO文件



挂载磁盘
mount /dev/cdrom /media/cdrom
安装增强功能
/media/cdrom/VBoxLinuxAdditions.run
完成之后使用df -h命令查看已经共享的新目录,如图所示:


卸载掉VBoxGuestAdditions镜像
umount /dev/cdrom/
挂载CentOS7镜像
mount /media/sf_MEDIA/CentOS-7-x86_64-DVD-2009.iso /media/cdrom/
df -h检查挂载是否完成


挂载成功之后开始安装rac所需rpm包
cd /media/sf_MEDIA/
yum install oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm compat-libstdc+±33-3.2.3-72.el7.x86_64.rpm
执行命令会发现同时安装了很多个依赖包,输入y确认。
安装完毕之后发现已经创建好oracle用户组
id oracle


继续在两台主机上分别手工创建grid用户组 ,注意两边UID和GID保持一致。
groupadd -g 5003 asmdba
groupadd -g 5004 asmadmin
useradd -g oinstall -G dba,asmdba,asmadmin -u 5002 grid
将oracle用户加进组中
usermod -a -G asmdba,asmadmin oracle
检查两个节点的UID和GID是否一致
id oracle;id grid


编辑grid和oracle用户的profile文件
su - grid
vi .bashrc
在文件最后追加如下内容:
export ORACLE_SID=+ASM1
export ORACLE_BASE=/u02/grid/base
export ORACLE_HOME=/u02/grid/product/19c
export PATH=$PATH:$ORACLE_HOME/bin
这里2节点把+ASM1改为+ASM2
su - oracle

export ORACLE_SID=racdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=ORACLE_BASE/product/19c
export PATH=$PATH:$ORACLE_HOME/bin

这里2节点把racdb1改为racdb2
继续切回root用户安装asmlib包
cd /media/sf_MEDIA
yum install kmod-oracleasm-2.0.8-28.0.1.el7.x86_64.rpm oracleasmlib-2.0.12-1.el7.x86_64.rpm oracleasm-support-2.1.11-2.el7.x86_64.rpm
安装完成后配置asmlib使用如下命令:
oracleasm configure -i
根据提示依次输入grid->asmadmin->y 回车


初始化asmlib
oracleasm init
卸载一些无用的rpm包,节约资源,生产环境慎用。
yum remove selinux*
yum remove chrony
yum remove NetworkManager
停止一些无用的服务,节约资源,如防火墙,生产环境慎用。
chkconfig firewalld off
chkconfig irqbalance off
chkconfig lvm2-monitor off
chkconfig auditd off

关闭两台Linux节点,开始配置共享存储
init 0

五、 配置共享存储
VirtaulBox 为我们提供了一种非常简单的共享磁盘模式,不需要额外的存储服务器,由VirtaulBox软件本身自行提供,简单易用,下面开始创建共享盘:
点击“管理”—“虚拟介质管理”—“创建”—“固定大小”—“16G”—“完成创建”;


找到你刚才创建的磁盘,将类型改为可共享:


保存退出虚拟介质管理器
找到我们的两台Linux主机,设置存储,找到SATA控制器,添加虚拟磁盘,找到我们刚刚创建的新磁盘,确定,配置好后如下图所示:


可以看到除了操作系统的64G本地硬盘之外,还有一个16G的共享盘,两边都挂载好这个磁盘之后就可以同时开机进行下一步配置了。
重启之后开始配置新磁盘
fdisk -l 查看新上的16G磁盘,发现徽标为sdb


开始磁盘分区
fdisk /dev/sdb
1节点依次输入n-回车-回车-+3G,将磁盘分为如下方式的分区


可以看到我们分配了4个区,前三个主分区都是3G,后面第五个逻辑分区是7G,忽略第四个扩展分区。
2节点执行partprobe 命令同步分区 partprobe /dev/sdb
使用asmlib包创建asmdisk,一节点执行
oracleasm createdisk sys1 /dev/sdb1
oracleasm createdisk sys2 /dev/sdb2
oracleasm createdisk sys3 /dev/sdb3
只注意不能选择4号扩展分区
oracleasm createdisk data1 /dev/sdb5
oracleasm listdisks
查看我们新建的4个asmdisk


二节点执行oracleasm scandisks同步磁盘,然后执行oracleasm listdisks
也如上图所示,说明我们已经在两边同时配置好了asmdisk
解压grid安装软件至grid_home
unzip /media/sf_MEDIA/LINUX.X64_193000_grid_home.zip -d /u02/grid/product/19c/
修改权限chown -R grid:oinstall /u02
配置ssh互信
设置grid和oracle用户的密码
passwd grid
passwd oracle
通过软件中的脚本配置互信
su – grid
$ORACLE_HOME/oui/prov/resources/scripts/sshUserSetup.sh -user grid -hosts “rac1 rac2” -advanced -noPromptPassphrase
根据提示输入grid用户密码,然后验证:
ssh rac1 date;ssh rac2 date;ssh rac1-pri date;ssh rac2-pri date
确认不在需要输入密码:如图:


执行安装前环境检查:su – grid
$ORACLE_HOME/runcluvfy.sh stage -pre crsinst -n ‘rac1,rac2’ -verbose -fixup
可以看到一些失败的检测项,按照提示执行用root执行/tmp下的修复脚本,然后二次验证,第二次可以看到如下失败项:内存不足,以及DNS错误,shm错误
这些错误可以忽略。



开始安装GI    su - grid

由于生产环境通常都会屏蔽图形界面,因此我们使用非图形的静默安装方式。

编辑响应文件vi grid19.rsp加入如下内容
###########################################################
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0

INVENTORY_LOCATION=/u02/grid/oraInventory

oracle.install.option=CRS_CONFIG

ORACLE_BASE=/u02/grid/base

oracle.install.asm.OSDBA=asmdba

oracle.install.asm.OSASM=asmadmin

oracle.install.crs.config.scanType=LOCAL_SCAN

oracle.install.crs.config.gpnp.scanName=rac-cluster-scan

oracle.install.crs.config.gpnp.scanPort=11521

oracle.install.crs.config.ClusterConfiguration=STANDALONE

oracle.install.crs.config.clusterName=rac-cluster

oracle.install.crs.config.gpnp.configureGNS=false

oracle.install.crs.config.clusterNodes=rac1:rac1-vip,rac2:rac2-vip

oracle.install.crs.config.networkInterfaceList=enp0s3:192.168.56.0:1,enp0s8:10.10.10.0:5

oracle.install.crs.config.storageOption=FLEX_ASM_STORAGE

oracle.install.asm.SYSASMPassword=Sys12345

oracle.install.asm.monitorPassword=Sys12345

oracle.install.asm.diskGroup.name=sys

oracle.install.asm.diskGroup.redundancy=NORMAL

oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/oracleasm/disks/SYS1,/dev/oracleasm/disks/SYS2,/dev/oracleasm/disks/SYS3,

oracle.install.asm.diskGroup.disks=/dev/oracleasm/disks/SYS1,/dev/oracleasm/disks/SYS2,/dev/oracleasm/disks/SYS3

oracle.install.asm.diskGroup.diskDiscoveryString=/dev/oracleasm/disks/*

开始静默安装su – grid
$ORACLE_HOME/gridSetup.sh -silent -ignorePrereqFailure -responseFile /home/grid/grid19.rsp
/home/grid/grid19.rsp是上面编辑好的响应文件。
观察提示日志等待安装完成,
然后根据提示在两个节点用root执行两个脚本,如图:


/u02/grid/product/19c/root.sh脚本的执行之间较长,可以观察日志看安装细节:



一节点执行完成后在执行二节点,也可以查看日志。
完成后执行下一步:


/u02/grid/product/19c/gridSetup.sh -executeConfigTools -responseFile /home/grid/grid19.rsp -silent
完成GI架构的安装。可以通过crsctl stat res -t命令查看


开始安装Oracle RAC。
GRID安装完成后,可以开始安装oracle rac了。
解压缩Oracle安装包到ORACLE_HOME
unzip /media/sf_MEDIA/LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19c/
修改权限chown -R oracle:oinstall /u01

依旧使用非图形界面,静默安装:
编辑响应文件vi db19rac.rsp加入如下内容:
##############################################################################################
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0

oracle.install.option=INSTALL_DB_SWONLY

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/u01/app/oraInventory

ORACLE_BASE=/u01/app/oracle

oracle.install.db.InstallEdition=EE

oracle.install.db.OSDBA_GROUP=dba

oracle.install.db.OSBACKUPDBA_GROUP=backupdba

oracle.install.db.OSDGDBA_GROUP=dgdba

oracle.install.db.OSKMDBA_GROUP=kmdba

oracle.install.db.OSRACDBA_GROUP=racdba

oracle.install.db.CLUSTER_NODES=rac1,rac2

配置ssh互信
Oracle用户登录,执行如下命令:
$ORACLE_HOME/oui/prov/resources/scripts/sshUserSetup.sh -user oracle -hosts “rac1 rac2” -advanced -noPromptPassphrase
根据提示输入密码完成配置
ssh rac1 date;ssh rac2 date;ssh rac1-pri date;ssh rac2-pri date
测试是否可以无密码联通。


开始静默安装:
$ORACLE_HOME/runInstaller -silent -ignorePrereqFailure -responseFile /home/oracle/db19rac.rsp
安装数据库软件的过程中,我们可以先创建一个新的磁盘组,为后面的建库做准备,
切换到grid用户su – grid
sqlplus / as sysasm
create diskgroup data EXTERNAL REDUNDANCY DISK ‘/dev/oracleasm/disks/DATA1’ ATTRIBUTE ‘compatible.asm’ = ‘19.0’ , ‘compatible.rdbms’ = ‘19.0’ ‘au_size’=‘4M’;
另一个节点挂载新的磁盘组
Alter diskgroup data mount;

数据库安装完成之后,使用dbca静默建库
dbca -silent -createDatabase -templateName $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc -gdbName racdb -characterSet AL32UTF8 -storageType ASM -diskGroupName DATA -nodelist rac1,rac2 -totalMemory 1500

观察日志:到100%安装完成。
到此为止,Oracle19c RAC部署完毕!

最后修改时间:2021-12-24 09:13:31
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论