Oracle 集群软件管理 - 添加和删除集群节点
---Oracle® Clusterware
Clusterware Administration and Deployment Guide
7 Adding and Deleting Cluster Nodes
描述如何将节点添加到现有群集,以及如何从群集中删除节点。
本章为
Linux
、
UNIX
和
Windows
系统提供这些任务的过程。
本章包括以下主题:
•添加群集节点的必备步骤
•在
Linux
和
UNIX
系统上添加和删除群集节点
•在
Windows
系统上添加和删除群集节点
相关主题
•克隆
Oracle Clusterware
一:添加群集节点的必备步骤
注意
:
在向集群添加节点之前,请确保执行
Oracle Grid Infrastructure
安装和升级指南中列出的
Linux
预安装任务。
不要安装
Oracle
集群软件。当您向集群添加节点时,软件将从现有节点复制。
完成以下步骤以准备要添加到群集的节点:
1.
建立物理连接。
将节点的硬件连接到集群的网络基础结构。这包括建立网络连接、配置网络互连、配置共享磁盘子系统连接等。有关此步骤的详细信息,请参阅硬件供应商文档。
2.
安装操作系统。
安装与群集中其他节点上的操作系统匹配的操作系统的克隆映像。这包括安装所需的服务修补程序、更新和驱动程序。有关此过程的详细信息,请参阅操作系统供应商文档。
注:
Oracle
建议您使用克隆映像。但是,如果安装满足安装要求,则根据供应商文档安装操作系统。
3.
创建
Oracle
用户。
必须在现有节点上的新节点上创建所有
Oracle
用户。例如,如果要将节点添加到具有两个节点的群集,并且这两个节点对于
Oracle Grid Infrastructure home
和
Oracle home
具有不同的所有者,则必须在新节点上创建这些所有者,即使您不打算在新节点上安装
Oracle home
。
注意:
仅对
Linux
和
UNIX
系统执行此步骤。
作为
root
用户,使用与现有节点上相同的用户
ID
和组
ID
创建
Oracle
用户和组。
4.
确保在节点上配置了
SSH
。
5.
使用群集验证实用程序(
CVU
)验证硬件和操作系统安装。
在要添加的节点上配置硬件和操作系统后,可以运行以下命令来验证要添加的节点是否可由群集中的其他节点访问。还可以使用此命令验证用户与本地节点中所有给定节点的等效性、所有给定节点之间的节点连接、所有给定节点对共享存储的可访问性等等。
a
、从现有节点上的
Grid_home/bin
目录中,运行
CVU
命令以获得引用节点的属性与当前集群环境中所有其他节点的属性的详细比较。将
ref_node
替换为要与
CVU
比较要添加的节点的现有集群中的节点的名称。在
-n
选项后指定以逗号分隔的节点列表。在下面的示例中,
orainventory_group
是
Oracle Inventory group
的名称,
osdba_group
是
osdba group
的名称:
$ cluvfy comp peer [-refnode ref_node] -n node_list [-orainv orainventory_group] [-osdba osdba_group] [-verbose]
b
、请确保网格基础结构管理存储库为四个以上添加的每个节点提供至少
500 MB
的额外空间,如下所示:
$ oclumon manage -get resize
如有需要,增加额外空间,如下所示:
$ oclumon manage -repos changerepossize total_in_MB
另见:
有关使用
OCLUMON
的详细信息,请参阅
Oracle Autonomous Health Framework
用户指南
注:
对于引用节点,选择希望
CVU
与之进行比较的集群节点,例如,要添加的节点,使用
-n
选项指定
完成本节中的过程后,就可以将节点添加到集群了。
注:
在完成
Oracle Clusterware
安装后,请避免更改主机名,包括添加或删除域限定条件。必须从群集中删除主机名已更改的节点,并用新名称重新添加。
二
在
Linux
和
UNIX
系统上添加和删除集群节点
在
Linux
和
UNIX
系统上添加或删除群集节点。
添加节点部分中的过程假定您已经执行了“添加群集节点的先决条件步骤”部分中的步骤。
节点添加过程的最后一步包括将
Oracle Clusterware home
从现有节点上的
Oracle Clusterware home
扩展到要添加的节点。
本节包括以下主题:
•在
Linux
和
UNIX
系统上添加群集节点
•删除
Linux
和
UNIX
系统上的群集节点
注:
从
Oracle Clusterware 11g release 2
(
11.2
)开始,
Oracle Universal
安装程序在添加节点时默认为静默模式。
2.1
在
Linux
和
UNIX
系统上添加群集节点
有两种方法可用于将节点添加到集群中。
2.1.1
使用
Fleet Patching
和
Provisioning
添加节点
如果您有一个
Fleet Patching
和
Provisioning
服务器,则可以使用
Fleet Patching
和
Provisioning
通过一个命令将节点添加到群集,如下例所示:
$ rhpctl addnode gihome -client rhpclient -newnodes clientnode2:clientnode2-vip –root
前面的示例使用
root
用户登陆(要添加的节点的登录名)将名为
clientnode2
的节点和
VIP clientnode2 VIP
添加到名为
rhpclient
的
Fleet Patching
和
Provisioning
客户端。
2.1.2
使用
Oracle Grid Infrastructure Installer
添加节点
如果不希望使用
Fleet Patching
和
Provisioning
向集群添加节点,则可以使用
Oracle Grid Infrastructure Installer
来完成此任务。
注意
:
您可以使用
$Oracle_home/install/response/gridSetup
。
rsp
模板创建一个响应文件来添加节点,使用
Oracle Grid Infrastructure Installer
进行非交互式
(
静默模式
)
操作。
使用
Oracle Grid Infrastructure
安装程序将节点添加到群集
1.
运行
./gridSetup.sh
启动安装程序。
2.
在“选择配置”选项页上,选择“
Add more nodes to the cluster
”。
3.
在群集节点信息页上,单击
Add...
为要添加的节点提供信息。
4.
验证过程在“执行先决条件检查”页上完成后,检查摘要,然后单击“安装”。
5.
如果出现提示,则以
root
身份运行
orainstRoot.sh
脚本,用中央库存的位置填充
/etc/oraInst.loc
文件。例如:
# /opt/oracle/oraInventory/orainstRoot.sh
6.
如果集群上配置了
Oracle RAC
或
Oracle RAC
单节点数据库,并且有本地
Oracle home
,请执行以下操作将
Oracle database home
扩展到节点
3
:
a
、登陆到
node1
上的
Oracle_home/addnode
目录,并使用以下语法以安装
Oracle RAC
的用户身份运行
addnode.sh
脚本:
$ ./addnode.sh "CLUSTER_NEW_NODES={node3}"
b
、在
node3
上以
root
身份运行
Oracle_home/root.sh
脚本,其中
Oracle_home
是
Oracle RAC home
。
如果有使用
Oracle
自动存储管理群集文件系统(
Oracle ACFS
)共享的
Oracle home
,请执行以下操作将
Oracle
数据库
home
扩展到节点
3
:
a
、在
node3
上以
root
身份运行
Grid_home/root.sh
脚本,其中
Grid_home
是
Oracle
网格基础设施的
home
。
b
、
以从要添加的节点上的
Oracle_home/oui/bin
目录安装
Oracle RAC
的用户身份运行以下命令以添加
Oracle RAC database home
:
$./runInstaller -attachHome ORACLE_HOME="ORACLE_HOME" "CLUSTER_NODES={node3}" LOCAL_NODE="node3" ORACLE_HOME_NAME="home_name" –cfs
c
、登陆到
node1
上的
Oracle_home/addnode
目录,并使用以下语法以安装
Oracle RAC
的用户身份运行
addnode.sh
脚本:
$ ./addnode.sh -noCopy "CLUSTER_NEW_NODES={node3}"
注意
:
使用
-noCopy
选项,因为目标节点上的
Oracle home
已经完全由软件填充。
如果在非
Oracle ACFS
的共享文件系统上有共享的
Oracle home
,则必须首先在目标节点上为
Oracle RAC
数据库
home
创建装载点,装载并附加
Oracle RAC
数据库
home
,然后更新
Oracle Inventory
,如下所示:
a
、在群集中的现有节点上运行
srvctl config database -db db_name
命令以获取挂载点信息。
b
、在
node3
上以
root
用户身份运行以下命令以创建挂载点:
# mkdir -p mount_point_path
c
、装载承载
Oracle RAC
数据库主目录的文件系统。
d
、
以从要添加的节点上的
Oracle_home/oui/bin
目录安装
Oracle RAC
的用户身份运行以下命令以添加
Oracle RAC database home
:
$ ./runInstaller -attachHome ORACLE_HOME="ORACLE_HOME" "CLUSTER_NODES={local_node_name}" LOCAL_NODE="node_name" ORACLE_HOME_NAME="home_name" -cfs
登陆到
node1
上的
Oracle_home/addnode
目录,并使用以下语法以安装
Oracle RAC
的用户身份运行
addnode.sh
脚本:
$ ./addnode.sh -noCopy "CLUSTER_NEW_NODES={node3}"
注:
运行
addnode.sh
后,确保
Grid_home/network/admin/samples
目录的权限设置为
750
。
7.
以
root
身份在
node3
上运行
Grid_home/root.sh
脚本,并按照说明运行后续脚本。
注:
•如果在上一步中运行了
root.sh
脚本,则无需再次运行。
•如果您有
policy-managed
数据库,则必须确保在运行
root.sh
脚本之前将
Oracle home
克隆到新节点。
•如果在要添加到群集的节点上配置了任何管理员管理的数据库实例,则必须在运行
root.sh
脚本之前将
Oracle home
扩展到新节点。
或者,使用
srvctl remove instance
命令删除管理员管理的数据库实例。
8.
从
Grid_home/bin
目录以
root
用户身份运行以下命令,启动新节点上的
Oracle ACFS
资源:
# srvctl start filesystem -device volume_device_name -node node3
注:
确保
Oracle ACFS
资源(包括
Oracle ACFS
注册表资源和
Oracle home
所在的
Oracle ACFS
文件系统资源)在新添加的节点上联机。
9.
以安装
Oracle Clusterware
的用户身份运行以下
CVU
命令,以检查群集完整性。此命令验证是否已在网络、共享存储和群集软件级别将任意数量的指定节点成功添加到群集:
$ cluvfy stage -post nodeadd -n node3 [-verbose]
2.2
在
Linux
和
UNIX
系统上删除群集节点
注:
•在从集群中删除节点之前,可以从节点中删除
Oracle RAC
数据库实例,但不需要执行此步骤。如果不删除该实例,则该实例仍处于配置状态,但从未运行。从群集中删除节点不会从群集中删除节点的配置信息。剩余的配置信息不会干扰群集的操作。
另请参阅:
Oracle Real Application Clusters Administration and Deployment Guide
以获取有关删除
Oracle RAC
数据库实例的更多信息
•如果删除由
GNS
服务的集群的最后一个节点,则必须从
GNS
中删除该集群的条目。
•如果集群中有未固定的节点,那么
Oracle Clusterware
会在一段时间后忽略这些节点,不需要删除它们。
•如果为某个节点创建特定于节点的配置(例如禁用特定节点上的服务,或将该节点添加到服务器池的候选列表中),则从群集中删除该节点时不会删除该特定于节点的配置。必须手动删除此类特定于节点的配置。
•在对群集进行任何更改后,投票文件将自动备份到
OCR
中。
•如果要从
Oracle Flex
集群中删除非集线器节点,只需完成此过程的步骤
1
到
4
。
要从群集删除节点,请执行以下操作:
1.
确保
Grid_home
正确指定每个节点上
Oracle Clusterware home
的完整目录路径,其中
Grid_home
是已安装
Oracle Clusterware
软件的位置。
2.
以
root
用户或安装
Oracle Clusterware
的用户身份运行以下命令,以确定要删除的节点是否处于活动状态以及是否已固定:
$ olsnodes -s -t
如果节点已固定,则运行
crsctl unpin css
命令。否则,继续下一步。
3.
在要删除的节点上,根据您是否有共享或本地
Oracle home
,以安装
Oracle Clusterware
的用户身份完成以下过程之一:
•对于本地主节点,通过运行以下命令从要删除的节点卸载
Oracle Clusterware home
,如下所示,其中
Grid_home
是为
Oracle Clusterware
主节点定义的路径:
$ Grid_home/deinstall/deinstall –local
注意:
–如果未指定
-local
标志,则该命令将从群集中的每个节点中删除
Oracle Grid Infrastructure home
。
–如果剪切并粘贴前面的命令,则将其粘贴到文本编辑器中,然后再将其粘贴到命令行以删除此文档可能包含的任何格式。
注:
或者,在配置
Oracle Grid Infrastructure
之后,如果要从
grid infrastructure
中删除任何节点,则可以通过运行
Grid_home/gridSetup.sh
、选择从集群中删除节点并按照提示进行操作来完成此操作。
•如果您有一个共享
home
,则按以下顺序在要删除的节点上运行以下命令。
运行以下命令取消配置
Oracle Clusterware
:
$ Grid_home/crs/install/rootcrs.sh -deconfig -force
从
Grid_home/oui/bin
目录运行以下命令以分离
Grid home
:
$ ./runInstaller -detachHome ORACLE_HOME=Grid_home -silent –local
按照安装实用程序的提示,手动删除任何配置文件。
4.
从未删除的任何节点上,以
root
用户身份从
Grid_home/bin
目录中运行以下命令以从群集删除该节点:
# crsctl delete node -n node_to_be_deleted
5.
运行以下
CVU
命令以验证指定的节点是否已从群集成功删除:
$ cluvfy stage -post nodedel -n node_list [-verbose]
6.
如果删除
Oracle Clusterware
关闭的群集节点,请确定已删除节点的
VIP
是否仍然存在,如下所示:
$ srvctl config vip -node deleted_node_name
如果
VIP
仍然存在,则按如下方式删除它:
$ srvctl stop vip -node deleted_node_name
$ srvctl remove vip -vip deleted_vip_name
使用
Fleet Patching
和
Provisioning
删除节点
或者,您也可以使用
Fleet Patching
和
Provisioning
,通过一个命令从群集删除节点,如下例所示:
$ rhpctl deletenode gihome -client rhpclient -node clientnode2 –root
前面的示例使用
root
用户(要删除的节点的登录名)从名为
rhpclient
的
Fleet Patching
和
Provisioning
客户端中删除名为
clientnode2
的节点。
三
在
Windows
系统上添加和删除群集节点
本节介绍在
Windows
系统上添加和删除群集节点。本节包括以下主题:
•在
Windows
系统上向群集添加节点
•删除
Windows
系统上的群集节点
另见:
用于
Microsoft Windows x64
(
64
位)的
Oracle
网格基础结构安装和升级指南,了解有关删除整个群集的详细信息
3.1
在
Windows
系统上向集群添加节点
在添加节点之前,请确保完成“添加集群节点的先决条件步骤”中列出的先决条件。
此过程描述如何向集群添加节点。本程序假设
:
•现有的集群中有两个节点,分别名为
node1
和
node2
•您正在添加一个名为
node3
的节点
•您已经在本地的
node1
和
node2
上成功安装了
Oracle Clusterware
,其中
Grid_home
表示成功安装的
home
注意
:
在
Oracle
数据库已经从
Windows
系统上的
Oracle
数据库
10g
版本
1(10.1)
升级的配置中,不要使用本节描述的过程来添加集群节点。
添加一个节点
:
1.
验证集群和节点
3
的完整性
:
C:\>cluvfy stage -pre nodeadd -n node3 [-fixup] [-verbose]
您可以指定
-fixup
选项和一个目录,如果验证失败,
CVU
会将修复集群或节点的指令打印到这个目录中。
2.
在
node1
上,切换到
Grid_home\addnode
目录并运行
addnode.bat
脚本,如下所示
:
C:\>addnode.bat "CLUSTER_NEW_NODES={node3}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={node3-vip}"
3.
在新节点上运行以下命令
:
C:\>Grid_home\crs\config\gridconfig.bat
4.
只有当您将数据库系统配置为使用
Oracle ACFS
时,才需要以下步骤
:
a.
对于每个配置为使用
Oracle ACFS
的数据库,从
Oracle RAC
数据库
home
运行以下命令
:
C:\>ORACLE_HOME/bin/srvctl stop database -db database_unique_name
注:
运行
srvctl config database
命令以列出使用
Oracle Clusterware
配置的所有数据库。使用
srvctl config database-db database_unique_name
查找数据库详细信息。如果
ORACLE_HOME
路径指向
ORACLE ACFS mount
路径,则数据库使用
ORACLE ACFS
。使用命令输出查找配置为在新添加的节点上运行的数据库实例名称。
b
、使用
Windows
服务器管理器控件停止和删除服务。
c
、对于在本步骤第一部分中收集的每个数据库和数据库
home
,运行以下命令:
C:\> ORACLE_HOME/bin/srvctl start database -db database_unique_name
5.
运行以下命令以验证所有已配置节点(包括先前存在的节点和已添加的节点)上
Oracle Clusterware
组件的完整性:
C:\>cluvfy stage -post crsinst -n all [-verbose]
完成本节中添加节点的过程后,您可以选择将带有
Oracle RAC
组件的
Oracle
数据库扩展到新节点,使它们成为现有
Oracle RAC
数据库的成员。
为
Microsoft
事务服务器创建
OraMTS
服务
用于
Microsoft
事务服务器
(OraMTS)
的
Oracle
服务允许在
Microsoft
应用程序协调的事务中使用
Oracle
数据库作为资源管理器。
OraMTS
充当
Oracle
数据库到
Microsoft
分布式事务协调器
(MSDTC)
的代理。因此,
OraMTS
提供了客户端连接池,并允许利用
Oracle
的客户端组件参与可启动和分布式事务。此外,
oramt
可以在任何操作系统上运行
Oracle
数据库,前提是服务本身运行在
Windows
上。
在
Oracle Database 12c
之前的版本中,
OraMTS
服务是作为纯软件安装的一部分创建的。从
Oracle Database 12c
开始,您必须使用配置工具来创建此服务。
在为
Oracle RAC
添加节点或执行软件安装后创建
OraMTS
服务,如下所示
:
1.
打开命令窗口。
2.
将目录更改为
%ORACLE_HOME%\bin
。
3.
运行
OraMTSCtl
实用程序来创建
OraMTS
服务,其中
host_name
是应该在其上创建服务的节点列表
:
C:\..bin> oramtsctl.exe -new -host host_name
3.2
删除
Windows
系统上的群集节点
删除
Windows
系统上的群集节点
从
Windows
系统中删除群集节点。
此过程假设
Oracle Clusterware
安装在
node1
、
node2
和
node3
上,并且您正在从集群中删除
node3
。
注:
•
Oracle
不支持使用
Oracle Enterprise Manager
删除
Windows
系统上的节点。
•如果删除由
GNS
服务的集群的最后一个节点,则必须从
GNS
中删除该集群的条目。
•在从集群中删除节点之前,可以从节点中删除
Oracle RAC
数据库实例,但不需要执行此步骤。如果不删除该实例,则该实例仍处于配置状态,但从未运行。从群集中删除节点不会从群集中删除节点的配置信息。剩余的配置信息不会干扰群集的操作。
另请参阅:
Oracle Real Application Clusters Administration and Deployment Guide
以获取有关删除
Oracle RAC
数据库实例的更多信息
要删除
Windows
系统上的群集节点,请执行以下操作:
1.
仅当您有
local home
时,在要删除的节点上,使用
-local
选项运行以下命令以更新节点列表:
C:\>Grid_home\oui\bin\setup.exe -updateNodeList ORACLE_HOME=Grid_home "CLUSTER_NODES={node_to_be_deleted}" CRS=TRUE -local
注:
如果要从
Oracle Flex
集群中删除非集线器节点,则没有运行此命令。
2.
在要删除的节点上运行
deinstall
工具,以卸载并取消配置
Oracle Clusterware home
,如下所示:
C:\Grid_home\deinstall\>deinstall.bat -local
注意:
•如果未指定
-local
标志,则该命令将从群集中的每个节点中删除
OracleGrid
基础结构主节点。
•如果剪切并粘贴前面的命令,则在将其粘贴到命令行以删除此文档可能包含的任何格式之前,将其粘贴到文本编辑器中。
3.
在未删除的节点上,运行以下命令:
C:\>Grid_home\bin\crsctl delete node -n node_to_be_deleted
4.
运行以下
CVU
命令以验证指定的节点是否已从群集成功删除:
C:\>cluvfy stage -post nodedel -n node_list [-verbose]
5.
如果删除
Oracle Clusterware
关闭的群集节点,则确定已删除节点的
VIP
是否仍然存在,如下所示:
C:\> ORACLE_HOME/bin/srvctl config vip -node deleted_node_name
如果
VIP
仍然存在,则按如下方式删除它:
C:\> ORACLE_HOME/bin/srvctl stop vip -node deleted_node_name
C:\> ORACLE_HOME/bin/srvctl remove vip -node deleted_node_name
欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!
