ORACLE 11gR2 RAC添加删除(正常及强制)节点操作步骤(删除篇)

作者简介:庞旭光,现就职于北京海天起点,高级oracle维护工程师,拥有6年电信,政府,银行等行业核心系统oracle数据库运维经验,获得11g ORACLE OCM认证,Redhat Enterprise 7 RHCE认证,擅长oracle数据库方面的故障诊断及问题处理。

RAC删除节点

这里我们模拟节点可以正常启动时,正常删除RAC节点的操作过程以及节点由于遇到硬件故障或其它问题短期内无法启动时,将其强制从RAC集群中删除的过程。

正常删除RAC节点的操作过程和添加RAC节点的操作过程刚好相反,先删除数据库实例,再删除数据库软件(ORACLE_HOME),再在clusterware层面删除节点,再删除GRID软件(GRID_HOME)。

强制删除RAC节点的操作过程和正常RAC节点的操作逻辑大致相同,只是细节上有所不同。

这里我们以正常删除racdb1和强制racdb2节点为例进行实验。

关于停机时间:

删除RAC节点操作也不需要停机,可以在线操作,不需要申请停机时间。当然,如果条件允许,为了避免在操作过程中出现异常从而导致整个集群运行异常,也可以适当申请小时级别的申请时间。

正常删除RAC节点操作过程

移除oracle实例

从RAC数据库中移除实例,与添加实例一样,也可以通过dbca工具实现。

对于11gR2的RAC数据库,分为两种类型,策略管理型数据库(policy-managed database)和管理员管理型数据库(administrator-managed database),这两种不同类型的数据库,删除实例的方法不同。对于策略管理的数据库操作起来比较复杂,可以参考如下官方文档:

https://docs.oracle.com/cd/E18283_01/rac.112/e16795/adddelunix.htm#CEGIEDFF

我们这里的数据库是管理员管理型数据库,按照如下步骤进行操作:

1、解除实例与service的关联

如果数据库实例跟某个service进行了关联,那么使用srvctl工具或em先对service进行relocate操作,然后修改service,使其只在不计划删除的节点上运行。确保要删除的实例既不是某个service的preferred 实例,也不是available 实例。

我们这里的情况比较简单,没有创建任何service,所以也就不需要进行service相关的操作。

2、备份OCR

先看有没有ocr的自动备份,执行:ocrconfig -showbackup命令查看,如果没有,则手动进行备份,以root用户执行:

3、使用dbca工具,将实例从rac数据库中移除出去。

有两种方式,图形方式和命令行方式,为了加深记忆,这里我们分别用两种方式演示。

方式一:图形方式:

以oracle用户调用dbca:

下一步:

下一步:

下一步:

输入用户名”sys”及sys用户的密码,然后下一步:

下一步:

点击”Finish”:

点击”OK”:

点击”OK”:

删除进度33%,继续等待:

点击”No”。

方式二:命令行方式:

命令行的方法,具体命令为:

结合我们这里的实际情况,进行参数替换:

命令需要在不删除的节点上、以oracle用户执行,我们依然在节点3上执行。执行过程记录如下:

删除oracle软件

1、处理要删除的节点上的监听

如果Oracle RAC HOME配置了监听,且注册进了clusterware中,则先需要禁用并停掉监听,以grid用户,在任意节点上执行下面的命令:

我们这里没有单独配置监听,只有默认的监听,我们将其禁用并停掉,在节点3上以grid用户执行:

2、在要删除的节点上更新NodeList

在要删除的节点上以oracle用户执行:

结合我们这里的实际情况,对具体的参数进行替换,对应的实际命令为:

执行结果记录如下:

3、删除ORACLE_HOME目录

如果ORACLE_HOME是共享的,则在要删除的节点上执行:

如果是非共享的,则执行:

我们这里是非共享的,按照后一种方法执行:

4、在不删除的节点上更新inventory

在保留的任意节点,也就是racdb2、racdb3或racdb4上,以oracle用户执行:

结合我们这里的实际情况,进行参数替换,即:

我们在racdb3上执行,执行过程记录如下:

接下来处理grid。

将节点移除出RAC集群

将节点移除出集群,使其不再是集群成员。

1、查看节点的状态是否为Unpinned

以grid用户执行:olsnodes -s -t,如果不是Unpinned,则以root用户执行:crsctl unpin css将其unpin。

“olsnodes -s -t”在要删除的节点上、不删除的节点上执行均可:

状态为Unpinned,但是我们这里是实验环境,可以体验一下unpin命令:

