Oracle 12c RAC安装 这一篇就够了

Oracle 12c RAC安装 这一篇就够了

本文为本人项目实站内容,尽量从原理和实现角度,将Oracle RAC 安装讲解清楚,并能直接用于生产环境搭建。

本文搭建采用静默安装,操作系统不需要安装图像界面。本人在虚拟机上面安装过程2个小时之内完成。

本文用到的相关shell脚本和数据库配置文件可以通过访问我的GitHub仓库下载

Oracle 12c 两节点RAC部署示意图

基于此图可以清晰了解Oracle RAC的部署要求,特别是网络和共享存储。这是生产环境推荐的部署方式。

下面开始进入实站环节,整个安装分为4大块:

Oracle 安装规划服务器准备基础环境配置Oracle安装配置附录常用命令

第一部分、Oracle安装规划

集群环境规划数据库版本:Oracle 12c R2

此部分对于集群安装成功与否至关重要,规划做好了后面配置就简单

1. SWAP规划RAMSWAP Space1-2GB1.5 times the size of RAM2-16GBEqual to the size of RAM>16GB20GB2.服务器规划系统

IP

hostname

内存

swap

/dev/shm

磁盘

Centos7.4

10.30.53.57

rac1.minjustica.lab

8G

8G

16G

100G

Centos7.4

10.30.53.58

rac2.minjustica.lab

8G

8G

16G

100G

3.网卡IP地址规划PUBLIC_IP

10.30.53.57

10.30.53.58

PUBLIC_IP_hostname

rac1.minjustica.lab

rac2.minjustica.lab

PRIVATE_IP

10.30.41.3

10.30.41.4

PRIVATE_IP_hostname

pri-rac1

pri-rac2

VIP

10.30.53.114

10.30.53.115

VIP_hostname

rac1-vip

rac2-vip

SCAN_IP

10.30.53.116

SCAN_IP_hostname

rac-scan

4.内存规划建议SGA+PGA占整个节点物理内存的65%,其中, SGA大小容量为PGA的3倍。

若计算节点实际配置内存容量大小为512 GB,则建议规划的SGA和PGA分别如下:

SGA大小: 512 GB * 65% * 75% = 249.6 GB(向下十位取整为240GB)PGA大小: 512 GB * 65% * 25% = 83.2 GB(向下十位取整为80GB)

5.共享卷规划数据库编号磁盘盘符共享卷大小存储池名称逻辑卷名磁盘绑定名称磁盘组名称OCR/Votedisk区1/dev/sda20GVirtualizationSTOR3fc_OCR_001OCRDISK01OCR2/dev/sdb20GVirtualizationSTOR3fc_OCR_002OCRDISK02OCR3/dev/sdc20GVirtualizationSTOR3fc_OCR_003OCRDISK03OCR闪回区1/dev/sdd40GVirtualizationSTOR3fc_FRA_001FRADISK01FRA数据区1/dev/sde100GVirtualizationSTOR3fc_DATA_001DATADISK001DATA

6.操作系统用户和组用户名用户ID用户组组ID密码oracle1000oinstall1000oracle123dba1001asmdba1011oper1002backupdba1013dgdba1014kmdba1015racdba1016grid1001oinstall1000grid123asmadmin1010asmdba1011asmoper1012oper10027.Oracle RAC环境变量规划hostname用户环境变量路径rac1oracleORACLE_BASE/u01/app/oracleoracleORACLE_HOME$ORACLE_BASE/product/12.2.0.1/dboracleORACLE_SIDrac1gridORACLE_BASE/u01/app/gridgridORACLE_HOME/u01/app/12.2.0/gridgridORACLE_SID+ASM1rac2oracleORACLE_BASE/u01/app/oracleoracleORACLE_HOME$ORACLE_BASE/product/12.2.0.1/dboracleORACLE_SIDrac2gridORACLE_BASE/u01/app/gridgridORACLE_HOME/u01/app/12.2.0/gridgridORACLE_SID+ASM28.安装路径规划/u01

第二部分、服务器准备以下为华为虚拟化平台FusionCompute准备虚拟机和磁盘网络配置

创建服务器

创建磁盘卷

分别在两个服务器上添加磁盘注意磁盘添加选择Bus Type为SCSI,否则虚拟机中无法获取磁盘的UUID。 如果在SCSI Command

为每台机器添加私有IP网卡

通过Security Group设置私有网卡IP只能内部访问

