admin 管理员组

文章数量: 1184232


2023年12月23日发(作者:java进度条取消实现方法)

ORACLE 11G RAC

安装部署及测试方案

BY:

一、系统要求

1.1 硬件环境要求

Oracle11gR2 RAC 最低安装要求:

内存:安装 grid infrastructure 最少需要 1.5GB 的内存,安装grid infrastructure 和 RAC 最少需要 2.5GB 的内存

swap:最少需要 1.5GB,推荐等于实际物理内存

temp:最少 1GB /tmp

安装目录:grid infrastructure最少需要 15GB空间,

oracle database 至少15GB ,建议为安装目录

创建单独的文件系统,如: /u01。

操作系统:aix 6.1,并且需要安装如下软件包:

lslpp -l

fstat

at ols

1.2 网络环境要求1.2.1、IP 地址要求

Oracle 11gR2 RAC 中对网络的要求与 10g 稍有些不同,除 Public IP、Private IP、VIP外,在Oracle 11gR2RAC 中还引入了 SCAN IP的概念。SCAN 全称是 Single Client Access Name ,它是 Oracle RAC 11gR2 版本的一个新特性。它为需要访问Oracle 集群数据的客户 端提供一个简单名字。

1.2.2、

DNS 服务器

在 Oracle 11gR2 RAC 中引入了 SCAN 的概念,而 ORACLE 推荐使用

DNS 解析的方法来实现 SCAN,这就要求网络中有一台 DNS 服务器用来解析

SCAN 地址。如果你网络中没有专用的 DNS 服务器,那么也可以使用hosts文件进行解析。

1.2.3、NTP 服务器

在 Oracle 10g 和 11g 中都需要一台时钟服务器,将网络中的所有机器时钟与之保持同步,特别是两台集群数据库的主机时钟必须保持同步,否则集群将会出现异常。推荐使用一台专用的服务器做为时钟服务器,如果你网络中没有专用的 NTP 服务器,那么也可以用现有的数据库服务器兼作时钟服务器。

1.3 存储环境要求

1.3.1、

grid infrastructure、oracle database 安装目录

Oracle 11gR2 RAC安装,建议在各节点建立单独的本地文件系统,如:/u01。类型为JFS2,大小为 50GB。

1.3.2、 OCR、VOTE 存储要求

规划使用三个 3GB 的阵列盘用来存放 OCR、VOTE 文件,这三块盘在

ASM 中做成 Normal 磁盘组。

1.3.3、 数据库数据文件存储要求

中做成 external 磁盘规划数据库数据文件使用ASM方式,将共享磁盘在ASM

组。

二 安装前系统检查

注意:在每个节点上都要进行以下操作系统检查,并且保证各节点的信息一致。

2.1、检查操作系统版本:

#oslevel -s

2.2、检查异步IO:

#ioo -o aio_maxreqs

aio_maxreqs = 65536

若值不满足65536,则使用命令进行更改:

#chdev -l aio0 -a maxreqs= 65536

2.3、检查操作系统包:

lslpp -l

fstat

at ols

确保各节点以上包都被安装。

2.4、检查调整虚拟内存:

检查:

vmo -L minperm%

vmo -L maxperm%

vmo -L maxclient%

vmo -L lru_file_repage

vmo -L strict_maxclient

vmo -L strict_maxperm

优化调整:

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.5、查看网络参数:

查看所有的:

#/usr/sbin/no –a | more

分项查看:

#no -a | fgrep ipqmaxlen

#no -a | fgrep rfc1323

#no -a | fgrep sb_max

#no -a | fgrep tcp_recvspace

#no -a | fgrep tcp_sendspace

#no -a | fgrep udp_recvspace

#no -a | fgrep udp_sendspace

查看以下网络参数:

Network Preparation

=======================================

PARAMETER RECOMMENDED

ipqmaxlen

rfc1323

sb_max

tcp_recvspace

tcp_sendspace

udp_recvspace

udp_sendspace

VALUE

512

1

1500000

65536

65536

1351680

135168

注意:udp_recvspace:应该是udp_sendspace的10倍,但是必须小于

sb_maxudp_sendspace:这个值至少应该是4K+

(db_block_size*db_multiblock_read_count)的大小。

若不满足,进行修改:

no -r -o ipqmaxlen=512

no -p -o rfc1323=1

no -p -o sb_max=1620000

no -p -o tcp_recvspace=65536

no -p -o tcp_sendspace=65536

no -p -o udp_recvspace=1351680

no -p -o udp_sendspace=135168

2.6、查看SWAP大小:

#lsps -a

Between 1GB and 2GB then 1.5 times RAM

Between 2GB and 16 GB then match RAM

More than 16 GB then 16GB RAM

2.7、修改内核参数:

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

tcp_ephemeral_low = 32768

tcp_ephemeral_high = 65535

udp_ephemeral_low = 32768

udp_ephemeral_high = 65535

增强

#/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

2.8、修改default用户下的资源限制:

#vi /etc/security/limits

更改default各项资源限制为-1。

2.9、修改用户允许的最大进程数:

#smit chgsys

更改 Maximum number of PROCESSES allowed per user