unpin命令在要删除的节点上或不删除的节点上执行都可以。

2、对节点进行deconfig操作

在要删除的节点上以root用户执行:

执行过程记录如下:

注意:如果要删除的节点是当前整个集群中最后一个节点,也就是说要将整个集群删除掉的话,那么需要执行:

3、在其它节点上删除要删除的节点(执行删除动作)

在不删除的节点上以root用户执行:

我们在节点3上执行:

4、在要删除的节点上更新Nodelist

在要删除的节点,也就是节点1,上以grid用户执行下面的命令:

结合我们这里的实际情况,进行参数替换,即:

接下来处理GRID_HOME。

删除GRID软件

1、删除GRID_HOME

如果GRID_HOME是共享的,则在要删除的节点上,以grid用户执行:

如果非共享的,以grid用户执行:

注意:这里一定要加上-local参数,否则的话,这个命令会删除所有节点的GRID_HOME目录。

我们属于后一种情况,这里我们在节点1上执行,命令执行过程中,除红色字体部分以外,一路回车即可,执行过程记录如下:

根据提示,以root用户在节点1上另开一个会话执行上述命令:

然后回到刚才的会话窗口,按回车继续执行:

GRID_HOME删除完成。

2、在剩余节点上更新NodeList

在剩余的任意节点,也就是节点2、3或4上执行:

结合我们这里的实际情况,进行参数替换,即:

这里我们在节点3上执行,执行过程记录如下:

3、执行删除后检查

在节点2、3或4上以grid用户执行:

结合我们这里的实际情况,进行参数替换,即:

我们在节点3上执行,执行过程记录如下:

至此racdb1节点的删除操作完成。

接下来执行删除racdb2的操作,这里我们假设节点2由于硬件故障无法启动,来模拟强制将其从集群中删除的操作过程。

强制删除RAC节点操作过程

移除oracle实例

1、如果数据库配置了service,处理service:

在如果数据库配置了service,那么首先处理service,让其只可能在集群中剩余的节点上运行。

这里我们模拟为数据库配置的service的名称为racdbsvc,在实际环境中可以通过”crsctl stat res -t|grep svc”命令查看。

在集群中剩余的任意节点上以oracle用户执行:

如果命令成功执行,不会有返回结果,执行完后,对service进行确认:

2、将实例从racdb数据库中删除

对于”Administrator Managed database”,同样调用dbca工具实现,可以通过图形方式删除,也可以通过命令行方式删除,具体操作过程可以参考正常删除rac节点操作过程,此处略去操作过程记录。

处理DB软件

在集群中剩余节点上以oracle用户执行:

结合我们这里的实际情况进行替换,即:

执行过程记录如下:

将节点移除出RAC集群

1、停掉节点VIP:

在集群中剩余任意节点上以root用户执行:

2、移除节点VIP:

在集群中剩余任意节点上以root用户执行:

3、查看节点的状态是否为Unpinned

以grid用户执行:olsnodes -s -t,如果不是Unpinned,则以root用户执行:crsctl unpin css将其unpin。

4、剔除RAC节点:

在集群中剩余任意节点上以root用户执行:

处理GI Inventory

在集群中剩余任意节点上以grid用户执行:

结合我们这里的实际情况进行替换,即:

命令执行记录如下:

最后查询集群成员及其状态:

至此删除节点的操作完成。

总结

从上面的操作可以看出,RAC添加和删除节点的操作,并不需要多高的技术能力,但是建议严格ORACLE官方文档和METALINK(MOS)文档进行操作,以避免不必要的麻烦。

参考资料

1、How to Add Node/Instance or Remove Node/Instance in 10gr2, 11gr1, 11gr2 and 12c Oracle Clusterware and RAC(文档 ID 1332451.1)

2、How to Remove/Delete a Node From Grid Infrastructure Clusterware When the Node Has Failed

(文档 ID 1262925.1)

3、https://docs.oracle.com/cd/E14795_01/doc/rac.112/e10717/adddelclusterware.htm#CHDFIAIE

4、https://docs.oracle.com/cd/E18283_01/rac.112/e16795/adddelunix.htm#BEICADHD

5、https://docs.oracle.com/cd/E18283_01/rac.112/e16794/adddelclusterware.htm#CWADD90992

6、http://docs.oracle.com/cd/E11882_01/rac.112/e41959/adddelclusterware.htm#CWADD90992

未经允许不得转载:Oracle一体机用户组 » ORACLE 11gR2 RAC添加删除(正常及强制)节点操作步骤(删除篇)

相关推荐