千家信息网

Oracle添加和删除集群节点的方法是什么

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,这篇文章主要介绍"Oracle添加和删除集群节点的方法是什么",在日常操作中,相信很多人在Oracle添加和删除集群节点的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对
千家信息网最后更新 2024年11月23日Oracle添加和删除集群节点的方法是什么

这篇文章主要介绍"Oracle添加和删除集群节点的方法是什么",在日常操作中,相信很多人在Oracle添加和删除集群节点的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Oracle添加和删除集群节点的方法是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一:添加群集节点的必备步骤

注意:

在向集群添加节点之前,请确保执行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安装后,请避免更改主机名,包括添加或删除域限定条件。必须从群集中删除主机名已更改的节点,并用新名称重新添加。

LinuxUNIX系统上添加和删除集群节点

在Linux和UNIX系统上添加或删除群集节点。

添加节点部分中的过程假定您已经执行了"添加群集节点的先决条件步骤"部分中的步骤。

节点添加过程的最后一步包括将Oracle Clusterware home从现有节点上的Oracle Clusterware home扩展到要添加的节点。

本节包括以下主题:

•在Linux和UNIX系统上添加群集节点

•删除Linux和UNIX系统上的群集节点

注:

从Oracle Clusterware 11g release 2(11.2)开始,Oracle Universal安装程序在添加节点时默认为静默模式。

2.1 LinuxUNIX系统上添加群集节点

有两种方法可用于将节点添加到集群中。

2.1.1使用Fleet PatchingProvisioning添加节点

如果您有一个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 LinuxUNIX系统上删除群集节点

注:

•在从集群中删除节点之前,可以从节点中删除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.1Windows系统上向集群添加节点

在添加节点之前,请确保完成"添加集群节点的先决条件步骤"中列出的先决条件。

此过程描述如何向集群添加节点。本程序假设:

•现有的集群中有两个节点,分别名为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

到此,关于"Oracle添加和删除集群节点的方法是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0