第三部分、环境基础设置

机器RAC1修改机器名称

shell> hostnamectl set-hostname rac1.minjustica.lab配置网卡

网卡1

shell> vim /etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=eth0

UUID=6fa31c09-8966-4e41-8cec-dafc793f07d0

DEVICE=eth0

ONBOOT=yes

IPADDR=10.30.53.57

NETMASK=255.255.255.0

GATEWAY=10.30.53.254网卡2

shell> vim /etc/sysconfig/network-scripts/ifcfg-eth1

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=eth1

DEVICE=eth1

ONBOOT=yes

IPADDR=10.30.41.3

NETMASK=255.255.255.0重启网络服务

shell> service network restart配置Yum源

注意,YUM我此处为数据中心内部自己搭建,基于实际情况自己配置

shell> curl --output /etc/yum.repos.d/CentOS-Base.repo http://10.30.53.30/CentOS-Base.repo

shell> yum clean all免密配置

shell> ssh-keygen -t rsa -b 2048

shell> ssh-copy-id root@rac2配置hosts

shell> vim /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

10.30.53.57 rac1.minjustica.lab rac1

10.30.41.3 pri-rac1

10.30.53.114 rac1-vip

10.30.53.58 rac2.minjustica.lab rac2

10.30.41.4 pri-rac2

10.30.53.115 rac2-vip

10.30.53.116 rac-scan

shell> scp /etc/hosts root@rac2:/etc/hosts

机器RAC2修改机器名

shell> hostnamectl set-hostname rac2.minjustica.lab配置网卡

shell> vim /etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=eth0

UUID=6fa31c09-8966-4e41-8cec-dafc793f07d0

DEVICE=eth0

ONBOOT=yes

IPADDR=10.30.53.58

NETMASK=255.255.255.0

GATEWAY=10.30.53.254

shell> vim /etc/sysconfig/network-scripts/ifcfg-eth1

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=eth1

DEVICE=eth1

ONBOOT=yes

IPADDR=10.30.41.4

NETMASK=255.255.255.0重启网络服务

shell> service network restart配置Yum源

shell> curl --output /etc/yum.repos.d/CentOS-Base.repo http://10.30.53.30/CentOS-Base.repo

shell> yum clean all

第四部分、Oracle安装配置此部分为了简化安装,将相关安装配置封装为shell脚本

环境初始化在RAC1和RAC2上面执行以下配置

进行用户和目录创建,安装相关依赖,配置环境变量等

注意:user-setup.sh和ENV-setup.sh 请基于实际情况进行修改,包括IP地址,用户密码等

shell> yum install wget

shell> cd ~

shell> wget http://10.30.53.30/oracle/packages/user-setup.sh

shell> bash user-setup.sh

shell> wget http://10.30.53.30/oracle/packages/ENV-setup.sh

shell> bash ENV-setup.sh >ENV-setup.log 2>&1配置ASM磁盘建议采用Linux 内核工具udev进行ASM磁盘的配置,以下命令在两个服务器上面都需要执行

注意:请基于实际磁盘和ASM diskgroup的关系修改脚本udev-setup_1.0.sh映射关系

shell> cd ~

shell> wget http://10.30.53.30/oracle/packages/udev-setup_1.0.sh

shell> bash udev-setup_1.0.sh

shell> ll /dev/asmdisk/

下载软件安装包在rac1节点下载安装包,并解压

注意:安装的安装包和补丁包请自行下载

shell> cd /tmp

shell> wget http://10.30.53.30/oracle/packages/linuxx64_12201_grid_home.zip

shell> wget http://10.30.53.30/oracle/packages/linuxx64_12201_database.zip

shell> wget http://10.30.53.30/oracle/packages/p26247490_12201180417ACFSApr2018RU_Linux-x86-64.zip

shell> unzip /tmp/linuxx64_12201_grid_home.zip -d /u01/app/12.2.0.1/grid/

shell> unzip /tmp/linuxx64_12201_database.zip -d /home/oracle/

# 安装数据库补丁包

shell> unzip /tmp/p26247490_12201180417ACFSApr2018RU_Linux-x86-64.zip -d /u01/app/12.2.0.1/grid/

shell> chown -R grid:oinstall /u01/app/12.2.0.1/grid/

shell> chown -R oracle:oinstall /home/oracle/database/安装cvuqdisk在rac1和rac2两个节点安装cvuqdisk软件包,此包位于/u01/app/12.2.0.1/grid/cv/rpm/下面

