您的位置:首页 > 其它

11G R2 RAC添加删除节点

2013-05-09 19:56 375 查看
11G R2 [b]RAC添加删除节点

[/b]参考链接:
http://www.linuxidc.com/Linux/2012-11/74199.htm

http://blog.csdn.net/ying0216/article/details/5092007
一、删除节点

环境介绍:
HPUX11.31,数据库:11.2.0.3 两节点RAC

说明:在删节点的时候,未停库,将删除节点的库也未删除。
另外还有一套虚拟机上实施的,
OS:RHEL 5.1
DB:11.2.01
所以有些错误只有虚拟机上才有的。

节点2操作:(将要删除的节点bydb2)

1、grid@bydb2:/home/grid>srvctldisable listener -n bydb2 -----禁止监听

2、
grid@bydb2:/home/grid>srvctlstop listener -n bydb2 -----停止监听

3、
grid@bydb2:/home/grid>crsctlstatus res -t ----查看是否成功

ora.LISTENER.lsnr

ONLINE ONLINE bydb1

OFFLINE OFFLINE bydb2

...................

4、grid@bydb2:/cd$ORACLE_HOME/oui/bin

5、
grid@bydb2:/oracle/app/crs_home/oui/bin>./runInstaller -updateNodeList -noClusterEnabled -local ORACLE_HOME=/oracle/app/crs_home "CLUSTER_NODE=bydb1"
-----测试通过

第二种方法:./runInstaller -updateNodelist ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES={bydb1}" CRS=TRUE

第三种办法:$ORA_CRS_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=/crs/app/oracle/product/crs_1 "CLUSTER_NODES=bydb1" "INVENTORY_LOCATION=/oracle/app/oracle/oraInventory" LOCAL_NODE=bydb1 CRS=TRUE

增加INVENTORY_LOCATION 和LOCAL_NODE选项

Starting Oracle Universal Installer...

Checking swap space: must be greater than 500 MB. Actual 6647 MB Passed

The inventory pointer is located at /var/opt/oracle/oraInst.loc

The inventory is located at /oracle/app/oraInventory

'UpdateNodeList' was successful.
6、grid@bydb2:/oracle/app/crs_home/oui/bin>olsnodes-s -t

bydb1 Active Unpinned

bydb2 Active Unpinned

停止并删除VIP

7、grid@bydb2:/oracle/app/crs_home/oui/bin>crs_stat-t

Name Type Target State Host

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

ora.ARCHIVE.dg ora....up.type ONLINE ONLINE bydb2

ora.CRS.dg ora....up.type ONLINE ONLINE bydb1

ora.DATA01.dg ora....up.type OFFLINE OFFLINE

ora.DATA02.dg ora....up.type ONLINE ONLINE bydb2

ora....ER.lsnr ora....er.type ONLINE ONLINE bydb1

ora....N1.lsnr ora....er.type ONLINE ONLINE bydb1

ora.QUORUM.dg ora....up.type ONLINE ONLINE bydb2

ora.asm ora.asm.type ONLINE ONLINE bydb1

ora.bydb.db ora....se.type ONLINE ONLINE bydb2

ora....SM1.asm application ONLINE ONLINE bydb1

ora....B1.lsnr application ONLINE ONLINE bydb1

ora.bydb1.gsd application ONLINE OFFLINE

ora.bydb1.ons application ONLINE ONLINE bydb1

ora.bydb1.vip ora....t1.type ONLINE ONLINE bydb1

ora....SM2.asm application ONLINE ONLINE bydb2

ora....B2.lsnr application OFFLINE OFFLINE

ora.bydb2.gsd application ONLINE OFFLINE

ora.bydb2.ons application ONLINE ONLINE bydb2

ora.bydb2.vip ora....t1.type ONLINE ONLINE bydb2

ora.cvu ora.cvu.type ONLINE ONLINE bydb1

ora.gsd ora.gsd.type ONLINE OFFLINE

ora....network ora....rk.type ONLINE ONLINE bydb1

ora.oc4j ora.oc4j.type OFFLINE OFFLINE

ora.ons ora.ons.type ONLINE ONLINE bydb1

