Chinaunix首页 | 论坛 | 博客
  • 博客访问: 676358
  • 博文数量: 163
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1625
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-24 11:40
个人简介

资深Oracle数据库专家 OCM认证大师 10年数据库相关服务及开发经验 各类数据库相关方案的编写,管理及实施 数据中心数据库日常运维、大型项目割接、性能优化等方面有丰富的实战经验 客户包括: 电信,银行,保险,航空,国网,汽车,烟草等 想要一起学习探讨数据安全技术的请加qq群 256041954

文章分类

全部博文(163)

文章存档

2017年(2)

2016年(112)

2015年(38)

2014年(11)

我的朋友

分类: Oracle

2015-01-04 10:49:12

                               
Oracle10gR2 RAC
环境增加及删除节点

一、初始化第 3 台节点 ............................................................................................................. 2

1.1 配置hosts 文件 ............................................................................................................ 2

1.2 配置SSH 密钥认证 .................................................................................................... 3

1.3 配置ASM 共享盘 ....................................................................................................... 4

二、添加 clusterware 到新节点 ................................................................................................ 5

2.1 检查安装环境 .............................................................................................................. 5

2.2 安装clusterware到新节点 ......................................................................................... 7

三、复制 oracle 软件到新节点 ............................................................................................... 14

四、配置监听服务到新节点 ................................................................................................... 18

五、添加实例到新节点 ........................................................................................................... 25

六、移除节点 ........................................................................................................................... 31

6.1 删除DATABASE 实例 ............................................................................................. 31

6.2 删除ASM 实例 ......................................................................................................... 36

6.3 删除节点 .................................................................................................................... 36

RAC 是项非常优秀的特性,其前身 OPS oracle6 即开始提供,自 9i 版本更名为 RAC

后,经过这么多年的完善已经非常的成熟和稳定。使用 RAC 特性能够有效的提升企业数据

库系统的可用性,并有效增强整个系统的负载能力。考虑到数据规模的不断增长,最初设计

良好的系统随着业务量的增大可能会逐渐不勘负担,如果是 RAC 环境的数据库,就可以考

虑通过增加节点的方式,来提升该配环境的负载能力。

本文将通过示例演示,对现有的 RAC 数据库环境增加节点的相关操作。这里我们的操

作基于一套双节点的 RAC 环境。

在本文正式开始前, 俺先假设要添加的节点已安装好操作系统; 内核参数已经进行修 改 ;

ORACLE 用户已初始化; 成功并正确的配置和共享存储; 相关 rpm 包均已安装; 与当前 RAC

环境中各节点互联互通等等吧。

提示:新节点需要进行的准备工作,可以参考三思笔记系列文章:" 手把手教你用

e VMware   x linux  下安装  g oracle10g RAC"中配置 linux环境相关章节内容。

一、初始化第 3 3 3 3  台节点

即使是添加节点, 那么首先就需要对新节点进行适当的配置, 以使其能够满足成为 RAC

环境中一员的需要。

1 1.1  配置  s hosts  文件

执行命令如下:

[root@jssdbn2 ~]# vi /etc/hosts

修改 hosts 文件中的内容,修改完成后,hosts 文件中至少包含下列的内容:

192.168.10.11 jssdbn1

192.168.10.12 jssdbn2

192.168.10.13 jssdbn3

192.168.10.21 jssdbn1-vip

192.168.10.22 jssdbn2-vip

192.168.10.23 jssdbn3-vip

10.10.10.101 jssdbn1-priv

10.10.10.102 jssdbn2-priv

10.10.10.103 jssdbn3-priv

注意,这里不仅新增加的节点中 hosts 文件需要修改,同一个 RAC 环境中所有节点的

hosts 文件都必须重新修改。

 

2 1.2  配置  SSH  密钥认证

RAC 环境中各节点间不仅时刻保持通讯,而且还有可能互访文件,因此必须要保证各

节点间访问不需输入 DBA 手动密码即可自动完成,这里我们通过配置SSH 来实现这一点。

首先是在新增加的节点时操作,即 jssdbn3 节点(注意执行命令的用户)

[root@jssdbn3 ~]#  u su - - - -  oracle

[oracle@jssdbn3 ~]$  r mkdir  ~/.ssh

[oracle@jssdbn3 ~]$  d chmod  0 700  ~/.ssh

[oracle@jssdbn3 ~]$  n ssh-keygen t -t  rsa

Generating public/private rsa key pair.