rac1

shell> cd /u01/app/12.2.0.1/grid/cv/rpm/

shell> rpm -ivh cvuqdisk-1.0.10-1.rpm

shell> scp cvuqdisk-1.0.10-1.rpm root@rac2:/tmprac2

shell> cd /tmp

shell> rpm -ivh cvuqdisk-1.0.10-1.rpm

检查免密配置开始安装,检测免密登录配置

shell> cd /home/oracle/database/sshsetup

shell> ./sshUserSetup.sh -user oracle -hosts "rac1 rac2" -exverify -confirm -noPromptPassphrase

shell> ./sshUserSetup.sh -user grid -hosts "rac1 rac2" -exverify -confirm -noPromptPassphrase

集群环境检查检测系统配置是否符合集群需求

在rac1执行

shell> su - grid

shell> cd /u01/app/12.2.0.1/grid

shell> ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose检查如果出现如下提示,则代表检查成功,否则需要基于错误进行修改

Pre-check for cluster services setup was successful.

CVU operation performed: stage -pre crsinst

Date: Feb 16, 2021 1:24:40 PM

CVU home: /u01/app/12.2.0.1/grid/

User: grid安装GI下载应答文件,修改相关配置,执行安装,此操作一grid用户操作

shell> cd ~

shell> wget http://10.30.53.30/oracle/packages/.gridsetup.rsp

shell> cd /u01/app/12.2.0.1/grid

shell> ./gridSetup.sh -silent -responseFile ~/.gridsetup.rsp -skipPrereqs

shell> 看到如下提示代表此步骤成功

You can find the log of this install session at:

/tmp/GridSetupActions2021-02-16_03-10-27PM/gridSetupActions2021-02-16_03-10-27PM.log

As a root user, execute the following script(s):

1. /u01/app/grid/oraInventory/orainstRoot.sh

2. /u01/app/12.2.0.1/grid/root.sh

Execute /u01/app/grid/oraInventory/orainstRoot.sh on the following nodes:

[rac1, rac2]

Execute /u01/app/12.2.0.1/grid/root.sh on the following nodes:

[rac1, rac2]

Run the script on the local node first. After successful completion, you can start the script in parallel on all other nodes.

Successfully Setup Software.

As install user, execute the following command to complete the configuration.

/u01/app/12.2.0.1/grid/gridSetup.sh -executeConfigTools -responseFile /home/grid/.gridsetup.rsp [-silent]

Moved the install session logs to:

/u01/app/grid/oraInventory/logs/GridSetupActions2021-02-16_03-10-27PM

使用root用户分别在两个节点执行

shell> bash /u01/app/grid/oraInventory/orainstRoot.sh在RAC1节点执行

shell> /u01/app/12.2.0.1/grid/gridSetup.sh -executeConfigTools -responseFile /home/grid/.gridsetup.rsp -silent使用root用户分别在两个节点执行

shell> bash /u01/app/12.2.0.1/grid/root.sh日志显示如下信息代表执行成功

2021/02/16 16:59:55 CLSRSC-594: Executing installation step 19 of 19: 'PostConfig'.

2021/02/16 17:00:30 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded创建ASM磁盘组创建DATADG和FRADG asm diskgroup

shell> asmca -silent -sysAsmPassword password -createDiskGroup -diskString /dev/asmdisk/ -diskGroupName DATADG -disk /dev/asmdisk/DATADISK001 -redundancy EXTERNAL

shell> asmca -silent -sysAsmPassword password -createDiskGroup -diskString /dev/asmdisk/ -diskGroupName FRADG -disk /dev/asmdisk/FRADISK01 -redundancy EXTERNAL

安装数据库软件切换到Oracle用户

在RAC1节点

shell> su - oracle

shell> wget http://10.30.53.30/oracle/packages/.db.rsp

shell> cd /home/oracle/database/

shell> ./runInstaller -silent -ignorePrereqFailure -responseFile ~/.db.rsp

创建数据库实例在RAC1节点

shell> su - oracle

shell> wget http://10.30.53.30/oracle/packages/.dbca.rsp

shell> dbca -silent -ignorePreReqs -ignorePrereqFailure -createDatabase -responseFile ~/.dbca.rsp看到如下日志代表成功

Creating Pluggable Databases

61% complete

78% complete

