Oracle 11gR2 CRS资源配置手册

Oracle 11gR2 CRS资源配置手册

目 录
1 文档简介 3
1.1 编写目的 3
1.2 适用范围 3
1.3 名词解释 3
1.4 格式约定 3
2 安装Oracle软件及创建数据库 4
2.1 安装前环境配置 4
2.2 配置ASM存储 4
2.3 安装Oracle软件 4
2.4 创建数据库 4
3 配置数据库应用的资源 4
3.1 资源说明 4
3.1.1 由CRS自动创建的资源 4
3.1.2 需用户自行创建的资源 5
3.2 资源依赖关系图 6
3.3 禁用资源ora.testdb11.db 6
3.4 部署testdb11的启动脚本 7
3.5 创建资源池testdb11_sp 7
3.6 创建资源testdb11 7
3.7 创建资源testdb11.vip 8
3.8 创建资源testdb11.lsnr 8
3.9 创建资源testdb11.db 9
3.10 创建资源testdb11.head 10
3.11 资源组切换测试 10
4 参考文档 10
4.1 Oracle Clusterware Administration and Deployment Guide 11g Release 2 10
4.2 Oracle 11gR2 Clusterware资源切换流程 11
4.3 Clusterware_Resource_Definition 11

1 文档简介
1.1 编写目的
为Linux数据库平台集群软件Oracle 11gR2 CRS中(数据库应用)资源的标准化配置提供参考。

1.2 适用范围
该文档的阅读对象为基础架构管理部系统组、存储组、项目组等相关人员。

1.3 名词解释
序号 术语/缩略语 全称和说明
1 GI Grid Infrastructure的简称,Oracle公司的集群和存储管理软件的统称,包含集群软件Clusterware和存储管理软件ASM。
2 CRS Clusterware的简称,Oracle公司的集群管理软件。
3 ASM Automatic Storage Management的简称,Oracle公司的存储管理软件。
4 资源 由Clusterware管理的资源的应用程序或进程,需要向Clusterware注册。
5 Local资源 资源同时运行在集群中的所有节点上,某节点上的资源失效后不进行切换。
6 Cluster资源 资源同时只运行在集群中的某一节点上,当资源失效后切换到其它节点上运行。

1.4 格式约定
以“#”开头代表root用户;
以“$”开头代表普通用户;
以“>”开头代表DB用户;
以“SQL>”开头代表sqlplus命令;
以“灰色底纹”标注的为命令或输入字符;
以“斜体”标注的为配置文件内容;

“所有节点”表示集群中的所有机器;
“主节点”表示“节点一”,集群中的第一台机器(下面的cnsh230244)。

2 安装Oracle软件及创建数据库
2.1 安装前环境配置
该部分由系统组进行实施。
按数据库的需求配置好用户、环境变量、系统参数等,这些需求由DBA提供。

2.2 配置ASM存储
该部分由存储组进行实施。
按数据库的需求配置好ACFS_DG、DATA_DG、FRA_DG和ACFS文件系统。
详细方法参看《Oracle 11gR2 ASM日常管理维护手册.docx》。

2.3 安装Oracle软件
该部分由DBA进行实施。
注意数据库安装类型是“Oracle Real Application Clusters database installation”。

2.4 创建数据库
该部分由DBA进行实施。
注意数据库创建类型是“Oracle Single instance database”,数据文件创建在“DATA_DG”上,Fast Recovery Area创建在“FRA_DG”上。
数据库创建完成后,CRS中应该会自动注册一个Cluster资源,名称为ora..db。

3 配置数据库应用的资源
3.1 资源说明
3.1.1 由CRS自动创建的资源
资源类型 资源 描述
Local Resources ora..dg ASM磁盘组资源,每个磁盘组都有自己的资源,如ora.ACFS_DG.dg、ora.DATA_DG.dg、ora.FRA_DG.dg、ora.OCRVD_DG.dg。

ora.LISTENER.lsnr    节点Listener资源。
ora.acfs_dg.<LV_NAME>.acfs    Oracle Home专用ACFS文件系统资源,每个数据库都有自己的ACFS资源。
ora.asm    ASM资源,为CRS提供磁盘管理功能。
ora.gsd    Global Service Daemon资源,默认所有节点都为OFFLINE状态,只有在安装9i RAC数据库时才需要启用。
ora.net1.network    主网网络资源,对应到网口bond0。
ora.ons    ONS资源,A publish and subscribe service for communicating Fast Application Notification (FAN) events.
ora.registry.acfs    普通ACFS文件系统资源。

Cluster Resources ora.LISTENER_SCAN1.lsnr SCAN Listener资源。

ora.<NODE_NAME>.vip    节点VIP资源,每个节点都有自己的VIP资源。
ora.cvu    Cluster Verification Utility资源。
ora.oc4j    OC4J资源。
ora.scan1.vip    SCAN VIP资源。
ora.<ORA_SID>.db    Oracle Restart资源,数据库创建完成后,CRS中应该会自动注册这个资源。