Enter filein which to save the key (/home/oracle/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been savedin /home/oracle/.ssh/id_rsa.

Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.

The key fingerprintis:

37:89:ec:6a:49:2d:18:5d:9d:c2:7c:66:84:b0:2e:94 oracle@jssdbn3

[oracle@jssdbn3 ~]$  n ssh-keygen t -t  dsa

Generating public/private dsa key pair.

Enter file in which to save the key (/home/oracle/.ssh/id_dsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been savedin /home/oracle/.ssh/id_dsa.

Your public key has been saved in /home/oracle/.ssh/id_dsa.pub.

The key fingerprintis:

43:f1:b1:9f:e6:ec:b5:b0:74:72:24:22:22:5c:24:ca oracle@jssdbn3

然后转至 jssdbn1 节点执行,也是以 oracle 身份进行操作(执行过程中,当访问远端节点

时可能需要输入目标节点的密码)

[oracle@jssdbn1 ~]$  h ssh  3 jssdbn3  t cat  ~/.ssh/id_rsa.pub > >>  ~/.ssh/authorized_keys

The authenticity of host 'jssdbn3 (192.168.10.13)' can't be established.

RSA key fingerprint is 95:23:18:7a:5b:a9:5f:48:d7:1e:1a:f9:01:ec:f0:b1.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'jssdbn3,192.168.10.13' (RSA) to thelist of known hosts.

oracle@jssdbn3's password:

[oracle@jssdbn1 ~]$  h ssh  3 jssdbn3  t cat  ~/.ssh/id_dsa.pub > >>  ~/.ssh/authorized_keys

oracle@jssdbn3's password:

最后传输 jssdbn1 节点中配置好的认证密钥信息到节点 2 和节点 3,执行命令如下:

[oracle@jssdbn1 ~]$  p scp  s ~/.ssh/authorized_keys  jssdbn2:~/.ssh/authorized_keys

authorized_keys

100% 3000 2.9KB/s 00:00

[oracle@jssdbn1 ~]$  p scp  s ~/.ssh/authorized_keys  jssdbn3:~/.ssh/authorized_keys

oracle@jssdbn3's password:

authorized_keys

 

100% 3000 2.9KB/s 00:00

配置完成后,在三个节点分别执行下列命令:

sshjssdbn1date

sshjssdbn2date

sshjssdbn3date

sshjssdbn1-priv date

sshjssdbn2-priv date

sshjssdbn3-priv date

某些节点第一次执行上述某些命令时可能会提示输入目标节点的密码, 没有关系, 输入

就是。不过执行过一次之后,应该就不会再需要输入密码了,如果多次尝试调用命令,仍然

提示输入密码,则有可能前面的步骤配置有误,尝试重新对 ssh 密钥进行配置。

最终执行的结果,应该类似这样,能够直接看到返回信息:

[oracle@jssdbn3~]$sshjssdbn1date

MonNov 9 12:54:47CST2009

[oracle@jssdbn3~]$sshjssdbn2date

MonNov 9 12:54:48CST2009

[oracle@jssdbn3~]$sshjssdbn3date

MonNov 9 12:54:49CST2009

[oracle@jssdbn3~]$sshjssdbn1-priv date

MonNov 9 12:54:56CST2009

[oracle@jssdbn3~]$sshjssdbn2-priv date

MonNov 9 12:54:59CST2009

[oracle@jssdbn3~]$sshjssdbn3-priv date

MonNov 9 12:54:58CST2009

3 1.3  配置  ASM  共享盘

在新增的节点上配置 ORACLEASM 驱动,首先执行 oracleasm configure 命令,注意要

root 身份进行。

[root@jssdbn3 ~]#  /etc/init.d/oracleasm  configure

Configuringthe OracleASMlibrary driver.

This will configure the on-boot properties of the OracleASMlibrary

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 without typing an

answer willkeep that current value. Ctrl-C will abort.

Default user to own the driver interface []:  oracle

Default group toown thedriver interface []:  dba

Start OracleASMlibrary driver on boot (y/n) [n]: y y y y

 

Scan for OracleASMdisks on boot (y/n) [y]: y y y y

Writing OracleASMlibrary driver configuration: done

Initializing the OracleASMLibdriver: [ OK ]

Scanning the system for OracleASMLibdisks: [ OK ]

提示:如果本步执行出错(可能出错机率最高的是在 Scanning system forASM),不妨将

转换一下命令行的执行方式,改成:

[root@jssdbn3 ~]# sh /etc/init.d/oracleasm configure

有可能解决你的问题!

如果 configure 执行正常,下面检查一下磁盘组:

[root@jssdbn3 Server]# /etc/init.d/oracleasm scandisks

Scanning the system for OracleASMLibdisks: [ OK ]

如无问题,再接着 listdisks,应该能够看到当前 RAC 环境中创建的 ASM 盘:

[root@jssdbn3 Server]# /etc/init.d/oracleasm listdisks

VOL1

VOL2

确保上述 oracleasm listdisks 显示的结果与实际情况相同。新节点的配置基本告以段落 ,

下面准备开始安装 crs 喽。

二、添加  clusterware  到新节点

1 2.1  检查安装环境

首先是检查安装环境, 仍然是使用runcluvfy.sh脚本来进行验证, 该脚本可以在现有RAC

配置中的任意节点上执行,这里在节点 1执行,如下:

[oracle@jssdbn1 ~]$ h /data/software/clusterware/cluvfy/runcluvfy.sh e stage - -

e pre t crsinst n -n 3 jssdbn3  -verbose

Performing pre-checks for cluster services setup

Checking node reachability...

Check: Nodereachability from node "jssdbn1"

Destination Node Reachable?

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

jssdbn3 yes

Result:Node reachability checkpassed fromnode "jssdbn1".

Checking user equivalence...

Check: Userequivalenceforuser "oracle"

 

Node Name Comment

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

jssdbn3 passed

Result:User equivalence check passed for user "oracle".

Checking administrativeprivileges...

Check: Existence ofuser "oracle"

Node Name User Exists Comment

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

jssdbn3 yes passed

Result:User existence check passedfor"oracle".

Check: Existence ofgroup "oinstall"

Node Name Status GroupID

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

jssdbn3 exists 500

Result:Group existencecheck passed for "oinstall".

Check: Membership of user "oracle" in group"oinstall" [as Primary]

Node Name User Exists Group Exists User in Group Primary

Comment

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

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

jssdbn3 yes yes yes yes

passed

Result:Membership check for user "oracle" in group "oinstall" [as Primary]

passed.

Administrative privileges checkpassed.

Checking node connectivity...

Interface information for node "jssdbn3"

InterfaceName IP Address Subnet

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

-------

eth0 192.168.10.13

192.168.10.0

eth1 10.10.10.103

10.10.10.0

 

Check: Nodeconnectivity ofsubnet "192.168.10.0"

Result: Node connectivity check passed for subnet "192.168.10.0" with

node(s)jssdbn3.

Check: Nodeconnectivity ofsubnet "10.10.10.0"

Result:Node connectivity check passed for subnet "10.10.10.0" with node(s)

jssdbn3.

Suitable interfacesfortheprivateinterconnect onsubnet "192.168.10.0":

jssdbn3eth0:192.168.10.13

Suitable interfacesfortheprivateinterconnect onsubnet "10.10.10.0":

jssdbn3eth1:10.10.10.103

ERROR:

Could not find a suitable set of interfacesforVIPs.

Result:Node connectivity checkfailed.

Checking systemrequirements for 'crs'...

No checks registered for this product.

Pre-check for cluster services setup was unsuccessful on all the nodes.

如果返回信息中提示“Couldnot find a suitableset of interfaces forVIPs. ” ,可以忽略该错

误信息,这是一个 bugMetalink 中有详细说明,doc.id:338924.1

没有其它错误的话,安装可以正常进行,下面准备正式进入安装阶段。

2 2.2  安装  e clusterware  到新节点

新节点中clusterware 的安装也是从现有的 RAC 环境中开始的,在当前 RAC 环境中任

意节点的$ORA_CRS_HOME,执行 oui/bin/addNode.sh 脚本敲出视界界面,操作如下:

 

然后就能看到视图界面,点击下一步

看到当前已有的节点列表。 在下方输入框中输入新结点的信息, 包括public-name,private-

name 等,这部分信息应与 hosts 文件中完全匹配才行。正确输入后点击下一步,如图:

 

显示摘要信息如图,如无问题,点击 install 按钮:

 

开始复制文件,并进行一些必要的配置:

当文件复制完成后,会提示运行脚本指定的脚本:

 

一定要按照界面中的提示,在正确的节点中按照顺序执行脚本。详细说就是:

? 节点 3 上执行 orainstRoot.sh

? 节点 1 上执行 rootaddnode.sh

? 节点 3 上执行 root.sh

上述所有脚本都是以 root 身份执行。

需要注意最后一个脚本,即 root.sh 执行时会调用 vipca,不过 vipca 脚本中部分代码对

应一个 bug:3937317,建议在执行 root.sh 前首先修改 vipca 文件

[root@jssdbn3 ~]# vi /data/ora10g/product/10.2.0/crs_1/bin/vipca

找到如下内容:

Remove this workaroundwhenthe bug3937317 is fixed

arch=`uname -m`

if[ "$arch" = "i686" -o "$arch" = "ia64" ]

then

LD_ASSUME_KERNEL=2.4.19

exportLD_ASSUME_KERNEL

fi

#Endworkaround

fi 后新添加一行:

unsetLD_ASSUME_KERNEL

保存退出, 然后再在 jssdbn3 节点端执行 root.sh

 

Root.sh 执行完成后,默认情况下会自动调用 vipca,用来配置虚拟 IP 的网络接口服务 ,

不过如果前面 root.sh 脚本执行时因为 bug 原因,未能自动调用 vipca,那么在 root 执行完毕

后,手动执行 vipca 命令即可打开配置窗口,该项配置比较简单,基本上全面点击下一步即

可。

如果脚本执行一切顺序,返回到 crs 的安装界面,点击 ok 按钮。

正如界面中所示,End of Installation,点击 exit 退出该界面即可。

接下来需要将新节点的 ONS(Oracle Notification Services)配置信息写入 OCR(Oracle

Cluster Register),在节点 1 执行脚本如下:

[oracle@jssdbn1 ~]$ /data/ora10g/product/10.2.0/crs_1/bin/racgons add_config jssdbn3:6200

提 示 : jssdbn3 的 端 口 号 可 以 查 询 该 结 节 中

/data/ora10g/product/10.2.0/crs_1/opmn/conf/ons.config 文件中的配置,此处指定的端口号为

remoteport

至此,新节点的 CLUSTERWARE配置完成,要检查安装的结果,可以在新节点中调用

cluvfy 命令进行验证,例如:

[oracle@jssdbn3 ~]$ /data/ora10g/product/10.2.0/crs_1/bin/cluvfy stage - -

t post t crsinst n -n 3 jssdbn3  -verbose

Performing post-checks for cluster servicessetup

 

Checking node reachability...

Check: Nodereachability from node "jssdbn3"

Destination Node Reachable?

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

jssdbn3 yes

Result:Node reachability checkpassed fromnode "jssdbn3".

Checking user equivalence...

Check: Userequivalenceforuser "oracle"

Node Name Comment

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

jssdbn3 passed

Result:User equivalence check passed for user "oracle".

Checking Cluster manager integrity...

Checking CSS daemon...

Node Name Status

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

jssdbn3 running

Result:Daemon status checkpassed for "CSSdaemon".

Clustermanagerintegrity checkpassed.

Checking cluster integrity...

Node Name

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

jssdbn1

jssdbn2

jssdbn3

Clusterintegrity checkpassed

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

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

Post-check for cluster servicessetup was successful.

 

三、复制  e oracle  软件到新节点

接下来要复制 ORACLE 数据库软件到新节点,复制操作可以在现的 RAC 环境中的任

意节点中开始,这里我们选择在 jssdbn1 节点上操作。本步操作非常简单,步骤也少。

Linux 视窗界面中执行addNode.sh

[oracle@jssdbn1 ~]$ cd /data/ora10g/product/10.2.0/db_1/oui/bin/

[oracle@jssdbn1 bin]$ ./addNode.sh

运行 addNode.sh 脚本后,ORACLE 会弹出欢迎界面,不用多想,直接点击 next

提示选择要添加的节点,这里肯定是选择 jssdbn3

 

显示摘要信息,确认无误的话点击 install 即可

 

ORACLE 自动开始复制文件到新节点中

复制操作完成后,提示在新节点即 jssdbn3 执行脚本,注意要以 root 身份进行

 

[root@jssdbn3 ~]#  /data/ora10g/product/10.2.0/db_1/root.sh

Running Oracle10 root.sh script...

The following environment variables are set as:

ORACLE_OWNER= oracle

ORACLE_HOME= /data/ora10g/product/10.2.0/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:

Copying dbhome to /usr/local/bin ...

Copying oraenv to /usr/local/bin ...

Copying coraenv to /usr/local/bin...

Creating /etc/oratabfile...

Entries will be added tothe /etc/oratabfileas needed by

Database ConfigurationAssistantwhen a database is created

Finished running generic partof root.sh script.

Now product-specific rootactions will be performed.

上述脚本成功执行后, 返回窗口界面点击 OK, 提示安装成功, 点击 exit 退出界面即 可 。

 

四、配置监听服务到新节点

客户端连接数据库服务器必须借助监听服务, 因此新节点要正常处理连接请求, 首先就

需要创建有相应的监听。

RAC 环境中监听服务的创建与管理和单实例相比没有什么区别,因此对于熟悉

ORACLE 的朋友创建监听真的是一点难度都没有,手快的朋友可能已经准备着手修改

$ORACLE_HOME/network/admin/listerner.ora 文件了。不过这里为了更直观的展示监听服务

的管理,俺决定采用 netca 界面管理方式来配置监听。

ORACLE 身份登陆到 linux 系统,执行$ORACLE_HOME/bin 目录中的 netca 命令即

可,如图:

 

配置界面显示如下,这里不用多说,肯定是选择 Cluster configuration,点击下一步:

选择要配置的节点,这里当然是选择 jssdbn3,继续点击下一步:

 

选择"Listener configuration"即监听配置,点击下一步:

选择"Add",即添加一项配置。对于新节点来说,也只有"Add"是可选的,不过前面选

择要配置的节点时如果选择了多个节点, 那么此处也有可能四个选项均能操作, 无论如何 吧 ,

本步我们想做的是"Add"

 

为监听服务命名:

选择 TCP 协议:

 

选择监听服务的端口号,默认情况下是 1521,这里我们也使用默认端口:

是否配置另一个监听?不用了,一个足够,选择"No",然后点击next

 

恭喜你,成功了。

使用 netca 命令生成的 listener.ora 文件内容如下:

[oracle@jssdbn3 admin]$ more listener.ora

# listener.ora.jssdbn3 Network Configuration File:

/data/ora10g/product/10.2.0/db_1/network/admin/listener.ora.jssdbn3

# Generated by Oracle configurationtools.

 

SID_LIST_LISTENER_JSSDBN3 =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /data/ora10g/product/10.2.0/db_1)

(PROGRAM= extproc)

)

)

