Oracle RAC(Linux)搭建

Posted wounder

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle RAC(Linux)搭建相关的知识,希望对你有一定的参考价值。

1、前言

此文档详细描述了Oracle 11gR2 数据库在AIX上的安装RAC的需求及安装步骤。

参考文档

《Oracle® Real Application Clusters Installation Guide 11g Release 2 (11.2) for Linux and UNIX》

 Part Number E10813-06

《Oracle® Database Installation Guide 11g Release 2 (11.2) for IBM AIX on POWER Systems (64-Bit》

 Part Number E10854-03

《Oracle® Database Performance Tuning Guide 11g Release 2 (11.2)》Part Number E10821-05

《Oracle® Database Storage Administrator\'s Guide 11g Release 2 (11.2)》Part Number E10500-04

《Oracle® Grid Infrastructure Installation Guide 11g Release 2 (11.2) for IBM AIX Based Systems》

Part Number E10814-02

 

2、系统环境

数据库架构

本例中数据库架构为2个节点的RAC集群,使用ASM管理数据文件

操作系统版本

数据库服务器的OS版本是AIX 6.1

 

3、Oracle安装需求

        

3.1、OS 配置需求

OS版本

查看系统版本以及否是64位

qdgs:/home/oracle$uname -a

AIX qdgs 1 7 00F7E1D24C00

 

qdgs:/home/oracle$/usr/bin/getconf  HARDWARE_BITMODE

64

PATCHES & PACKAGES

PACKAGE

AIX 6.1 required packages:

bos.adt.base

bos.adt.lib

bos.adt.libm

bos.perf.libperfstat 6.1.2.1 or later

bos.perf.perfstat

bos.perf.proctools

rsct.basic.rte (For RAC configurations only)

rsct.compat.clients.rte (For RAC configurations only)

xlC.aix61.rte:10.1.0.0 or later

gpfs.base 3.2.1.8 or later (Only for RAC)

#lslpp -l bos.adt.base bos.adt.lib bos.adt.libm bos.perf.libperfstat 6.1.2.1 bos.perf.perfstat bos.perf.proctools rsct.basic.rte rsct.compat.clients.rte xlC.aix61.rte:10.1.0.0 gpfs.base 3.2.1.8

APARS

IZ41855

IZ51456

IZ52319

IZ97457

IZ89165

IV04047    reference note 1264074.1 and Note:1379753.1

检查命令:

#/usr/sbin/instfix -i -k "IZ41855 IZ51456 IZ52319 IZ97457 IZ89165"

系统中若无patch IZ89165, Patch IZ97457,则按照如下根据系统版本对应patch检查替换patch是否存在。

可替换patch

** Patch IZ89165 **

6100-03 - use AIX APAR IZ89304

6100-04 - use AIX APAR IZ89302

6100-05 - use AIX APAR IZ89300

6100-06 - use AIX APAR IZ89514

** Patch IZ97457 **

6100-04 - use AIX APAR IZ97605

6100-05 - use AIX APAR IZ97457

6100-06 - use AIX APAR IZ96155

JDK&JRE

IBM JDK 1.6.0.00 (64 BIT)

空间需求

RAM                    minimum 1GB recommended 2GB

TMP                    at least 1GB

Grid home              at least 4.5 GB

Oracle Database home   at least 4GB

根据内存设置swap大小:  

RAM         Swap Space

1G~2G       内存的1.5倍

2G~16G      与内存相等

16G以上     16G

检查系统内存:

qdgs:/home/oracle$/usr/sbin/lsattr -HE -l sys0 -a realmem

attributevalue  description                           user_settable

realmem   25165824 Amount of usable physical memory in Kbytes False

qdgs:/home/oracle$

检查交换分区大小

qdgs:/home/oracle$/usr/sbin/lsps -a

Page Space Physical Volume Volume Group   Size %Used Active Auto Type Chksum

hd6       hdisk0        rootvg      16384MB     2   yes  yes   lv     0

检查磁盘空间

#getconf DISK_SIZE /dev/hdisk[]

qdgs:/home/oracle$getconf DISK_SIZE /dev/hdisk3

511996

检查网卡顺序,网卡主备(注意网卡与IP对应是否正确)

#ifconfig -a

#lsattr -E -l 网卡名

IP地址要求

每个节点至少两个以上网卡,其中一个是内网网卡,也叫心跳网卡;另一个是公网,对外提供服务。内网绑定172或10开头的ip地址;公网上绑定public ip。另外还需要分配一个vip,与public ip同网段;SCAN IP整个集群只有一个。请参考以下示例:

节点1:

一个公网IP:100.12.98.21

两个私网IP:172.16.2.1   172.16.2.11

一个虚拟IP:100.12.98.23

SCAN_IP:100.12.98.25

节点2:

一个公网IP:100.12.98.27

两个私网IP:172.16.2.3   172.16.2.13

 一个虚拟IP:100.12.98.29

SCAN_IP:100.12.98.25

AIX操作系统TCP和UDP参数的修改

在root用户下,执行如下命令:

修改命令:

no -r -o ipqmaxlen=521            

no -p -o rfc1323=1                  

no -p -o sb_max=1500000   

no -p -o tcp_recvspace=65536

no -p -o tcp_sendspace=65536

no -p -o udp_recvspace=1351680

no -p -o udp_sendspace=13516

可用/usr/sbin/no -a | fgrep <参数名>来查看参数值

AIX内核参数的修改

查看参数

# /usr/sbin/no -a | fgrep ephemeral

       tcp_ephemeral_high = 65500

        tcp_ephemeral_low = 9000

       udp_ephemeral_high = 65500

        udp_ephemeral_low = 9000

修改参数

# /usr/sbin/no -p -o tcp_ephemeral_low=9000 -o tcp_ephemeral_high=65500

# /usr/sbin/no -p -o udp_ephemeral_low=9000 -o udp_ephemeral_high=65500

AIX操作系统内存参数的修改

vmo -p -o minperm%=3

vmo -p -o maxperm%=90

vmo -p -o maxclient%=90

vmo -p -o lru_file_repage=0

vmo -p -o strict_maxclient=1

vmo -p -o strict_maxperm=0

双机对等性认证

配置集群内2个节点的SSH对等性认证

在两个节点分别执行下列两个脚本,脚本位于安装软件解压路径下的grid目录中。

P780-1-VPAR1[/]# find /u01 -name sshUserSetup.sh

/u01/11.2.0/grid/deinstall/sshUserSetup.sh

/u01/11.2.0/grid/oui/prov/resources/scripts/sshUserSetup.sh

#./sshUserSetup.sh -user grid -hosts "bjsczjdb01 bjsczjdb02" -advanced - noPromptPassphrase

#./sshUserSetup.sh -user oracle -hosts " bjsczjdb01 bjsczjdb02" -advanced –noPromptPassphrase

完成互信配置后,分别在各节点使用grid和oracle用户下执行下面的操作 进行

互信的检测

su - grid

date;ssh bjsczjdb01 date

date;ssh bjsczjdb02 date

su - oracle

date;ssh bjsczjdb01 date

date;ssh bjsczjdb02 date

 

AIX操作系统启用异步IO

AIX 6.1 缺省启用异步IO,无需修改

Oracle数据库系统软件及补丁要求

需要安装的psu版本为11.2.0.3.3,patch id 为:13923374, 13919095

其他

在所有节点的/etc/hosts文件中配置IP与别名,命名规则一般建议为主机名-IP类型。

例如

public IP  :IP地址 hostname

Private IP : IP地址 hostname-priv

VIP        : IP 地址 hostname-vip

Scan IP    : IP 地址 hostname-scan

 

#cat /etc/hosts  

#hostname

100.12.98.21    bjsczjdb01

100.12.98.27    bjsczjdb02

 

#oracle_vip

100.12.98.23    bjsczjdb01-vip

100.12.98.29    bjsczjdb02-vip

 

#oracle_private_ip1

172.16.2.1  bjsczjdb01-prvi1

172.16.2.3  bjsczjdb02-prvi1

 

#oracle_private_ip2

172.16.2.11 bjsczjdb01-prvi2

172.16.2.13 bjsczjdb02-prvi2

#oracle_scan_ip

100.12.98.25    bjsczjdb01-scan

3.2、存储配置

数据库ASM磁盘设备的划分

使用如下命令对磁盘属性进行修改。 (所有节点都需要执行)

#chmod 660 /dev/rhdisk[]

#chown grid:asmadmin /dev/rhdisk[]

#lsattr -E -l hdisk[] | grep reserve_

如果是reserve_policy则执行下面的操作

#chdev -l  hdisk[]  -a reserve_policy=no_reserve

如果是reserve_lock

#chdev -l hdisk[] -a reserve_lock=no

清除PVID

#/usr/sbin/chdev -l hdisk[] -a pv=clear

 

3.3、Oracle安装用户和组设置

创建介质存储路径及解压路径

由于安装介质较多,建议分别创建软件存放及解压路径,示例如下:

数据库安装软件包存储路径

# mkdir -p /u01/sw/db 

Oracle psu安装包存储路径   

 # mkdir -p /u01/sw/psu 

新版本的OPATCH安装包存储路径    

# mkdir -p /u01/sw/patch 

需要安装的rpm包存储路径

# mkdir -p /u01/sw/rpm      

# chmod -R 777 /u01/sw 

创建用户和组

建立Oracle安装目录组:

mkgroup -\'A\' id=\'501\' adms=\'root\' oinstall

建立Oracle ASMDBA组:

mkgroup -\'A\' id=\'502\' adms=\'root\' asmadmin

mkgroup -\'A\' id=\'503\' adms=\'root\' asmdba

mkgroup -\'A\' id=\'504\' adms=\'root\' asmoper

mkgroup -\'A\' id=\'505\' adms=\'root\' dba

建立Grid安装用户grid:

mkuser id=\'501\' pgrp=\'oinstall\' groups=\'asmadmin,asmdba,asmoper\' home=\'/home/grid\' fsize=-1 cpu=-1 data=-1 rss=-1 stack=-1 stack_hard=-1 capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE grid

passwd grid 密码为oracle123(注意密码设置完成后需要重新登录再次设置才可生效)

建立Oracle安装用户oracle:

mkuser id=\'502\' pgrp=\'oinstall\' groups=\'dba,asmdba\' home=\'/home/oracle\' fsize=-1 cpu=-1 data=-1 rss=-1 stack=-1 stack_hard=-1 capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle

passwd oracle 密码为:xxx,例如:oracle123

注意在创建密码后需要重新登陆再次设置生效

检查创建的用户

# id oracle

uid=502(oracle) gid=501(oinstall) groups=503(asmdba),505(dba)

# id grid

uid=501(grid) gid=501(oinstall)groups=502(asmadmin),503(asmdba),504(asmoper)

检查用户权限

# lsuser -a capabilities grid

grid capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE

<<< 如果没有显示正确则执行

# chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE grid

# lsuser -a capabilities oracle

oracle capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE

创建安装目录

目录创建示例如下:

Oracle inventory 目录

#mkdir -p /u01/app/oraInventory

#chown -R grid:oinstall /u01/app/oraInventory

#chmod -R 775 /u01/app/oraInventory

Grid Infrastructure BASE 目录

#mkdir -p /u01/app/grid

#chown grid:oinstall /u01/app/grid

#chmod -R 775 /u01/app/grid

Grid Infrastructure Home 目录

#mkdir -p /u01/11.2.0/grid

#chown -R grid:oinstall /u01/11.2.0/grid

#chmod -R 775 /u01/11.2.0/grid

Oracle Base 目录

#mkdir -p /u01/app/oracle

#mkdir /u01/app/oracle/cfgtoollogs

#chown -R oracle:oinstall /u01/app/oracle

#chmod -R 775 /u01/app/oracle

Oracle Rdbms Home 目录

#mkdir -p /u01/app/oracle/product/11.2.0/db_1

#chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1

#chmod -R 775 /u01/app/oracle/product/11.2.0/db_1

 

        

3.4、profile文件

创建数据库安装用户grid.profile

.profile文件内容如下:

Node1  

umask 022

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/11.2.0/grid

export ORACLE_SID=+ASM1

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH

export PS1=`hostname`:\'$PWD\'"$"

Node2   

umask 022

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/11.2.0/grid

export ORACLE_SID=+ASM2

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH

export PS1=`hostname`:\'$PWD\'"$"

创建数据库安装用户oracle.profile

.profile文件内容如下:集中库136和137节点的.profile信息不一样?

Node1:

umask 022

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

ORACLE_UNQNAME=bjschxsb

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH

export PS1=`hostname`:\'$PWD\'"$"

Node2:

umask 022

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

ORACLE_UNQNAME=bjschxsb

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH

export PS1=`hostname`:\'$PWD\'"$"

 

注意:以上用户配置信息需要在所有节点进行配置,完成配置后需要重新执行该配置文件使其生效,例如:$ . .profile

 

4、安装步骤

4.1、安装Grid Infrastructure

以root身份执行(所有节点都执行)

#./rootpre.sh    (脚本位于解压后安装包后在生成的grid目录下/u01/app/11.2.0/grid/clone/rootpre.sh

/u01/app/oracle/product/11.2.0/db_1/clone/rootpre.sh哪一个呢?)

