Oracle Database 12c Release 2 (12.2) RAC On Oracle Linux 7

一、概述

本文主要阐述基于ASM 构建 Oracle 12c RAC数据库的过程说明

1.1 系统版本要求

  • 确保 Oracle Linux 版本为 6 或更高版本。

  • 确保两个节点的 Oracle Linux 内核版本为 2.6.32 或更高版本。

1.2 系统安装要求

安装 Oracle Linux 7,就像安装基本服务器一样,更具体地说,它应该是一个至少具有 4G+ 交换空间、禁用防火墙、selinux为disabled,并安装了如下软件包组:

  • Server with GUI

  • Hardware Monitoring Utilities

  • Large Systems Performance

  • Network file system client

  • Performance Tools

  • Compatibility Libraries

  • Development Tools

在Linux 7及以上的网络适配器称为 enp0s3、enp0s8 和 enp0s9,在以前的 Linux 版本中,它们分别是 eth0、eth1 和 eth2。

1.3 架构图

Virtual RAC

二、配置操作系统

2.1 Oracle 安装先决条件

执行自动设置或手动设置以完成基本先决条件。所有安装都需要附加设置。

2.1.1 自动设置

如果您计划使用“oracle-database-server-12cR2-preinstall”软件包来执行所有先决条件设置,可以通过执行如下命令。

# yum install oracle-database-server-12cR2-preinstall -y

早期版本的 Oracle Linux 需要按照http://public-yum.oracle.com上的说明手动设置 Yum 存储库。

建议对系统进行全面的更新,但这不是必须的操作

# yum update -y

2.1.2 手动设置

如果您尚未使用“oracle-database-server-12cR2-preinstall”软件包来执行所有先决条件,则需要手动执行以下安装任务。

1、设置/etc/sysctl.conf

将以下行添加到“/etc/sysctl.conf”文件或名为“/etc/sysctl.d/98-oracle.conf”的文件中。

fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

运行以一下命令使当前修改内核参数生效。

/sbin/sysctl -p 
# 或
/sbin/sysctl -p /etc/sysctl.d/98-oracle.conf
2、修改oarcle参数的shell限制

将以下行添加到名为“/etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf”的文件中。

oracle   soft   nofile    1024
oracle   hard   nofile   65536
oracle   soft   nproc   16384
oracle   hard   nproc   16384
oracle   soft   stack   10240
oracle   hard   stack   32768
oracle   hard   memlock   134217728
oracle   soft   memlock   134217728
3、安装系统软件包

除了基本操作系统安装之外,还必须以 root 用户身份登录时安装以下软件包。这包括某些软件包的 64 位和 32 位版本。

# From Public Yum or ULN
yum install binutils -y
yum install compat-libstdc++-33 -y
yum install compat-libstdc++-33.i686 -y
yum install gcc -y
yum install gcc-c++ -y
yum install glibc -y
yum install glibc.i686 -y
yum install glibc-devel -y
yum install glibc-devel.i686 -y
yum install ksh -y
yum install libgcc -y
yum install libgcc.i686 -y
yum install libstdc++ -y
yum install libstdc++.i686 -y
yum install libstdc++-devel -y
yum install libstdc++-devel.i686 -y
yum install libaio -y
yum install libaio.i686 -y
yum install libaio-devel -y
yum install libaio-devel.i686 -y
yum install libXext -y
yum install libXext.i686 -y
yum install libXtst -y
yum install libXtst.i686 -y
yum install libX11 -y
yum install libX11.i686 -y
yum install libXau -y
yum install libXau.i686 -y
yum install libxcb -y
yum install libxcb.i686 -y
yum install libXi -y
yum install libXi.i686 -y
yum install make -y
yum install sysstat -y
yum install unixODBC -y
yum install unixODBC-devel -y
yum install zlib-devel -y
yum install zlib-devel.i686 -y
4、创建新组和用户
groupadd -g 1000 oinstall
groupadd -g 1100 asmadmin
groupadd -g 1200 dba
groupadd -g 1300 asmdba
groupadd -g 1301 asmoper
groupadd -g 1400 oper

/usr/sbin/useradd -u 1001 -g oinstall -G asmadmin,asmdba,asmoper grid
/usr/sbin/useradd -u 1000 -g oinstall -G dba,asmdba,oper oracle
echo "grid" | passwd --stdin grid
echo "oracle" | passwd --stdin oracle

 