LISTENER_JSSDBN3=

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = jssdbn3-vip)(PORT = 1521)(IP =

FIRST))

(ADDRESS = (PROTOCOL = TCP)(HOST= 127.0.0.1)(PORT=1521)(IP = FIRST))

)

)

当前新节点的监听服务也已经自动启动,执行 lsnrctl status 命令查看:

[oracle@jssdbn3 admin]$ lsnrctl status

LSNRCTLfor Linux: Version 10.2.0.1.0 - Production on 10-NOV-200912:09:52

Copyright(c) 1991, 2005, Oracle. Allrights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

STATUS of the LISTENER

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

Alias LISTENER_JSSDBN3

Version TNSLSNR forLinux: Version 10.2.0.1.0 - Production

StartDate 10-NOV-200912:08:42

Uptime 0 days 0 hr. 1 min. 10 sec

Trace Level off

Security ON: LocalOSAuthentication

SNMP OFF

Listener Parameter File /data/ora10g/product/10.2.0/db_1/network/admin/listener.ora

Listener Log File

/data/ora10g/product/10.2.0/db_1/network/log/listener_jssdbn3.log

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.10.23)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

Services Summary...

Service "PLSExtProc" has 1 instance(s).

 

Instance "PLSExtProc", status UNKNOWN, has 1handler(s) for this service...

