| 中国 |
|
|
|
![]() |
使用 Serviceguard Extension for RAC > 第 2 章 适用于
Oracle RAC 的 Serviceguard 配置使用程序包配置 RAC 实例的启动和关闭脚本 |
|
为使群集节点上的 RAC 实例可以自动启动和关闭,您可以创建程序包,并使这些程序包可以激活适当的卷组,然后运行 RAC。请参考“创建程序包以启动 Oracle RAC 实例”一节。
Oracle 安装完成之后,请确保所有程序包控制脚本在每个节点上都已准备就绪,而且每个 /etc/rc.config.d/cmcluster 脚本都包含 AUTOSTART_CMCLD=1 项。然后重新引导每个节点。重新引导后几分钟内,群集就会重组,而且程序包控制脚本将启动数据库实例和应用程序。 Oracle 启动之后,可以在两个节点上使用 SAM 进程管理功能或 ps -ef 命令来验证所有 RAC 守护程序和 Oracle 进程是否都在运行。 要将 RAC 实例的启动和关闭与群集节点的启动和关闭相协调,需要针对运行 RAC 实例的每个节点创建一个单节点程序包。在程序包配置文件中,只应指定一个运行该实例的节点,并指定每次实例节点或整个 RAC 群集启动或关闭时将执行的控制脚本。
要简化 RAC 实例程序包的创建过程,可以使用与可单独购买的 ECM
Toolkits 产品 (B5139BA) 一起提供的 Oracle 模板。此文件所在目录是 要使用 Serviceguard Manager 创建程序包,请选择群集。在操作菜单中选择配置程序包。要修改程序包,请选择该程序包。对于实例程序包,请为每个实例创建一个程序包。在每个节点上,为该程序包名称提供 SID 名称。 要通过命令行创建程序包,请使用 cmgetconf 命令来查看可编辑的配置 如果希望在节点刚一连接到群集时就启动实例,请将 AUTO_RUN 参数设置为 YES。另外,应将 NODE_FAILFAST_ENABLED 参数设置成 NO。 如果要将 RAC 数据库保存在 CVM 磁盘组中,请确保将每个磁盘组的名称分别添加到配置文件中不同的 STORAGE_GROUP 行上。 也可使用程序包启动访问 RAC 实例的应用程序。如果某应用程序要在群集节点间进行故障切换,则必须将其设置为其他类型的程序包,使其独立于启动和停止 RAC 实例的程序包。如果程序包包含的应用程序需要访问 RAC 数据库,请执行下列步骤:
可在群集运行时添加或删除程序包,但要受 MAX_CONFIGURED_PACKAGES 的限制。要联机添加或删除程序包,请参考《管理 Serviceguard》用户手册第 7 章中的“群集和程序包维护”一节。 程序包控制脚本中包含执行下列各项操作所需的全部信息:运行程序包中的所有服务、在操作期间对它们进行监视、处理发生的故障以及必要时暂停程序包。可以使用 Serviceguard Manager 或 HP-UX 命令创建或修改程序包控制脚本。出于安全方面的考虑,控制脚本所在目录的路径名中必须包含字符串 cmcluster。 完成各种配置标签后,控制脚本即可自动生成。当要求提供程序包运行和暂停脚本的路径名时,请使用 ECM 工具包中的文件名。有关详细信息,请使用 Help 键。 以这种方式创建程序包控制脚本时,无需进一步进行编辑,但如果愿意,可定制此脚本。 每个程序包必须具有一个单独的可执行的控制脚本。控制脚本存储在程序包目录中,并且它的名称必须与程序包 ASCII 配置文件中的 RUN_SCRIPT 和 HALT_SCRIPT 参数指定的名称相同。程序包控制脚本模板包含程序包的运行指令和暂停指令。可以使用一个脚本进行运行和暂停两种操作;如果愿意,也可分别创建两个脚本。 可以使用下面的过程为样例程序包 pkg1 创建控制脚本。 首先,生成一个控制脚本模板:
可以如““定制程序包控制脚本””一节中所述定制脚本。 请使用程序包配置工作表中的信息检查控制脚本开始处的定义和说明。需要按以下步骤进行定制:
如果除缺省设置外还需要定义一组运行和暂停操作,应在标题为 CUSTOMER DEFINED FUNCTIONS 的部分中为它们创建函数。 当使用大量的文件系统或存储组时,可通过设置一组四个变量对性能进行改善。有关详细信息,请参阅控制脚本模板中的注释。包括下列信息:
使用程序包控制脚本执行下列操作:
在程序包控制脚本中设置 RAC 环境变量,用于为 RAC 定义正确的执行环境。 在 VG[] 数组中输入希望以共享模式激活的 LVM 卷组的名称。每个 RAC 卷组对应一个不同的数组元素。(请记住,对于 RAC 卷组,还必须使用 OPS_VOLUME_GROUP 参数将其编入群集配置文件中。) 请确保通过设置 VGCHANGE 参数以使用 vgchange 命令指定共享激活,如下所示:
如果磁盘通过 LVM 镜像镜像到单独的物理路径上,而且希望覆盖定额,则请使用下列设置:
在 CVM_DG[] 数组中输入希望以共享模式激活的 CVM 磁盘组的名称。每个 RAC 磁盘组对应一个不同的数组元素。(请记住,对于 CVM 磁盘组,还必须使用 STORAGE_GROUP 参数将其编入程序包 ASCII 配置文件中。) 请确保 CVM 激活命令指定的共享激活类型合适。例如:
不要将 RAC 实例定义为程序包服务,而应将启动 RAC 实例的命令添加到程序包控制脚本的 customer_defined_run_commands 部分中。与此类似,应将暂停 RAC 实例的命令添加到程序包控制脚本的 customer_defined_halt_commands 部分中。 将 Oracle 监视命令定义为服务命令,或使用随 ECM Toolkit 提供的专用 Oracle 脚本。 可以使用 Serviceguard Manager 或命令行来配置 Oracle RAC 实例程序包。 Enterprise Cluster Master Toolkit (ECMT) 提供了一个通用的 Oracle 数据库脚本模板,可以使用该模板为 Oracle RAC 实例程序包配置程序包行为。用户可以将该脚本集成到标准 Serviceguard 程序包控制脚本中,从而简化启动、监视和关闭 Oracle 数据库实例的过程。有关使用 ECMT 的详细信息,请参阅 ECMT 文档资料。 每个 Oracle RAC 数据库都可以在 SGeRAC 群集的所有节点上运行一个数据库实例。因此,无需将数据库实例故障切换到不同的 SGeRAC 节点。这就是 Oracle RAC 实例程序包和单个 Oracle 实例程序包的主要差别。 可以在创建程序包之前使用下列步骤在 SGeRAC 节点上设置相应的配置信息:
下列步骤使用图 2-1 的示例中的信息。下面假定 SGMgr 已启动。假定 SGeRAC 群集环境已配置,并且可以使用 ECMT 启动 Oracle RAC 数据库实例。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||