ora.scan1.vip ora....ip.type ONLINE ONLINE bydb1

8、grid@bydb2:/oracle/app/crs_home/oui/bin>srvctlstop vip -i bydb2_vip ----多余的,需要在ROOT下执行

9、/oracle/app/crs_home/bin# ./srvctl remove vip -i bydb2_vip -----root 用户下

Please confirm that you intend to remove the VIPs bydb2_vip (y/
) y

# ./crsctl stop crs

CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'bydb2'

CRS-2673: Attempting to stop 'ora.crsd' on 'bydb2'

......

CRS-4133: Oracle High Availability Services has been stopped.

10、删除节点 ---这步好像不需要操作 --删不掉。

首先停止CRS,不然会报如下错误:

[root@bydb2 bin]#./ crsctl delete node -n bydb2 --------、/oracle/app/crs_home/bin

CRS-4658: The clusterware stack on node racnode1 is not completely down.

CRS-4000: Command Delete failed, or completed with errors.

[root@bydb2 bin]# ./crsctl stop crs

11、# cd /oracle/app/crs_home/crs/install

# ./rootcrs.pl -deconfig -force

Using configuration parameter file: ./crsconfig_params

PRCR-1119 : Failed to look up CRS resources of ora.cluster_vip_net1.type
type

PRCR-1068 : Failed to query resources

Cannot communicate with crsd

PRCR-1070 : Failed to check if resource ora.gsd is registered

Cannot communicate with crsd

PRCR-1070 : Failed to check if resource ora.ons is registered

Cannot communicate with crsd
CRS-4544: Unable to connect to OHAS

CRS-4000: Command Stop failed, or completed with errors.

Successfully deconfigured Oracle clusterware stack on this node

节点1操作:bydb1

12、grid@bydb1:/oracle/app/crs_home/oui/bin>./runInstaller-updateNodeList ORACLE_HOME=/oracle/app/crs_home CLUSTER_NODES={bydb1} CRS=TRUE

Starting Oracle Universal Installer...
Checking swap space: must be greater than 500 MB. Actual 7016 MB Passed

The inventory pointer is located at /var/opt/oracle/oraInst.loc

The inventory is located at /oracle/app/oraInventory

'UpdateNodeList' was successful.
13、crsctl status res -t

查看系统的状态是否正常了

14、最后在节点一,DBCA删除[b]数据库。[/b]

二、添加节点:

首先在主节点执行检查:(grid 安装文件目录)

./runcluvfy.sh stage -pre crsinst -n bydb2 -verbose

--11.2.0.2的安装有BUG,共享磁盘检测总是不成功,所以在确认只有磁盘检测错误,并且在新节点上确定能够访问共磁盘的情况下忽略CHECKS

如果因为一些无关紧要的问题检查不成功,那么一定要加上这一句:(可以查看一下addNode.sh,就明白了)

export IGNORE_PREADDNODE_CHECKS=Y
1、 如果是完全空白的机器,执行以下命令会从别的节点拷贝全部的GI和DB的[b]软件,然后完成注册OCR等操作。([/b]grid@bydb1:/oracle/app/crs_home/oui/bin
这个目录)

1)扩展Grid节点

./addNode.sh "CLUSTER_NEW_NODES={bydb2}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={bydb2_vip}"
2)扩展Oracle数据库软件(ORACLE用户,DB_HOME:oracle/app/oracle/product/11.2.0/db_1/oui/bin下执行下面的命令)

addNode.sh -silent "CLUSTER_NEW_NODES={bydb01}"

建议用上面的方法.
./addNode.sh -silent "CLUSTER_NEW_NODES={bydb2} CLUSTER_NEW_PRIVATE_NODE_NAMES={bydb2-priv} CLUSTER_NEW_VIRTUAL_HOSTNAMES={bydb2-vip}"
问题(11.2.0.1liunx32位平台存在这个问题,11.2.0.3HPUX平台下没有)

./addNode.sh]oracle@rac1[/oracle/app/oracle/product/11.2.0/db_1/oui/bin]./addNode.sh-silent "CLUSTER_NEW_NODES={bydb2}"

Starting Oracle Universal Installer...
Checking swap space: must be greater than 500 MB. Actual 4790 MB Passed