The command completed successfully

五、添加实例到新节点

接下来终于到了最关键的时刻, 新节点中创建实例。 这里三思决定使用界面化的管理工

"dbca"来操作,步骤如下:

首 先 是 以 oracle 身 份 登 陆 到 图 形 界 面 的 linux 系 统 , 然 后 执 行

$ORACLE_HOME/bin/dbca,然后就能看到欢迎窗口。

提示1 : 如果执行 dbca时遇到connectto":...." No protocolspecified , 可以先尝试 su - root

然后执行 xhost+,然后再回到oracle 用户下执行 dbca

提示 2:本步操作可以在当前 RAC 环境中的任意节点上执行,注意是当前 RAC 环境中

的节点,不是要添加实例的节点上执行哟,这里三思选择在 jssdbn1 上执行。

这里当然是选择第一项"Oracle RealApplication Clusters database",点击下一步:

选择"Instance Management",点击下一步:

 

选择"Add an instance"

在这个界面中,一是选择一个RAC 数据库(如果当前存在多个 RAC 环境的话),再一个

就是指定一个具有 SYSDBA 权限的用户及密码:

 

弹出界面显示当前 RAC 配置中拥有的实例,直接点击下一步即可:

为新节点上的实例命名:

 

接下来,需要定义一些与实例相关的文件,比较 UNDOREDOLOG 等,想省事的话