$su – grid

$export DISPLAY=172.16.2.100:0.0(安装xmanager映射到本地,进行图形化安装这个IP是本地机器的IP吧??)

$xclock  (检测xmanager配置是否成功)

$./runInstaller

选择skip software updates, 点next

 

 

选择Install and Configure Oracle Grid Infrasturecture for a Cluster

 

选择Advanced Installation

 

Next

 

Cluster Name:CLUSTER3

Scan信息必需与/etc/hosts文件中配置一致

SCAN Name: bjsczjdb01-scan

SCAN Port: 1521

 

 

点Add将节点二加入集群,输入public hostname:bjsczjdb02

                             Virtual hostname:bjsczjdb02-vip

 

公私网选择

 

 

选择Oracle ASM管理

 

选择OCR文件存储位置,如需做冗余,则可安装下例建立OCR_VOTE磁盘组,使用三个盘:/dev/rhdisk6  /dev/rhdisk7  /dev/rhdisk8

 

 

 

选择use Same password for these accounts, 密码为:oracle123

 

Grid组选择

 

grid base: /u01/app/grid

Grid Infrastruct Home(ure HomeSoftware location): /u01/11.2.0/grid

 

选择oraInventory路经:/u01/app/oraInventory

 

 

 

 

 

    summary

 

 

 

 

 

 