2.2 其他设置

无论您进行手动设置还是自动设置,都必须执行以下步骤。

1、设置/etc/hosts解析
127.0.0.1       localhost.localdomain   localhost
# Public
192.168.56.101   ol7-122-rac1.localdomain       ol7-122-rac1
192.168.56.102   ol7-122-rac2.localdomain       ol7-122-rac2
# Private
192.168.1.101   ol7-122-rac1-priv.localdomain   ol7-122-rac1-priv
192.168.1.102   ol7-122-rac2-priv.localdomain   ol7-122-rac2-priv
# Virtual
192.168.56.103   ol7-122-rac1-vip.localdomain   ol7-122-rac1-vip
192.168.56.104   ol7-122-rac2-vip.localdomain   ol7-122-rac2-vip
# SCAN
#192.168.56.105   ol7-122-scan.localdomain ol7-122-scan
#192.168.56.106   ol7-122-scan.localdomain ol7-122-scan
#192.168.56.107   ol7-122-scan.localdomain ol7-122-scan

SCAN 地址在主机文件中被注释掉,因为它必须使用 DNS 进行解析,因此它可以在与公共 IP 位于同一子网上的 3 个地址之间进行循环。可以使用BINDDnsmasq在主机上配置 DNS ,这要简单得多。如果您使用 Dnsmasq,请将 RAC 特定条目放入主机“/etc/hosts”文件中,取消注释 SCAN 条目,然后重新启动 Dnsmasq。

确保“/etc/resolv.conf”文件包含指向正确名称服务器的名称服务器条目。另外,如果“域”和“搜索”条目都存在,请注释掉其中之一。对于此安装,我的“/etc/resolv.conf”如下所示。

#domain localdomain
search localdomain
nameserver 192.168.56.1
2、关闭selinux

通过编辑“/etc/selinux/config”文件,确保selinux设置如下:

SELINUX=disabled
3、关闭firewall
# systemctl stop firewalld
# systemctl disable firewalld
4、确保 NTP(OL7/RHEL7 上的 Chrony)已启用
# systemctl enable chronyd
# systemctl restart chronyd
# chronyc -a 'burst 4/4'
# chronyc -a makestep
5、oracle用户的 Bash 配置文件

两节点都需要配置,添加如下内容:

cat >> .bash_profile << EOF
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=rac1<-->rac2; export ORACLE_HOSTNAME
ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
DB_HOME=$ORACLE_BASE/product/12.2.0.1/db_1; export DB_HOME
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
ORACLE_SID=orcl1<-->orcl2; export ORACLE_SID  
ORACLE_TERM=xterm; export ORACLE_TERM
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PS1=[`hostname`'@$PWD']$
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
EOF
exit
6、grid用户环境变量
#grid
su - grid
.bash_profile
ORACLE_SID=+ASM1<-->+ASM2; export ORACLE_SID  
ORACLE_HOME=/u01/app/12.2.0.1/grid; export ORACLE_HOME
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PS1=[`hostname`'@$PWD']$
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
7、创建相关用户及目录
mkdir -p  /u01/app/12.2.0.1/grid
chown -R grid:oinstall /u01
mkdir -p /u01/app/oracle/product/12.2.0.1/db_1
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/
8、配置ASM存储
方法二:通过命令创建
本次安装使用了oracleasmlib管理asm磁盘
首先从linux-kernel安装kmod-oracleasm,这是linux源中自带的,是linux支持oracleasm的软件包
然后从oracle官网下载oracleasmlib和oracleasm-support

/usr/sbin/oracleasm configure -i   #两个节点
二、配置ASMlib,再使用ASMlib之前,必须运行配置脚本准备驱动程序:
使用root执行:/etc/init.d/oracleasm configure

[root@yft 1234]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting <ENTER> without typing an
answer will keep that current value. Ctrl-C will abort.

Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver:                     [ OK ]
Scanning the system for Oracle ASMLib disks:               [ OK ]

[root@yft 1234]# /etc/init.d/oracleasm enable
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver:                     [ OK ]
Scanning the system for Oracle ASMLib disks:               [ OK ]