此处保持默认即可,因为这些信息如果发现不合适,后期也都是可调的。确认无误后,点击

FINISH 按钮:

浏览摘要信息,如无问题,点击 ok

 

在此期间,ORACLE 开始自动在新节点上创建实例,并且会视需要提示创建ASM 相关

实例(如果使用了 ASM做存储的话,对于此处演示的环境,回答显然是肯定的)

操作完成后, 提示是否需要进行其它操作, 就当前实际情况下说, 有, 不过不需要 DBCA

了,因此选 no 吧。

 

截止到目前,新节点已经是这个 RAC 配置中的一员了,使用 crs_stat 命令查看:

[oracle@jssdbn1 admin]$ /data/ora10g/product/10.2.0/crs_1/bin/crs_stat-t

Name Type Target State Host

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

ora.jssdb.db application ONLINE ONLINE jssdbn2

ora....n1.instapplication ONLINE ONLINE jssdbn1

ora....n2.instapplication ONLINE ONLINE jssdbn2

ora....n3.instapplication ONLINE ONLINE jssdbn3

ora....SM1.asm application ONLINE ONLINE jssdbn1

ora....N1.lsnrapplication ONLINE ONLINE jssdbn1

ora....bn1.gsd application ONLINE ONLINE jssdbn1

ora....bn1.ons application ONLINE ONLINE jssdbn1