Executing Post Configuration Actions

100% complete

Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/rac/rac4.log" for further details.至此,正常安装完成,可以进行安装之后的检查确认

检查RAC集群状态grid用户任意节点执行如下命令,集群各服务都为online代表正常

[grid@rac1 ~]$ crsctl check cluster -all

**************************************************************

rac1:

CRS-4537: Cluster Ready Services is online

CRS-4529: Cluster Synchronization Services is online

CRS-4533: Event Manager is online

**************************************************************

rac2:

CRS-4537: Cluster Ready Services is online

CRS-4529: Cluster Synchronization Services is online

CRS-4533: Event Manager is online

**************************************************************

使用sqlplus登录查询数据库状态

shell> su - oracle

shell> sqlplus / as sysdbaSQL> alter pluggable database racpdb save state;

Pluggable database altered.

SQL> set lines 168 pages 999

SQL> col CON_NAME for a18

SQL> col INSTANCE_NAME for a18

SQL> col RESTRICTED for a12

SQL> select con_id,CON_NAME,INSTANCE_NAME,STATE,RESTRICTED from dba_pdb_saved_states;

CON_ID CON_NAME INSTANCE_NAME STATE RESTRICTED

---------- ------------------ ------------------ -------------- ------------

3 ORCLPDB orcl2 OPEN NO

3 ORCLPDB orcl1 OPEN NO可以看到两个节点实例都正常。

附录、常用操作命令RAC数据库正常是全自动的,当操作系统启动时,ASM设备会自动挂载,数据库也会随之自动启动。但是,平时对于DBA也少不了维护操作,对于刚入门的人来讲,这些命令是最常用的。

启动、停止oracle数据库实例监听:

[root@RAC01 ~]$ srvctl start listener --启动监听

[root@RAC01 ~]$ srvctl stop listener --停止监听

数据库

[root@RAC01 ~]$ srvctl start database -d rac --启动数据库

[root@RAC01 ~]$ srvctl stop database -d rac --停止数据库

或者

[root@RAC01 ~]$ srvctl stop database -d rac -o immediate --停止数据库

[root@RAC01 ~]$ srvctl start database -d rac -o open/mount/'read only' --启动到打开、挂载、只读模式

启停Oracle RAC集群这个操作会停止数据库,并停止rac其他所有的集群服务(如asm实例、vip、监听以及rac高可用环境):

[root@rac01 ~]$ crsctl start cluster -all --启动

[root@rac01 ~]$ crsctl stop cluster -all --停止增加swap分区大小[root@rac02 grid]# free -m

total used free shared buff/cache available

Mem: 11757 136 5078 8 6542 11539

Swap: 6015 0 6015

[root@rac02 grid]# mkdir /swap

[root@rac02 grid]# dd if=/dev/zero of=/swap/swap bs=1024 count=6291456 #一个block是1k,6291456就是6G

6291456+0 records in

6291456+0 records out

6442450944 bytes (6.4 GB) copied, 8.93982 s, 721 MB/s

[root@rac02 grid]# /sbin/mkswap /swap/swap

Setting up swapspace version 1, size = 6291452 KiB

no label, UUID=35c98431-eb56-4ad7-99cd-d3414cce75ca

[root@rac02 grid]# /sbin/swapon /swap/swap

swapon: /swap/swap: insecure permissions 0644, 0600 suggested.

[root@rac02 grid]# free -m

total used free shared buff/cache available

Mem: 11757 141 5074 8 6542 11534

Swap: 12159 0 12159

本文用到的相关shell脚本和数据库配置文件可以通过访问我的GitHub仓库下载。

参考资料:

https://docs.oracle.com/database/121/RILIN/toc.htmhttp://www.oracle.com/technetwork/database/clustering/tech-generic-linux-new-086754.htmlhttps://www.fatihacar.com/blog/oracle-12c-r2-12-2-0-1-rac-installation-steps-on-oracle-linux-7-3/http://blog.51cto.com/ld0381/1923207

相关内容

逆袭丨全队身价不到2500万欧元的巴拿马,出线了
365betasia

逆袭丨全队身价不到2500万欧元的巴拿马,出线了

⌚ 07-22 👁️‍🗨️ 9641
国内五大新秀HiFi磁性女声,知道的有哪几位
365bet外围

国内五大新秀HiFi磁性女声,知道的有哪几位

⌚ 06-30 👁️‍🗨️ 7399

友情链接