/etc/init.d/oracleasm enable #两个节点
/etc/init.d/oracleasm start  #两个节点
/usr/sbin/oracleasm listdisks
/usr/sbin/oracleasm querydisks
/usr/sbin/oracleasm createdisk NAME /path
/usr/sbin/oracleasm scandisks  #一个节点创建磁盘后,另一个节点扫描磁盘即可
#本次创建的磁盘
/etc/init.d/oracleasm createdisk VOLCRS01 /dev/vdb1
/etc/init.d/oracleasm createdisk VOLCRS02 /dev/vdc1
/etc/init.d/oracleasm createdisk VOLCRS03 /dev/vdd1
/etc/init.d/oracleasm createdisk VOLDATA01 /dev/vdb2
/etc/init.d/oracleasm createdisk VOLDATA02 /dev/vdc2
/etc/init.d/oracleasm createdisk VOLDATA03 /dev/vdd2

附件:asm包下载地址

http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/index.html

 

三、 Install Grid Infrastructure

 

export SOFTWARE_LOCATION=/media/sf_12.2.0.1/
cd /u01/app/12.2.0.1/grid
unzip -q $SOFTWARE_LOCATION/linuxx64_12201_grid_home.zip

我可以使用此编辑的响应文件 ( grid_config.rsp ) 和以下命令以静默模式运行配置。

cd /u01/app/12.2.0.1/grid
./gridSetup.sh -silent -responseFile /tmp/grid_config.rsp

相反,这是交互式配置。

cd /u01/app/12.2.0.1/grid
./gridSetup.sh

选择“为新集群配置 Oracle Grid Infrastructure”选项,然后单击“下一步”按钮。

网格 - 选择配置选项

单击“下一步”按钮接受“配置 Oracle 独立集群”选项。

网格 - 选择集群配置

输入集群名称“ol7-122-cluster”、SCAN 名称“ol7-122-scan”和 SCAN 端口“1521”,然后单击“下一步”按钮。

网格 - 网格即插即用信息

在“集群节点信息”屏幕上,单击“添加”按钮。

Grid - 集群节点信息

输入集群中第二个节点的详细信息,然后单击“确定”按钮。

Grid - 添加集群节点信息

单击“SSH 连接...”按钮并输入“oracle”用户的密码。单击“设置”按钮配置 SSH 连接,完成后单击“测试”按钮进行测试。测试完成后,单击“下一步”按钮。

网格 - SSH 连接

检查公共和专用网络是否指定正确。如果显示 NAT 接口,请记住将其标记为“不使用”。单击“下一步”按钮。

网格 - 网络接口

单击“下一步”按钮接受“使用块设备配置 ASM”选项。

网格 - 存储选项信息

选择“否”选项,因为在这种情况下我们不想为 GIMR 创建单独的磁盘组。单击“下一步”按钮。

网格 - 网格基础设施管理存储库选项

将冗余设置为“外部”,单击“更改发现路径”按钮并将路径设置为“/dev/oracleasm/*”。返回主屏幕并选择所有 4 个磁盘。取消选中“Configure Oracle ASM Filter Driver”选项,然后单击“Next”按钮。

Grid - 创建ASM磁盘组

输入凭据并单击“下一步”按钮。

Grid - 指定 ASM 密码

单击“下一步”按钮接受默认 IPMI 选项。

网格 - 故障隔离支持

不要在 EM 注册。单击“下一步”按钮。

网格 - 指定管理选项

我们使用单个用户和组管理 ASM 添加数据库,因此将组设置为“dba”并单击“下一步”按钮。单击“是”按钮接受后续对话框中的警告。

网格 - 特权操作系统组

输入 Oracle Base 位置“/u01/app/oracle”,然后单击“下一步”按钮。我们已经为后面的数据库安装预先创建了目录,因此通过单击“是”按钮忽略后续有关 Oracle Base 不为空的警告。

网格 - 指定安装位置

单击“下一步”按钮接受默认清单目录。

网格 - 创建库存

如果您希望根脚本自动运行,请输入相关凭据。我更喜欢手动运行它们。单击“下一步”按钮。

Grid - 根脚本执行配置

等待先决条件检查完成。如果您有任何问题,请使用“修复并再次检查”按钮。完成可能的修复后,选中“全部忽略”复选框,然后单击“下一步”按钮。对于此类安装,“物理内存”和“网络时间协议 (NTP)”测试可能会失败。还行吧。

网格 - 执行先决条件检查

如果您对摘要信息感到满意,请单击“安装”按钮。

网格 - 总结

等待安装进行。

网格 - 安装产品

出现提示时,在每个节点上运行配置脚本。

网格 - 执行配置脚本

 

等待配置助手完成。

网格 - 配置助手

如果任何配置步骤失败,您应该检查指定的日志,看看该错误是否是一个严重的错误。我收到的唯一错误是时间同步错误(PRVG-13606..

PRVG-13606:chrony 守护进程未与节点上的任何外部时间源同步...

如果您没有任何阻碍,可以通过单击“下一步”按钮安全地忽略错误。

单击“关闭”按钮退出安装程序。

网格 - 完成

Grid Infrastructure安装现已完成。我们可以使用以下命令检查安装的状态。

$ grid_env
$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target State       Server                   State details      
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr
              ONLINE ONLINE       ol7-122-rac1             STABLE
              ONLINE ONLINE       ol7-122-rac2             STABLE
ora.DATA.dg
              ONLINE ONLINE       ol7-122-rac1             STABLE
              ONLINE ONLINE       ol7-122-rac2             STABLE
ora.LISTENER.lsnr
              ONLINE ONLINE       ol7-122-rac1             STABLE
              ONLINE ONLINE       ol7-122-rac2             STABLE
ora.chad
              ONLINE ONLINE       ol7-122-rac1             STABLE
              ONLINE ONLINE       ol7-122-rac2             STABLE
ora.net1.network
              ONLINE ONLINE       ol7-122-rac1             STABLE
              ONLINE ONLINE       ol7-122-rac2             STABLE
ora.ons
              ONLINE ONLINE       ol7-122-rac1             STABLE
              ONLINE ONLINE       ol7-122-rac2             STABLE
ora.proxy_advm
              OFFLINE OFFLINE     ol7-122-rac1             STABLE
              OFFLINE OFFLINE     ol7-122-rac2             STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
    1       ONLINE ONLINE       ol7-122-rac2             STABLE
ora.LISTENER_SCAN2.lsnr
    1       ONLINE ONLINE       ol7-122-rac2             STABLE
ora.LISTENER_SCAN3.lsnr
    1       ONLINE ONLINE       ol7-122-rac2             STABLE
ora.MGMTLSNR
    1       ONLINE ONLINE       ol7-122-rac2             169.254.137.110 192.
                                                            168.1.102,STABLE
ora.asm
    1       ONLINE ONLINE       ol7-122-rac1             Started,STABLE
    2       ONLINE ONLINE       ol7-122-rac2             Started,STABLE
    3       OFFLINE OFFLINE                               STABLE
ora.cvu
    1       ONLINE ONLINE       ol7-122-rac1             STABLE
ora.mgmtdb
    1       ONLINE ONLINE       ol7-122-rac2             Open,STABLE
ora.ol7-122-rac1.vip
    1       ONLINE ONLINE       ol7-122-rac1             STABLE
ora.ol7-122-rac2.vip
    1       ONLINE ONLINE       ol7-122-rac2             STABLE
ora.qosmserver
    1       ONLINE ONLINE       ol7-122-rac1             STABLE
ora.scan1.vip
    1       ONLINE ONLINE       ol7-122-rac2             STABLE
ora.scan2.vip
    1       ONLINE ONLINE       ol7-122-rac2             STABLE
ora.scan3.vip
    1       ONLINE ONLINE       ol7-122-rac2             STABLE
--------------------------------------------------------------------------------
$

 

我可以使用此编辑的响应文件 ( db_install.rsp ) 和以下命令以静默模式运行 OUI 。

$ db_env 
$ cd /media/sf_12.2.0.1/database
$ ./runInstaller -silent -ignoreSysPrereqs -showProgress -responseFile /tmp/db_install.rsp

相反,这是交互式视图。

$ db_env 
$ cd /media/sf_12.2.0.1/database
$ ./runInstaller

取消选中安全更新复选框,然后单击“下一步”按钮,然后在随后的警告对话框中单击“是”。

数据库 - 配置安全更新

选择“仅安装数据库软件”选项,然后单击“下一步”按钮。

DB - 选择安装选项

单击“下一步”按钮接受“Oracle Real Application Clusters 数据库安装”选项。

DB - 网格安装选项

确保两个节点都被选中,然后单击“下一步”按钮。

DB - 节点选择

选择“企业版”选项,然后单击“下一步”按钮。

DB - 选择数据库版本

输入“/u01/app/oracle”作为 Oracle 库,输入“/u01/app/oracle/product/12.2.0.1/db_1”作为软件位置,然后单击“下一步”按钮。

DB - 指定安装位置

选择所需的操作系统组,然后单击“下一步”按钮。在本例中,我们仅使用“dba”组。

DB - 特权操作系统组

等待先决条件检查完成。如果有任何问题,请单击“修复并再次检查”按钮,或选中“全部忽略”复选框并单击“下一步”按钮。

DB - 执行先决条件检查

如果您对摘要信息感到满意,请单击“安装”按钮。

数据库 - 摘要

等待安装进行。

DB - 安装产品

出现提示时,在每个节点上运行配置脚本。当脚本在每个节点上运行后,单击“确定”按钮。

DB - 执行配置脚本

单击“关闭”按钮退出安装程序。

DB-完成

 

 

四、创建数据库

确保“ol7-122-rac1”和“ol7-122-rac2”已启动,然后以oracle用户登录“ol7-122-rac1”并启动数据库创建助手(DBCA)。

我可以使用此编辑的响应文件 ( dbca.rsp ) 和以下命令以静默模式运行 DBCA 。

db_env 
dbca -silent -responseFile /tmp/dbca.rsp

相反,这是交互式视图。

$ db_env 
$ dbca

选择“创建数据库”选项并单击“下一步”按钮。

DBCA-- 数据库操作

选择“典型配置”选项。输入容器数据库名称 (cdbrac)、可插入数据库名称 (pdb1) 和管理员密码。单击“下一步”按钮。

DBCA——创建模式

等待先决条件检查完成。如果有任何问题,请修复它们,或选中“全部忽略”复选框并单击“下一步”按钮。如果没有问题,您将直接进入摘要屏幕。如果您对摘要信息感到满意,请单击“完成”按钮。

DBCA - 总结

等待数据库创建发生。

DBCA - 进度页面

如果您想修改密码,请点击“密码管理”按钮。完成后,单击“关闭”按钮。

DBCA-- 完成

至此 RAC 数据库创建完成。

五、检查RAC状态

有多种方法可以检查 RAC 的状态。该srvctl实用程序显示 RAC 数据库的当前配置和状态。

$ srvctl config database -d cdbrac
Database unique name: cdbrac
Database name: cdbrac
Oracle home: /u01/app/oracle/product/12.2.0.1/db_1
Oracle user: oracle
Spfile: +DATA/CDBRAC/PARAMETERFILE/spfile.306.938083453
Password file: +DATA/CDBRAC/PASSWORD/pwdcdbrac.285.938081999
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups: DATA
Mount point paths:
Services:
Type: RAC
Start concurrency:
Stop concurrency:
OSDBA group: dba
OSOPER group:
Database instances: cdbrac1,cdbrac2
Configured nodes: ol7-122-rac1,ol7-122-rac2
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services:
Database is administrator managed
$

$ srvctl status database -d cdbrac
Instance cdbrac1 is running on node ol7-122-rac1
Instance cdbrac2 is running on node ol7-122-rac2
$

V$ACTIVE_INSTANCES视图还可以显示实例的当前状态。

$ sqlplus / as sysdba 

SQL*Plus:2017 年 3 月 8 日星期三 11:04:42 发布 12.2.0.1.0 版本,

版权所有 (c) 1982,2016,Oracle。版权所有。


连接到:
Oracle Database 12c 企业版版本 12.2.0.1.0 - 64 位生产

SQL> SELECT inst_name FROM v$active_instances;


INST_NAME
------------------------------------------------- -------------------------------
ol7-122-rac1.localdomain:cdbrac1
ol7-122-rac2.localdomain:cdbrac2

SQL >

六、引用

posted @ 2023-08-14 23:07  雪竹子  阅读(109)  评论(0编辑  收藏  举报