查看系统当前允许运行的最大进程数:

# lsattr -E -l sys0 -a maxuproc

若不满足16384,进行更改:

# chdev -l sys0 -a maxuproc=16384

2.10、安装配置ssh,确保ssh正常使用:

#lslpp –l | grep ssh

2.11、重启机器:

#shutdown -Fr

三、 安装步骤

3.1、网络配置:

节点名称以node1、node2为例

#vi /etc/hosts

内容如下:

# PUBLIC

node1

node2

# PRIVATE

node1priv

node2priv

#VIP

node1vip

为16384

node2vip

#SCAN IP

scanip

3.2、各节点建立组和用户

注意:保持各节点的组及用户ID均要一致:

创建组:

mkgroup -'A' id='1000' adms='root' oinstall

mkgroup -'A' id='1100' adms='root' asmadmin

mkgroup -'A' id='1200' adms='root' dba

mkgroup -'A' id='1300' adms='root' asmdba

mkgroup -'A' id='1301' adms='root' asmoper

创建用户:

mkuser id='1100' 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

mkuser id='1101' 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

3.3、各节点上设置grid、oracle用户使用内存参数:

#su - root

# lsuser -a capabilities grid

若没有相应参数,使用下述命令进行增加:

#chuser capabilities=

CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE grid

对oracle用户同样执行上面的操作。

3.4、配置节点间互信:

注意:执行脚本,操作系统要安装openSSH包。

#su - grid

$cd /software/grid/sshsetup

$./ -user grid -hosts "node1 node2" -advanced

-noPromptPassphrase

$./ -user oracle -hosts "node1 node2"

-advanced -noPromptPassphrase

节点1:

$ssh node1 date

$ssh node2 date

$ssh node1priv date

$ssh node2priv date

节点2:

$ssh node1 date

$ssh node2 date

$ssh node1priv date

$ssh node2priv date

3.5、在每个节点上创建grid、oracle软件安装目录:

注意:各节点的安装目录和权限要完全一致

mkdir -p /u01/app/oraInventory

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

chmod -R 775 /u01/app/oraInventory

mkdir –p /u01/app/grid

chown grid:oinstall /u01/app/grid

chmod -R 775 /u01/app/grid

mkdir -p /u01/11.2.0/grid

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

chmod -R 775 /u01/11.2.0/grid

mkdir -p /u01/app/oracle

mkdir /u01/app/oracle/cfgtoollogs

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

chmod -R 775 /u01/app/oracle

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.6、在每个节点设置grid、oracle用户环境变量:

注意:ORACLE_SID各节点不同,并注意设置完成后使设置生效:

Grid环境变量:

#su – grid

$vi .profile

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/11.2.0/grid

export ORACLE_SID=+ASM1

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

注意:节点2的ORACLE_SID=+ASM2。

Oracle环境变量:

#su – oracle

$vi .profile

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_SID=rac1

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

注意:节点2的ORACLE_SID=rac2。

设置完成后,使环境变量生效:

$. ./.profile

3.7、在每个节点上设置共享磁盘的属主、属性:

以下以hdisk1 为例说明:

#cd /dev

#chown grid:asmadmin /dev/rhdisk1

#chown 660 /dev/rhdisk1

设置磁盘属性(以hdisk1为例):

#lsattr –El hdisk1

若reserve_policy属性不为no_reserve,则修改:

# chdev -l hdisk1 -a reserve_policy=no_reserve

将磁盘格式化(以hdisk1为例):

如果lspv看到硬盘有pvid的,先执行清除:

#chdev -l hdisk1 -a pv=clear

#dd if=/dev/zero of=/dev/rhdisk1 bs=1M count=2000

3.8、安装grid

下面以安装grid 11.2.0.3为例说明。

#su – grid

$unzip p10404530_112030_AIX64-5L_

$./

$./runInstaller

运行runInstaller安装程序,进行grid安装。

注意:使用grid用户安装, 需要在每个节点都执行。

安装结束后,会要求在root用户下执行两个脚本:

/u01/app/oraInventory/

/u01/11.2.0/grid/

注意:脚本要按照提示在root用户下顺序执行,节点1执行成功后,再在

节点2上执行,不可并行执行。

3.9、安装oracle database

下面以安装oracle database 11.2.0.3为例说明。

#su – oracle

$unzip p10404530_112030_AIX64-5L_

$unzip p10404530_112030_AIX64-5L_

注意使用oracle用户安装,将两个压缩包解压到同一个目录。

$./runInstaller

运行runInstaller程序进行database安装

软件安装结束后,会提示在root用户下执行$ORACLE_HOME/脚本。

注意:脚本要按照提示在root用户下顺序执行,节点1执行成功后,再在

节点2上执行,不可并行执行。

3.10、配置ASM磁盘组

以grid用户登陆图形化界面。

$asmca

运行asmca程序,创建用于存放数据文件的ASM磁盘组。

例如:磁盘组+DATADG,冗余方式External。

3.11、创建数据库

以oracle用户登陆图形化界面。

$dbca

运行dbca程序,创建集群数据库。

注意:选择创建集群模式数据库,数据文件采用ASM方式,

正确选择数据库字符集。

四、 数据库的配置和优化

一般而言,oracle会建议使用DBCA工具创建数据库,DBCA在创建数据库时,已将必要的初始化参数都设置好了,这些由DBCA设定的参数大都可以适应用户的应用系统,只有很少的几个参数需要个别指定或调整。

4.1、实例参数设置

MEMORY_TARGET:这是oracle 11g以后的版本在内存管理增强的一个功能,称为自动内存管理(AMM),建议关闭该功能。

SGA_TARGET:指定SGA(共享全局区)的上限大小,推荐初始设置物理内存的50%。

PGA_AGGREGATE_TARGET:指定所有连接到实例的服务器进程可使用的PGA内存总和,推荐初始值大小设为20%的SGA

PROCESSES:oracle 实例可以启动的最大进程参数。推荐初始值设置1500

SESSIONS:指定用户会话和系统会话的总量,其默认数量稍大于PROCESSES参数,由oracle自动设定。

OPEN_CURSORS:每个会话可以打开的最大游标数,推荐初始值设置为500。

UNDO_MANAGEMENT:指定系统使用还原表空间的方式。在oracle9i到11G

之间版本中该参数的最佳值是AUTO。

4.2、重做日志文件配置

从经验看,日志文件的大小从50M到500M不等,甚至更大,这取决于重做信息的生成总额和频率。考虑日志文件的切换频率,最好不要超过20分钟。由于日志文件是oracle在运行状态下发生写操作频率最高的文件之一,因此推荐将日志文件存放在读写性能较好的存储设备上,在保证高可用性的前提下,最大化IO性能。每个数据库至少有两个Redo Log组,每组至少有一个日志文件。Oracle的多重在线Redo Log文件可以确保在线日志文件的安全。对于多重在线Redo

Log文件,LGWR同时将相同的Redo Log信息写入不同的Redo Log文件中,从而减少单个文件丢失的损失。

4.3、控制文件配置

控制文件是Oracle的物理文件之一,它记录了数据库的名字、数据库的物理结构及备份信息。控制文件的重要性在于,一旦控制文件损坏,数据库将会宕机。如果没有数据库的备份和归档日志文件,数据库将无法恢复。因此,我们应该多路镜像控制文件(Multiplex Control Files),并把每个镜像的控制文件分布在不同的物理磁盘,减少单个文件丢失的损失。建议每个数据库至少有两个控制文件。

4.4、表空间配置

每个数据库由一个或多个逻辑存储单位,即表空间。推荐所有的数据表空间的管理方式都是本地管理方式(Local Management),有利于空间的使用及回收管理。用户对象不应该在系统表空间(SYSTEM)中创建,这将导致系统表空间的碎片产生,并且阻止表空间增长。保证数据库用户被分配一个临时类型的表空间。不要将固定表空间作为默认临时表空间。

五、 RAC高可用性能的测试方案

5.1、测试目的

验证在RAC环境下,某节点重启时,RAC的故障恢复能力。

5.2、测试方法

测试步骤 具体操作 预期效果 衡量方法

RAC运行在正常状态

保持持续的sqlplus连接

保持持续的应用连接

重启某一个节点

crs_stat -t N/A crs_stat –t,各节点所有资源为ONLINE状态

客户端通过sqlplus连接

应用通过数据库连接池提供连接

# shutdown -Fr

N/A

N/A

N/A

N/A

该节点的数据库实例进程及CRS进程消失RAC数据库中存活的实例将进行实例恢复

vip,service均切换到存活的节点上

已有连接发生切换;新连接到新的节点

crs_stat -t该节点的进程为OFFLINE,存活实例进行实例恢复的时间,检查。

检查集群状态

检查sqlplus连接情况

crs_stat -t

检查已有连接和新建连接

crs_stat -t

vip,service均切换正常的节点

已有连接select

instance_name from

v$instance;新建连接conn

userid/password@***;

select instance_name from

v$instance;

检查应用连接池信息;select

inst_id,machine,status,count(*)

from gv$session group by

inst_id,machine,status order by

1,2,3,4;

vip切换到存活节点的时间,检查

CRS重新启动失效实例,检查、

crs_stat -t

已有连接select

instance_name from

v$instance;新建连接

conn userid/password@***;

select instance_name from

v$instance;

检查应用连接池信息;select

inst_id,machine,status,count(*)

from gv$session group by

inst_id,machine,status order by

1,2,3,4;

检查应用连接情况

检查已有连接和新建连接

连接池连接切换

等待集群状态稳定

该节点重启后

检查集群状态

检查sqlplus连接情况

记录过程起始/截止关键点信息

N/A

crs_stat -t

检查已有连接和新建连接

N/A

crs,db,nodeapp将自动启动

vip切换到原节点上

已有连接保持;新连接按tns串规则

检查应用连接情况

检查已有连接和新建连接

连接池连接保持

等待集群状态稳定

记录过程起始/截止关键点信息

恢复原始状态

启动后的实例开始接收连接请求的时间,检查,

同以上步骤,对另外节点进行反向测试。


本文标签: 数据库 文件 用户 节点