Oracle Universal Installer, Version 11.2.0.1.0 Production

Copyright (C) 1999, 2009, Oracle. All rights reserved.

SEVERE:Number of new nodes being added are not equal to number of new virtual nodes. Silent install cannot continue.

据称这个是BUG 需要使用

./addNode.sh -silent "CLUSTER_NEW_NODES={bydb2}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={bydb2-vip}"

如果还是不行,那么就需要修改

db_home下的lsnode命令有问题,如下处理

$ cd $DB_HOME/bin

$ mv lsnodes lsnodes.old

$ ln -s $GRID_HOME/bin/olsnodes $DB_HOME/bin/lsnodes

$ ln -s $GRID_HOME/bin/olsnodes.bin $DB_HOME/bin/lsnodes.bin
$ cd $DB_HOME/oui/bin

$ mv lsnodes lsnodes.old

$ ln -s $GRID_HOME/bin/olsnodes $DB_HOME/oui/bin/lsnodes

$ ln -s $GRID_HOME/bin/olsnodes.bin $DB_HOME/oui/bin/lsnodes.bin

2、 如果这个节点上已经有GI和DB的软件,就不需要再copy一遍了,可以通过下面的命令直接添加节点,这样是很快的,也就是更改一下OCR,同时启动一下实例就OK了

./addNode.sh -noCopy "CLUSTER_NEW_NODES={bydb2} CLUSTER_NEW_VIRTUAL_HOSTNAMES={bydb2-vip}"

在需要添加的节点上运行root.sh脚本,完成最后的添加
3、最后DBCA添加instance,NETCA建监听。

也可以静默安装

例子:Oracle_home/bin/dbca -silent -addInstance -nodeList bydb2 -gdbName rac -instanceName bydb2 -sysDBAUserName sys -sysDBAPassword oracle

1) cd /u01/app/11.2.0/grid/oui/bin

2) runInstaller -updateNodeList Oracle_HOME=/u01/app/11.2.0/grid CLUSTER_NODES={racnode1,racnode2} CRS=TRUE

3) [root@racnode1 grid]# cd /u01/app/11.2.0/grid/crs/install/

4) [root@racnode1 install]# ./rootcrs.pl -deconfig -force

5) Successfully deconfigured Oracle clusterware stack on this node

到此,删除添加都完成了,步骤不多也比较简单。

参考链接:/article/7305234.html
补充:

如果使用DBCA工具进行数据库的创建、集群服务创建,或使用netca进行集群监听器的配置等操作,相应的配置结果会被自动写入OCR中注册记载。但如果手工创建了数据库(create
database)、手工编辑了监听器文件,则OCR中不作记载。这是需要管理员使用srvctl add 命令进行群集服务信息箱OCR的手工注册。反之,如果进行了数据库的直接删除等类似操作,而未经过DBCA工具等,则需要使用反向命令srvctl remove进行信息的手工删除。

例如,下面通过add database命令手工添加一套群集数据库sdzy,在集群节点node_a的node_b上分别添加实例

sdzy1和sdzy2:

$srvctl add database -d sdzy -o /db/oracle/product/10.2.0/db_1

$srvctl add instance -d sdzy -i sdzy1 -n node_a

$srvctl add instance -d sdzy -i sdzy2 -n node_b

在上面的过程中,关于数据库sdzy的定义被添加到了集群注册表中(这并不意味着这个数据库一定存在)。其中-d 参数后面的是数据库名,-o参数声明了这套数据库的ORACLE_HOME,-i参数声明的是在各节点上的数据库实例名,而-n参数则描述了节点名。

检查数据库在OCR的注册结果,对数据库sdzy进行查询如下:

$srvctl config database -d sdzy

node_a sdzy1 /db/oracle/product/10.2.0/db_1

node_b sdzy2 /db/oracle/product/10.2.0/db_1

$crs_stat -t 查看状态

添加完成后,管理员可以从任意一个节点进行手工的sdzy数据库的创建操作,并从各节点按照群集方式启动和关闭数据库,或者以集群方式使用数据库,只要再创建其它相关信息即可,如网络监听服务等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: