将文件系统构件复制到 OCI

辅助中间层必须具有主 SOA 域使用的对象的副本。对象可以是静态的或动态的,具体取决于修改它们的频率。在 DR 设置过程中,必须完成对象的初始复制。在系统的生命周期内会刷新此初始副本。

关于对象

确定需要复制的构件的类型。

  • 静态构件:是不频繁更改的文件和目录。其中包括:
    • Oracle 主目录:通常由 Oracle 主目录和 Oracle WebLogic Server 主目录组成。使用 Oracle Fusion Middleware,可以从单个二进制文件安装创建多个 Oracle WebLogic Server 托管服务器。您可以在共享存储上的单个位置安装二进制文件,并在不同节点中的服务器重用此安装。为了实现最高可用性,Oracle 建议使用冗余二进制安装。
    • Oracle Inventory:orainventory 是一个包含现有 Oracle 主目录列表的文件夹,它位于与 Oracle 主目录隔开的文件夹中。/etc/oraInst.loc 文件确定 orainventory 的位置。
  • 动态工件:频繁更改的文件。这些构件包括:
    • 域主目录:管理服务器和托管服务器的域目录。在 EDG 拓扑中,ASERVER_HOME 位于共享位置,MSERVER_HOME 位于专用位置,每个服务器都有自己的 MSERVER_HOME(尽管也可以存储在 NFS 中)。
    • 应用程序对象,例如 .ear.war 文件。
    • 数据库对象,例如 MDS 资料档案库和 SOAINFRA 方案。
    • 持久性存储,例如 JMS 提供程序和事务处理日志。Oracle 建议将这些构件存储在数据库中。这是 EDG 拓扑中建议的方法,尤其适用于灾难恢复 (Disaster Recovery, DR) 环境,因为这些方法通过底层 Oracle Data Guard 自动复制到备用站点。
    • 部署计划,用于更新技术适配器,例如文件和 JMS 适配器。需要将构件保存到一个可供集群中所有节点访问的位置。
    • 其他运行时构件,例如文件适配器使用的文件、MFT 传输的文件或其他定制运行时构件。

驻留在数据库中的所有内容(例如 MDS 资料档案库、 SOAINFRA 方案、JMS 和 TLOG 以及定制数据)都将通过 Oracle Data Guard 自动复制到辅助站点。

要在灾难恢复拓扑中复制文件系统中的内容(例如 Oracle 主目录和 WebLogic 域配置),可以使用不同的方法。最常见的是存储级别复制、基于 rsync 的副本或基于 DBFS 的副本。

此处介绍的混合灾难恢复模型主要位于内部部署中,辅助部署在 OCI 中。存储级别复制在混合 DR 模型中不可用。建议使用 rsync 方法将对象从主数据库复制到备用数据库。您可以使用基于 Oracle Database File System (DBFS) 的副本复制某些对象,请参阅关于 Oracle Database 文件系统中的“了解更多”中的详细信息。

确定文件夹和文件系统对象

确定主环境的主 SOA 主机使用的 NFS 卷和文件夹及其内容。

下表提供了此示例中使用的主文件系统对象的示例。

文件系统卷 主机 挂载点文件夹 备注 对象类型
NFS VOLFMW1 /export/soa/products1 SOAHOST1 /u01/oracle/products JDK 和 FMW 二进制文件的卷。 静态
NFS VOLFMW2 /export/soa/products2 SOAHOST2 /u01/oracle/products JDK 和 FMW 二进制文件的卷。 静态
NFS VOLADMIN/export/soa/config SOAHOST1、 SOAHOST2 /u01/oracle/config 管理服务器域目录和其他共享配置的卷,例如部署计划、应用程序和密钥库。 动态
本地 * /u02/oracle/config SOAHOST1 /u02/oracle/config SOAHOST1 中专用配置的卷 动态
本地 * /u02/oracle/config SOAHOST2 /u02/oracle/config SOAHOST2 中专用配置的卷 动态
NFS VOLRUNTIME /export/soa/runtime SOAHOST1、 SOAHOST2 /u01/oracle/runtime

共享运行时内容的卷,例如文件适配器使用的文件和其他运行时对象。

注:建议使用 JDBC 持久性存储(而不是此文件夹)在数据库中存储 JMS 消息和 TLOGS

动态

* 本地文件系统卷可以是 NFS 中的专用(非共享)挂载,而非本地存储。

下表是文件夹位置的 EDG 变量示例。