ora....bn1.vip application ONLINE ONLINE jssdbn1

ora....SM2.asm application ONLINE ONLINE jssdbn2

ora....N2.lsnrapplication ONLINE ONLINE jssdbn2

ora....bn2.gsd application ONLINE ONLINE jssdbn2

ora....bn2.ons application ONLINE ONLINE jssdbn2

ora....bn2.vip application ONLINE ONLINE jssdbn2

ora....SM3.asm application ONLINE ONLINE jssdbn3

ora....N3.lsnrapplication ONLINE ONLINE jssdbn3

ora....bn3.gsd application ONLINE ONLINE jssdbn3

ora....bn3.ons application ONLINE ONLINE jssdbn3

ora....bn3.vip application ONLINE ONLINE jssdbn3

 

任意结节登陆 sqlplus 命令行,查询 gv$instance 视图,结果如下:

SQL> selectinst_id,instance_name,version,startup_time,status from gv$instance;

INST_ID INSTANCE_NAME VERSION STARTUP_TSTATUS

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

1 jssdbn1 10.2.0.1.0 16-NOV-09OPEN

3 jssdbn3 10.2.0.1.0 16-NOV-09OPEN

2 jssdbn2 10.2.0.1.0 16-NOV-09OPEN

六、移除节点

注意, 下列操作均是在确实要保留的实例上进行, 不要选择在要被删除的节点上进行操作 哟 。

1 6.1  删除  DATABASE  实例

在视窗界面中找开 dbca 命令

Dbca 界面大家应该已经非常熟悉了,这里仍然是选择 RAC database

 

选择 Instance Management,点击下一步:

Of courseDelete Instance

 

选择要操作的数据库,并输入一个具有 sysdba 权限的用户及密码:

选择一个要删除的实例,这里当然是 jssdbn3 喽!哎,这可怜的孩子,刚被加进来又不

得不被踢出去,不过没关系,能加能删才是真实例: )

 

确定删除点击 OK,接下来如果还蹦这类窗口,同样直接点击 OK 即可:

开始进行删除操作:

 

终于删除完了,这里可别点 yes,操作已经完成,点"No"退出即可。

 

2 6.2  删除  ASM  实例

接下来, 我们需要删除该节点中的 asm 实例, 以及注册到 crs中的相关信息, 操作如 下 :

[oracle@jssdbn1 bin]$ ./srvctlstop asm -n jssdbn3

[oracle@jssdbn1 bin]$ ./srvctlremove asm -n jssdbn3

Ok,上述两个命令行正确执行后,目标节点的asm 实例就已经被删除了,你是否想问怎

么确定删除操作确实执行了呢?最简单的方式,执行 crs_stat 查看当前 crs 的各进程状态:

[oracle@jssdbn1 bin]$ ./crs_stat-t

Name Type Target State Host

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

ora.jssdb.db application ONLINE ONLINE jssdbn2

ora....n1.instapplication ONLINE ONLINE jssdbn1

ora....n2.instapplication ONLINE ONLINE jssdbn2

ora....SM1.asm application ONLINE ONLINE jssdbn1

ora....N1.lsnrapplication OFFLINE OFFLINE

ora....bn1.gsd application ONLINE ONLINE jssdbn1

ora....bn1.ons application ONLINE ONLINE jssdbn1

ora....bn1.vip application ONLINE ONLINE jssdbn1

ora....SM2.asm application ONLINE ONLINE jssdbn2

ora....N2.lsnrapplication ONLINE UNKNOWN jssdbn2

ora....bn2.gsd application ONLINE ONLINE jssdbn2

ora....bn2.ons application ONLINE ONLINE jssdbn2

ora....bn2.vip application ONLINE ONLINE jssdbn2

ora....N3.lsnrapplication ONLINE UNKNOWN jssdbn3

ora....bn3.gsd application ONLINE ONLINE jssdbn3

ora....bn3.ons application ONLINE ONLINE jssdbn3