4.2 、安装集群软件的psu

提示以root身份执行脚本orainstRoot.sh 和root.sh时,首先打psu ,后执行脚本。

下载最新的OPatch p6880880_112000_AIX64-5L.zip

#su – grid (所有节点操作)

$unzip p6880880_112000_AIX64-5L.zip –d $ORACLE_HOME

$ORACLE_HOME/OPatch/opatch napply -oh $ORACLE_HOME -local /u01/psu/13696251 (所有节点操作,可并行)

$ORACLE_HOME/OPatch/opatch apply -oh $ORACLE_HOME -local /u01/psu/13696216 (所有节点操作,可并行)

$opatch lsinv  检查补丁是否安装成功

确认安装psu成功后,以root身份在所有节点执行orainstRoot.sh和root.sh脚本。(不可并行)

4.3、安装数据库软件

使用oracle用户安装数据库软件

#su – oracle

$export DISPLAY=172.16.2.100:0.0

$xclock

$./runInstaller

 

 

 

 

Install_database software only

注意检查加入节点信息是否正确

 

 

 

 

选择enterprise edition(7.51GB)

 

 

确认ORACLE_HOME,ORACLE_BASE路径是否正确

 

 

ORACLE_BASE: /u01/app/oracle

ORACLE_HOME: /u01/app/oracle/product/11.2.0/db_1

 