EDG 变量
ORACLE_BASE /u01/oracle/products
ORACLE_HOME /u01/oracle/products/fmw
JAVA_HOME /u01/oracle/products/jdk
SHARED_CONFIG_DIR /u01/oracle/config
APPLICATION_HOME /u01/oracle/config/applications/mysoadomain
DEPLOY_PLAN_HOME /u01/oracle/config/dp
KEYSTORE_HOME /u01/oracle/config/keystores
ASERVER_HOME /u01/oracle/config/domains/mysoadomain
PRIVATE_CONFIG_DIR /u02/oracle/config
MSERVER_HOME /u02/oracle/config/domains/mysoadomain
NM_HOME /u02/oracle/config/nodemanager
ORACLE_RUNTIME /u01/oracle/runtime

验证主主机和备用主机之间的连接

SOA 主机必须连接到远程备用 Oracle Cloud Infrastructure (OCI) SOA 主机,反之亦然,

远程 SOA 主机的物理名称可以在 DNS 中解析,也可以在 /etc/hosts 文件中包括远程对等 SOA 主机物理名称和 IP。也就是说,将辅助 SOA 主机物理名称及其 IP 添加到主 SOA 主机的 /etc/hosts 文件中。同样,将主 SOA 主机物理名称及其 IP 添加到辅助 SOA 主机的 /etc/hosts 文件中。

注:

如果主服务器未使用虚拟主机名且使用物理节点主机名作为服务器的监听地址,则不执行这些步骤。因为在该方案中,主物理节点主机名应该由 OCI SOA 备用主机 IP 解析。在该方案中,使用主机的 IP 将 SSH 连接到远程节点,而不是执行以下步骤。
  1. 编辑主要内部部署 SOA 主机中的 /etc/hosts 文件,以包括远程对等 SOA 主机物理名称和 IP 地址。
    以下是内部部署主机上的别名的示例。
    
    #################################
    # ALIASES in on-prem
    #################################
    10.10.10.20   host-vip1.myopnetwork.com    host-vip1          ADMINVHN.example.com   ADMINVHN 
    10.10.10.13   host3.myopnnetwork.com       host3              SOAHOST1.example.com    SOAHOST1
    10.10.10.14   host4.myopnnetwork.com       host4              SOAHOST2.example.com    SOAHOST2
    # Front-end name (resolved but primary Load Balancer IP
    10.10.10.100    mysoa.example.com
    # Remote OCI soa hosts physical names (without virtual host name aliases!)
    100.70.10.13    hydrsoa1.midTiersubnet.hydrvcn.oraclevcn.com      hydrsoa1        
    100.70.10.14   hydrsoa2.midTiersubnet.hydrvcn.oraclevcn.com       hydrsoa2
  2. 编辑备用 OCI SOA 主机中的 /etc/hosts 文件,以包括远程内部部署 SOA 主机物理名称。不包括虚拟主机名别名。
    以下是备用 OCI SOA 主机上的别名的示例。
    #################################
    # ALIASES in OCI
    #################################
    100.70.10.20   hydrsoa-vip.midTiersubnet.hydrvcn.oraclevcn.com   hydrsoa-vip    ADMINVHN.example.com    ADMINVHN
    100.70.10.13   hydrsoa1.midtiersubnet.hydrvcn.oraclevcn.com      hydrsoa1       SOAHOST1.example.com    SOAHOST1
    100.70.10.14   hydrsoa2.midtiersubnet.hydrvcn.oraclevcn.com      hydrsoa2       SOAHOST2.example.com    SOAHOST2
    # Front-end name (resolved by secondary OCI LBR IP)
    1070.70.70    mysoa.example.com
    # Remote on-prem soa hosts physical names (without virtual host name aliases!)
    10.10.10.13   host3.myopnnetwork.com       host3
    10.10.10.14   host4.myopnnetwork.com       host4
  3. 使用 SSH 命令验证从主内部部署 SOA 主机到辅助 OCI SOA 主机的交叉连接。
    连接到 OCI 计算实例时需要 SSH 密钥。
    ssh -i my_private_key oracle@hydrsoa1.midtiersubnet.hydrvcn.oraclevcn.com
    ssh -i my_private_key oracle@hydrsoa2.midtiersubnet.hydrvcn.oraclevcn.com
  4. 使用 SSH 命令验证辅助 OCI SOA 主机与主内部部署 SOA 主机之间的交叉连接。
    可能不需要 ssh 密钥。
    ssh  oracle@host3.myopnnetwork.com
    ssh  oracle@host4.myopnnetwork.com

在辅助 OCI 主机中复制文件夹结构

此时,Oracle Cloud Infrastructure (OCI) SOA 计算实例已挂载了 FSS。复制内容之前,请为 EDG 创建适当的文件夹结构。

以下示例显示了用于创建本文档的 EDG 环境使用的 EDG 文件夹结构的命令。
  1. oracle 用户身份在 OCI SOAHOST1 中创建文件夹。
    mkdir -p  /u01/oracle/products/fmw
    mkdir -p  /u01/oracle/products/jdk
    mkdir -p  /u01/oracle/products/oraInventory
    mkdir -p /u02/oracle/config
    mkdir -p /u01/oracle/config/domains/mysoadomain
    mkdir -p /u01/oracle/config/applications/mysoadomain
    mkdir -p /u01/oracle/config/dp/mysoadomain
    mkdir -p /u01/oracle/config/keystores
  2. oracle 用户身份在 OCI SOAHOST2 中创建文件夹。
    mkdir -p  /u01/oracle/products/fmw
    mkdir -p  /u01/oracle/products/jdk
    mkdir -p  /u01/oracle/products/oraInventory
    mkdir -p /u02/oracle/config

ORACLE_HOMEJAVA_HOME 复制到辅助主机

ORACLE_HOMEJAVA_HOME 从主主机复制到辅助主机。

ORACLE_HOMEJAVA_HOME 通常与 oraInventory 一起位于同一产品文件夹下。有关先前标识的位置,请参阅标识文件夹和文件系统对象

  1. 将产品文件夹从内部部署主 SOAHOST1 复制到远程 SOAHOST1。
  2. 从内部部署主 SOAHOST2 复制产品主目录文件夹,并将其保存到远程 SOAHOST2。对任何其他计算实例重复上述操作。
  3. 从主主机复制 /etc/oraInst.loc 文件并将其保存到辅助主机。
    此文件仅包含 oraInventory 的位置,不会随着时间的推移而更改,因此此副本是一个一次性操作。

    在提供的示例中,oraInventory/u01/oracle/products 下,随 jdk 和 Oracle 主目录一起复制。如果 oraInventory 位于其他位置,请确保同时将其复制到辅助主机。

    注:

    您可以找到一个示例脚本,该脚本使用 rsync 将产品文件夹从内部部署主 SOAHOST 1 复制到下载代码中的远程 SOAHOST 1。重复此操作,将产品主目录复制到其他辅助计算实例(即从 SOAHOST 2 复制到远程 SOAHOST 2)。

将 WebLogic 域配置文件夹复制到备用主机

将 WebLogic 域共享配置文件夹和专用配置文件夹复制到 Oracle Cloud Infrastructure (OCI) SOA 主机。

  1. 将 WebLogic 域共享配置文件夹从内部部署主 SOAHOST1 复制到远程 OCI SOAHOST1。
    WebLogic 域共享配置位于由 SHARED_CONFIG_DIR 变量设计的位置,其中包含共享配置文件夹,如 APPLICATION_HOMEDEPLOY_PLAN_HOMEKEYSTORE_HOMEASERVER_HOME

    注:

    您可以将共享配置文件夹从内部部署主 SOAHOST1 复制到远程 SOAHOST1。这是一个共享文件夹,因此只需将其复制到 OCI SOA 主机之一即可。

    Download Code(下载代码)中提供了示例脚本。

  2. 复制内部部署主 SOAHOST1 的 WebLogic 域专用配置文件夹并将其保存到远程 OCI SOAHOST1
    WebLogic 专用配置位于变量 PRIVATE_CONFIG_DIR 指定的位置,其中包含 MSERVER_HOMENM_HOME 文件夹。这些文件夹不是共享文件夹,它们特定于每个 SOA 主机(专用)。因此,必须为每个服务器执行复制操作 - 必须将内部部署 SOAHOST1 的专用配置复制到 OCI SOAHOST1,将内部部署 SOAHOST2 的专用配置复制到 OCI SOAHOST2,依此类推。

    注:

    下载代码中,您可以找到一个示例脚本,该脚本使用 rsync 将专用配置文件夹从内部部署主 SOAHOST 1 复制到远程 SOAHOST 1。

复制共享运行时文件夹

如果需要,将共享运行时文件夹复制到 Oracle Cloud Infrastructure (OCI) SOA 主机。

共享运行时文件夹位于变量 ORACLE_RUNTIME 指定的位置。有关先前标识的位置,请参阅标识文件夹和文件系统对象

注:

建议使用 JDBC 持久性存储将 JMS 持久性存储和 TLOGS 存储存储在数据库中。由于它们位于数据库中,因此它们会使用 Oracle Data Guard 自动复制到辅助系统。
  • 由于这是运行时信息,通常不需要在设置阶段复制它。但是,如果您确实需要将此文件夹复制到备用主机,则可以采用用于复制 WebLogic 域共享配置文件的类似方法来复制内容。