ora....bn3.vip application ONLINE ONLINE jssdbn3

从上述返回信息可以看出,jssdbn3 节点中运行的 asm instance 均已经不存在了。

此时虽然相关应用均已被删除,不过 asm 实例相关的 pfile 以及一些 trc 文件仍然存在,

可以通过操作系统的命令删除相关文件,包括但不限于下列路径:

? $ORACLE_BASE/admin/+ASM/*

? $ORACLE_HOME/dbs/init+ASM*

3 6.3  删除节点

下面,我们还需要从 RAC 环境中,删除目标节点,本步操作比较多而且杂,务必注意

操作步骤,以及执行操作所在的节点。

1、删除目标节点监听服务

首先可以通过netca 删除目标节点中的监听服务(趁现在 ORACLE_HOME还在)netca

 

的操作比较简单,这里就不演示了。

2、停止目标节点  apps

监听服务删除之后,接着停止目标节点中的应用,可以在任意节点上操作,执行命令如下:

[oracle@jssdbn1 bin]$ ./srvctlstop nodeapps -h

3、删除目标结点数据库软件

本操作包含两个部分,首先是要在保留的任意一个结点上执行操作,更新 Oracle

Inventory,例如:

[oracle@jssdbn1 ~]$ $ORACLE_HOME/oui/bin/runInstaller -updateNodeList

ORACLE_HOME=$ORACLE_HOME"CLUSTER_NODES=jssdbn1,jssdbn2"

Starting Oracle UniversalInstaller...

No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be

executed.

'UpdateNodeList' was successful.

接下来在要被删除的节点上执行下列命令,同样是更新 OracleInventory

[oracle@jssdbn3 ~]$ $ORACLE_HOME/oui/bin/runInstaller -updateNodeList

ORACLE_HOME=$ORACLE_HOME"CLUSTER_NODES=jssdbn3" -local

Starting Oracle UniversalInstaller...

No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be

executed.

然后就可以删除该节点上的数据库软件了,在视窗界面执行命令如下:

[oracle@jssdbn3 ~]$ $ORACLE_HOME/oui/bin/runInstaller -deinstall

Starting Oracle UniversalInstaller...

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

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

然后就会看到OUI 的操作界面了。如图所示,点击 REMOVE 即可(注意要选对数据库

软件哟)

 

如果弹出是否确认删除的提示框,也直接点击 yes 确认就好。OUI 开始执行删除操作。

 

操作完成后,点击 close 退出该界面。

提示: 如果希望在非图形界面执行删除操作的话, 那么执行 runInstall 命令时, 附加 -silent

参数即可。

该服务器如果不准备再安装 ORACLE 数据库的话,可以同时删除/etc/oratab 文件。

[oracle@jssdbn3 ~]$ rm /etc/oratab

4、删除  ONS  配置

在任意保留节点中执行 racgons 命令,删除ONS 配置,操作如下:

[oracle@jssdbn1 ~]$ $ORA_CRS_HOME/bin/racgonsremove_config jssdbn3:6200

racgons: Existing key value on jssdbn3 = 6200.

racgons: jssdbn3:6200 removed fromOCR.

要查询目标节点的 ONS 端口号,可以通过下列命令:

[oracle@jssdbn3 ~]$ more $ORA_CRS_HOME/opmn/conf/ons.config

localport=6113

remoteport=6200

loglevel=3

useocr=on

5、删除  NodeApps

目标节点中包括 GSDONSVIP 等应用此时已经可以被删除了,删除这些应用可以

通过 srvctl 命令,注意要以 root 身份执行,操作如下:

[root@jssdbn1 ~]# /data/ora10g/product/10.2.0/crs_1/bin/srvctl remove

nodeapps -njssdbn3

Please confirm that you intend to remove the node-level applications on

node jssdbn3 (y/[n]) y

执行完上述命令后,返回 oracle 用户,执行 crs_stat 查看当前应用的状态:

[oracle@jssdbn1bin]$ ./crs_stat -t

Name Type Target State Host

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

ora.jssdb.db application ONLINE ONLINE jssdbn2

ora....n1.inst application ONLINE ONLINE jssdbn1

ora....n2.inst application ONLINE ONLINE jssdbn2

ora....SM1.asm application ONLINE ONLINE jssdbn1

ora....N1.lsnr application OFFLINE ONLINE jssdbn1

ora....bn1.gsd application ONLINE ONLINE jssdbn1

ora....bn1.ons application ONLINE ONLINE jssdbn1

ora....bn1.vip application ONLINE ONLINE jssdbn1

ora....SM2.asm application ONLINE ONLINE jssdbn2

ora....N2.lsnr application ONLINE ONLINE jssdbn2

 

ora....bn2.gsd application ONLINE ONLINE jssdbn2

ora....bn2.ons application ONLINE ONLINE jssdbn2

ora....bn2.vip application ONLINE ONLINE jssdbn2

如上述所示,CRS 中关于 jssdbn3 的痕迹都已经不见了。

6、删除目标节点  e clusterware 软件

接下来要做的是删除目标节点上的 clusterware 软件,本步操作与删除数据库软件类似 ,

实际上眼神好的朋友可能也看到了,之前执行 runInstall -deinstall 命令,在弹出界面里也看

到了 OraCrs10g_home。详细操作步骤如下!

首先仍是在任意保留的节点中操作:

[oracle@jssdbn1 ~]$ $ORA_CRS_HOME/oui/bin/runInstaller -updateNodeList

ORACLE_HOME=$ORA_CRS_HOME "CLUSTER_NODES=jssdbn1,jssdbn2" CRS=TRUE

Starting OracleUniversal Installer...

No pre-requisitechecks found in oraparam.ini, no system pre-requisite

checks willbe executed.

'UpdateNodeList' was successful.

然后切换至目标节点,执行更新 OracleInventory 的操作:

[oracle@jssdbn3 ~]$ $ORA_CRS_HOME/oui/bin/runInstaller -updateNodeList

ORACLE_HOME=$ORA_CRS_HOME "CLUSTER_NODES=jssdbn3" CRS=TRUE -local

Starting OracleUniversal Installer...

No pre-requisitechecks found in oraparam.ini, no system pre-requisite

checks willbe executed.

'UpdateNodeList' was successful.

接下来执行 runInstaller -deinstall 命令,执行 clusterware 软件的删除操作(注意是在视窗

界面操作)

[oracle@jssdbn3~]$$ORA_CRS_HOME/oui/bin/runInstaller -deinstall

Starting OracleUniversal Installer...

弹出窗口如下,选中 crs 路径,然后点击 remove 即可。

 

操作完成后,点击 close 关闭窗口。集群件软件就被成功从目标节点删除了。接下来如

果愿意(或者确实需要),可以考虑清除ORACLE 留下的一些操作痕迹,包括但不限于下列 :

? 删除$ORACLE_BASE/oraInventory 目录

? 删除/etc/inittab 文件

? 删除/var/tmp/.oracle 目录

? 删除 ORA 相关的启动关闭脚本, 比如/etc/init.d/init* ,以及 /etc/rc?.d/*init.crs 等文件

? 删除/etc/oracle 目录

? 清除 crontab 中关于 ORACLE 的相关任务;

? 清除 oracle 用户下 profile 中关于 ORA 的相关环境变量设置;

? 清除共享存储分配给 jssdbn3 的相关权限

7、从  OCR  中删除节点信息

在任意一台保留的节点执行:

[oracle@jssdbn1~]$cd $ORA_CRS_HOME/bin

[oracle@jssdbn1bin]$ ./olsnodes -n-i

jssdbn11 jssdbn1-vip

jssdbn22 jssdbn2-vip

jssdbn33

你看,尽管通过前面的操作,ORACLE 软件以及集群件均已被删除,节点信息也更新

过了,不过 OCR 中还是保留有 jssdbn3 节点的信息,因此这块也需要删除,执行脚本如下 :

[root@jssdbn1 ~]# cd /data/ora10g/product/10.2.0/crs_1/install

 

[root@jssdbn1 install]#./rootdeletenode.shjssdbn3,3

CRS-0210: Couldnotfind resource 'ora.jssdbn3.LISTENER_JSSDBN3.lsnr'.

CRS-0210: Couldnotfind resource 'ora.jssdbn3.ons'.

CRS-0210: Couldnotfind resource 'ora.jssdbn3.vip'.

CRS-0210: Couldnotfind resource 'ora.jssdbn3.gsd'.

CRS-0210: Couldnotfind resource ora.jssdbn3.vip.

CRSnodeapps are deleted successfully

clscfg:EXISTING configuration version 3 detected.

clscfg:version3 is 10G Release 2.

Successfully deleted 14values fromOCR.

KeySYSTEM.css.interfaces.nodejssdbn3 marked for deletion is not there.

Ignoring.

Successfully deleted 5 keysfrom OCR.

Node deletion operationsuccessful.

'jssdbn3,3'deletedsuccessfully

[root@jssdbn1 install]#exit

logout

[oracle@jssdbn1bin]$ ./olsnodes -n-i

jssdbn11 jssdbn1-vip

jssdbn22 jssdbn2-vip

至此,删除节点操作告以段落。

 

 

阅读(1311) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~