3.1.2 需用户自行创建的资源
资源类型 资源 描述
Cluster Resources 数据库资源组的基础,资源组中的所有其他资源都依赖于这个资源。这个资源的停止,重置,切换会影响到其他所有资源。

<ORA_SID>.vip    VIP资源,由Oracle内部来管理。此资源依赖于testdb11资源。
<ORA_SID>.lsnr    数据库监听器资源。此资源依赖于VIP资源,由于平安采用的是共享HOME,因此此资源也依赖于HOME所在的ACFS资源。
<ORA_SID>.db    数据库资源。此资源依赖于testdb11资源,并且由于使用共享HOME,此资源也依赖所在的ACFS资源。除此之外,数据库本身还依赖于DATA_DG和FRA_DG资源。
<ORA_SID>.head    此资源和testdb11资源首尾呼应,将整个资源组封装起来。启动整个资源组时,只需启动这个资源便可。此资源依赖于testdb11.lsnr和testdb11.db资源。

3.2 资源依赖关系图

3.3 禁用资源ora.testdb11.db
注:这个资源是安装DB时自动创建的,在HA的环境中,需要先将其禁用!
1)关闭并禁用该资源,使用grid用户登陆任一节点操作:
$ crsctl stop res ora.testdb11.db
$ crsctl modify res ora.testdb11.db -attr "ENABLED=0"

2)测试该资源是否已被禁用:
$ crsctl start res ora.testdb11.db
CRS-2501: Resource 'ora.testdb11.db' is disabled
CRS-4000: Command Start failed, or completed with errors.

3.4 部署testdb11的启动脚本
1)创建目录,用于存放该数据库应用的启动脚本,在节点一上操作:

mkdir /oracle_grid/11.2.0/grid/crs/public/testdb11

mkdir /oracle_grid/11.2.0/grid/crs/public/testdb11/.run

2)将DBA提供的四个启动脚本放在节点一上的“$ORACLE_HOME/crs/public/”目录下,脚本名称:
act_db.ksh
act_lsnr.ksh
act_rgb.ksh
act_rgh.ksh

3)将节点一上的整个脚本目录复制到其它所有节点上的同一目录下:

scp -r /oracle_grid/11.2.0/grid/crs/public/testdb11 \

cnsh230245:/oracle_grid/11.2.0/grid/crs/public/

4)修改脚本的权限,在所有节点上操作:

chown -R ostestdb11:oinstall /oracle_grid/11.2.0/grid/crs/public/testdb11

chmod -R 755 /oracle_grid/11.2.0/grid/crs/public/testdb11

3.5 创建资源池testdb11_sp
1)使用ostestdb11登陆节点一(或任一节点),创建testdb11的serverpool:

crsctl add serverpool testdb11_sp -attr \
"PARENT_POOLS=Generic, \

SERVER_NAMES=cnsh230244 cnsh230245"

3.6 创建资源testdb11
1)使用ostestdb11登陆节点一(或任一节点),创建资源:

crsctl add resource testdb11 -type cluster_resource -attr \

"ACTION_SCRIPT=/oracle_grid/11.2.0/grid/crs/public/testdb11/act_rgb.ksh, \
RESTART_ATTEMPTS=5, \
UPTIME_THRESHOLD=1h, \
FAILURE_THRESHOLD=1, \
FAILURE_INTERVAL=86400, \
CHECK_INTERVAL=10, \
SCRIPT_TIMEOUT=60, \
PLACEMENT=restricted, \
SERVER_POOLS=testdb11_sp, \
HOSTING_MEMBERS=''"

2)启动资源:

crsctl start res testdb11

3.7 创建资源testdb11.vip
1)使用root用户登陆节点一(或任一节点),创建VIP资源:
创建VIP资源:

appvipcfg create \

-network=1 \
-ip=10.31.31.11 \
-vipname=testdb11.vip \
-user=ostestdb11 \
-group=oinstall

修改资源属性:

crsctl modify res testdb11.vip -attr \

"DEFAULT_TEMPLATE='', \
RESTART_ATTEMPTS=1, \
UPTIME_THRESHOLD=1h, \
FAILURE_THRESHOLD=2, \
FAILURE_INTERVAL=86400, \
CHECK_INTERVAL=10, \
CHECK_TIMEOUT=30, \
START_TIMEOUT=0, \
STOP_TIMEOUT=0, \
SCRIPT_TIMEOUT=60, \
START_DEPENDENCIES='hard(ora.net1.network,testdb11) \
pullup(ora.net1.network,testdb11)', \
STOP_DEPENDENCIES='hard(ora.net1.network,intermediate:testdb11)', \
PLACEMENT=restricted, \
SERVER_POOLS=testdb11_sp, \
HOSTING_MEMBERS=''"

修改资源权限:

crsctl setperm resource testdb11.vip -o root

crsctl setperm resource testdb11.vip -u user:ostestdb11:r-x

2)使用ostestdb11用户登陆节点一(或任一节点),启动VIP资源:

crsctl start resource testdb11.vip

3.8 创建资源testdb11.lsnr
1)使用ostestdb11用户登陆节点一(或任一节点),验证启动脚本都能够正常启动和关闭Listener:

cd /oracle_grid/11.2.0/grid/crs/public/testdb11
./act_lsnr.ksh start
./act_lsnr.ksh stop

注:如不能正常启动Listener,需查找原因并修复。

2)使用ostestdb11用户登陆节点一(或任一节点),创建资源:

crsctl add resource testdb11.lsnr -type cluster_resource -attr \

"ACTION_SCRIPT=/oracle_grid/11.2.0/grid/crs/public/testdb11/act_lsnr.ksh, \
RESTART_ATTEMPTS=0, \
UPTIME_THRESHOLD=1h, \
FAILURE_THRESHOLD=1, \
FAILURE_INTERVAL=86400, \
CHECK_INTERVAL=60, \
START_TIMEOUT=180, \
STOP_TIMEOUT=0, \
SCRIPT_TIMEOUT=60, \
START_DEPENDENCIES='hard(testdb11.vip,ora.acfs_dg.testdb11_lv.acfs) \
pullup(testdb11.vip,ora.acfs_dg.testdb11_lv.acfs)', \
STOP_DEPENDENCIES='hard(intermediate:testdb11.vip,ora.acfs_dg.testdb11_lv.acfs)', \
PLACEMENT=restricted, \
SERVER_POOLS=testdb11_sp, \
HOSTING_MEMBERS=''"

3)使用ostestdb11用户登陆节点一(或任一节点),启动Listener:

crsctl start res testdb11.lsnr

3.9 创建资源testdb11.db
1)使用ostestdb11用户登陆节点一(或任一节点),测试启动脚本能否启动和关闭数据库:

cd /oracle_grid/11.2.0/grid/crs/public/testdb11/
./act_db.ksh start
./act_db.ksh stop

注:如不能正常启动DB,需查找原因并修复。

2)使用ostestdb11用户登陆节点一(或任一节点),创建资源:

crsctl add resource testdb11.db -type cluster_resource -attr \

"ACTION_SCRIPT=/oracle_grid/11.2.0/grid/crs/public/testdb11/act_db.ksh, \
RESTART_ATTEMPTS=0, \
UPTIME_THRESHOLD=1h, \
FAILURE_THRESHOLD=1, \
FAILURE_INTERVAL=86400, \
CHECK_INTERVAL=60, \
START_TIMEOUT=600, \
STOP_TIMEOUT=600, \
SCRIPT_TIMEOUT=60, \
START_DEPENDENCIES='hard(testdb11,ora.acfs_dg.testdb11_lv.acfs,ora.DATA_DG.dg,ora.FRA_DG.dg) \
pullup(testdb11,ora.acfs_dg.testdb11_lv.acfs,ora.DATA_DG.dg,ora.FRA_DG.dg)', \
STOP_DEPENDENCIES='hard(testdb11,ora.acfs_dg.testdb11_lv.acfs,ora.DATA_DG.dg,ora.FRA_DG.dg)', \
PLACEMENT=restricted, \
SERVER_POOLS=testdb11_sp, \
HOSTING_MEMBERS=''"

3)使用ostestdb11用户登陆节点一(或任一节点),启动DB资源:

crsctl start res testdb11.db

3.10 创建资源testdb11.head
1)使用ostestdb11用户登陆节点一(或任一节点),添加资源:

crsctl add resource testdb11.head -type cluster_resource -attr \

"ACTION_SCRIPT=/oracle_grid/11.2.0/grid/crs/public/testdb11/act_rgh.ksh, \
RESTART_ATTEMPTS=0, \
UPTIME_THRESHOLD=1h, \
FAILURE_THRESHOLD=1, \
FAILURE_INTERVAL=86400, \
CHECK_INTERVAL=10, \
SCRIPT_TIMEOUT=60, \
START_DEPENDENCIES='hard(testdb11.lsnr,testdb11.db) pullup(testdb11.lsnr,testdb11.db)', \
STOP_DEPENDENCIES='hard(intermediate:testdb11.lsnr,testdb11.db)', \
PLACEMENT=restricted, \
SERVER_POOLS=testdb11_sp, \
HOSTING_MEMBERS=''"

3)使用ostestdb11用户登陆节点一(或任一节点),启动Head资源:

crsctl start res testdb11.head

3.11 资源组切换测试
1)使用ostestdb11用户登陆节点一(或任一节点),测试停启资源组:

crsctl stop res testdb11 -f
crsctl start res testdb11.head

2)使用ostestdb11用户登陆节点一(或任一节点),分别测试将资源组切换到各个节点上运行:

crsctl relocate res testdb11 -n -f

注:需要保证资源组能够正常切换到各个节点上运行!

4 参考文档
4.1 Oracle Clusterware Administration and Deployment Guide 11g Release 2

4.2 Oracle 11gR2 Clusterware资源切换流程

4.3 Clusterware_Resource_Definition

上一篇:Rails源码笔记-ActiveSupport-core_ext-date


下一篇:MobileNet教程:用TensorFlow搭建在手机上运行的图像分类器