选择管理组

 

 

 

 

 

 

4.4、安装数据库psu

注意在安装过程中根据提示运行脚本root.sh,先打psu后执行root.sh

#su – oracle(所有节点操作)

$unzip p6880880_112000_AIX64-5L.zip –d $ORACLE_HOME

$unzip p13696251_112030_AIX64-5L.zip –d /u01/psu

注意在psu目录中不能包含除PSU解压文件以外的文件。

$ /u01/psu/13696251/custom/server/13696251/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME

$ORACLE_HOME/OPatch/opatch napply -oh $ORACLE_HOME -local /u01/psu/13696251/custom/server/13696251

$ORACLE_HOME/OPatch/opatch apply -oh $ORACLE_HOME -local /u01/psu/13696216

$/u01/psu/13696251/custom/server/13696251/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME

# /u01/11.2.0/grid/rdbms/install/rootadd_rdbms.sh(以root身份执行)

打完补丁后注意检查:

$opatch lsinv

Psu完成后,以root身份在所有节点按照提示执行root.sh(不可并行)

4.5、配置ASM

使用grid用户创建asm磁盘组

#su – grid

$export DISPLAY=172.16.2.100:0.0

$asmca

点create

DATA 两块磁盘   external      AU:4   1T

FLS 一块磁盘    external      AU:4   512GB

4.6、创建数据库

使用oracle用户安装数据库

#su – oracle

$export DISPLAY=172.16.2.100:0.0

$xclock

$dbca

选择create a Database

 

选择custom Database

 

 注意实例名填写正确,选中两个节点(select all)(实例名不超过8位)

 

 

根据需求如需安装EM,选择configure Enterprise  Manager

 

选择enable automatic maintenance tasks

建议为所有用户配置相同密码,例如:oracle123

 

指定数据文件存放位置

 

 

根据需求如需开启归档,选择enable archiving,注意此处如不指出归档路径,默认为fast recovery area,大小受限于fast recovery area的大小。如需指明归档路径,选择edit archive mode parameters进行指定。

 

 

根据具体需求选择相应组件

 

关键参数设置

根据具体需求对数据库内存进行设置

 

连接数Processes:1000

 

 

选择字符集:AL32UTF8

 

 

默认为Dedicated Server Mode

 

 

Summary  查看配置信息

 

 

创建实例二:步骤同上

创建完成后检查集群状态

$crsctl status res –t  

以上是关于Oracle RAC(Linux)搭建的主要内容,如果未能解决你的问题,请参考以下文章

19c的 rac在oracle linux7.4上搭建总结

Oracle 11g R2(11.2.0.4.0)+udev搭建RAC

Oracle11g RAC+DG搭建

Oracle 11g 两个节点RAC 搭建单实例DG详细步骤以及注意事项

Rhel7.3_Oracle12cR2的RAC搭建安装

AIX下RAC搭建 Oracle10G安装oracle建立监听