实施 OCI 文件存储复制

此实施使用 Oracle Cloud Infrastructure File Storage 复制功能,该功能为 OCI File Storage 文件系统提供了一个自动化的跨区域副本。

实施 OCI File Storage 复制的优点包括:

  • 与其他复制案例一样,无需定期创建和运行脚本。设置复制后,Oracle Cloud Infrastructure 将自动执行该复制。
  • 它是一种通用解决方案,适用于任何中间层系统挂载的任何 OCI 文件存储文件系统。如果您有多个使用 OCI File Storage 的系统,则可以在所有这些系统中使用相同的方法。
  • 有关复制的文件系统的信息是主文件的精确副本;将复制文件系统中的所有文件。

实施 OCI File Storage 的注意事项包括:

  • 它需要在辅助系统中挂载复制的 OCI File Storage 。无法直接挂载目标文件系统;您必须先克隆它们,然后才能挂载克隆的文件系统。但是,您可以使用 OCI Full Stack Disaster Recovery 服务来自动执行切换、故障转移和验证操作中的这些步骤,从而克服这种复杂性。
  • 对于许多系统来说,这项技术可能还不够。如果系统具有更多类型的存储(例如块存储卷),则需要使用不同的副本技术来存储这些存储。

为 OCI 文件存储设置复制

要实施 OCI File Storage 复制,需要执行以下步骤:

  • 使用 OCI 控制台在辅助站点中创建目标 OCI 文件系统。
  • 在主 OCI 文件系统中启用副本,以指向相应的目标 OCI 文件系统。
  • 连接到辅助区域的中间层主机,并卸载要从主数据库复制的文件系统。
  • 使用 OCI 控制台 UI 分离和放弃将从主数据库复制的 OCI 文件系统。
  • 实施一种方法来管理特定于站点的信息,方法是在副本之后使用相应的信息进行更新。

示例 1:使用 OCI File Storage 复制来复制中间层配置和运行时

注意:

此示例适用于任何中间层系统。作为参考,它使用遵循 Oracle Fusion Middleware Enterprise Deployment Guide 的优秀实践的 Oracle WebLogic Server 系统。此系统具有两个 OCI File Storage 文件系统:一个用于共享配置(WebLogic 管理域、密钥库等),另一个用于运行时数据。但是,您可以执行以下相同的步骤来复制中间层的任何 OCI 文件存储文件系统。

执行以下操作来设置 OCI File Storage 文件系统的跨区域副本:

  1. 备份特定于每个站点的信息。
    文件系统可以包含具有特定于每个站点的信息的文件,例如与数据库或 LDAP 服务器的连接字符串。使用 OCI File Storage 副本时,复制的文件系统是主文件的精确副本;您无法跳过副本中的特定文件或文件夹。因此,您必须通过调整每个站点上的信息来管理这些差异。有多种方法:
    • 可以使用特定于站点的信息在文件中执行字符串搜索和替换。
    • 您可以在复制之前备份此信息,然后将其恢复。

    此时,在启用副本之前,在复制的块存储卷中标识并备份任何包含特定于站点的信息的文件。在不在复制的块存储卷下的位置创建备份副本;否则,将覆盖该副本。

    提示:

    Oracle WebLogic 示例

    例如,复制包含 WebLogic domain 的文件系统时,有一些文件包含用于连接到数据库的信息。此信息位于 TNS 管理文件夹中。检查 WebLogic 数据源中的 tns_admin 属性以标识该文件夹。本文档提供了用于管理此问题的脚本,具体取决于方案:

    • 如果系统连接到 Oracle Base Database Service 或 Oracle Exadata Database Service,则只需在切换和故障转移操作期间更新辅助中间层系统的 tnsnames.ora 文件中的数据库连接字符串即可。本文档为此提供了示例脚本。
    • 如果系统连接到 Autonomous Database ,则 TNS 管理文件夹包含更多对象(信任存储和密钥库)。它们在主数据库和备用数据库上是不同的,无法使用简单的字符串替换来更新。本文档提供了一个脚本,用于恢复 TNS 文件夹的备份副本。

    此时,您只需要对 TNS 文件夹信息执行备份。

  2. 确定主站点上的 OCI 文件存储文件系统信息。
    • 对于要复制的 OCI File Storage 文件系统,请确定主中间层主机的名称、挂载目标、导出和挂载点。
    • 转到 OCI 控制台,选择您的主要区域,然后选择区间。
    • 依次导航到 StorageFile StorageFile Systems 并标识文件系统。
    • 保存它们所在的 nameexportmount targetAD

    通过检查主机的 /etc/fstab 来确定挂载导出和挂载点的主机。

    提示:

    Oracle WebLogic 示例

    例如,在遵循企业部署指南的 Oracle WebLogic Server 系统中:

    OCI 文件系统 装载目标 导出路径 AD 主机与挂载点
    configFS mt1_region1 /exports/configFS AD1
    • apphost1, /u01/oracle/config
    • apphost2, /u01/oracle/config
    runtimeFS mt1_region1 /exports/runtimeFS AD1
    • apphost1, /u01/oracle/runtime
    • apphost2,/u01/oracle/runtime
  3. 在辅助站点上标识 OCI File Storage 文件系统的信息。
    重复上一步中描述的步骤,以收集有关辅助站点的相同信息。

    提示:

    Oracle WebLogic 示例

    例如,在遵循 Enterprise Deployment Guide 的 WebLogic 系统中:

    OCI 文件系统 装载目标 导出路径 AD 主机与挂载点
    configFS mt1_region2 /exports/configFS AD1
    • apphost1, /u01/oracle/config
    • apphost2, /u01/oracle/config
    runtimeFS mt1_region2 /exports/runtimeFS AD1
    • apphost1, /u01/oracle/runtime
    • apphost2, /u01/oracle/runtime
  4. 从辅助中间层主机中卸载原始 OCI File Storage 文件系统。
    对于辅助服务器中的每个中间层主机,请卸载将从主服务器复制的文件系统。例如:
    [opc@host ~]$ sudo umount  /u01/oracle/config
    [opc@host ~]$ sudo umount  /u01/oracle/runtime

    确保没有运行 oracle 进程;否则,卸载将失败。在辅助节点中的所有中间层节点中重复这些步骤。

    不要从 /etc/fstab 文件中删除这些挂载的项。如果始终为复制的文件系统使用相同的值作为挂载目标和导出名称,则这些条目在整个生命周期中都是有效的。

  5. 删除或重命名辅助文件中的原始 OCI File Storage 文件系统。
    只能将从未导出的文件系统设置为 OCI File Storage 复制的目标文件系统。因此,挂载在辅助中间层主机上的原始文件系统不能用作复制目标。将不再使用它们;现在删除它们(或稍后重命名和删除),方法是删除导出并终止文件系统。

    注意:

    请勿删除挂载目标。它们将用于导出复制的文件系统。
  6. 在主文件系统中启用副本。
    在主目录中,为必须复制的每个 OCI File Storage 文件系统启用副本。
    1. 转到 OCI 控制台,选择您的主要区域,然后选择区间。
    2. 依次选择 StorageFile StorageFile Systems
    3. 单击 file system 名称,导航到 Replications(复制),然后单击 Create Replication(创建复制)
      为复制提供名称。
    4. 选择创建新目标文件系统,并提供以下详细信息:
      • 名称:将在辅助区域中创建的文件系统副本的名称。使用明确标识为 replica 的名称,例如:configFS_replica
      • 目标区域:辅助系统的区域。
      • 可用性域:目标文件系统的可用性域。它必须与要导出的挂载目标相同。
      • 区间:目标文件系统的区间。
      • Replication interval(复制间隔):确定数据复制频率的间隔(分钟)。

    注意:

    或者,可以在辅助文件系统之前提前创建目标文件系统,并在此处提供 OCID。
  7. 如果需要,准备脚本以替换特定于每个站点的信息。

    仅当 OCI File Storage 文件系统包含特定于每个站点的信息时,此操作才适用。否则,无需执行任何操作。

    根据您的特定要求(例如,执行搜索和替换,或恢复特定于站点的数据的备份副本),创建脚本来替换本地站点信息。请确保将这些脚本存储在未复制的文件夹中。

    重要提示此时,请勿运行脚本。下次执行验证、切换或故障转移时,将使用该脚本。

    提示:

    Oracle WebLogic 示例

    例如,复制包含 Oracle WebLogic 域的文件系统时。在切换或故障转移期间,必须对复制的配置执行替换以指向本地数据库。本文档提供了自动执行此替换的示例脚本。

    数据库类型 替换脚本和下载步骤 准备步骤
    Oracle Base Database ServiceOracle Exadata Database Service

    replacement_script_BVmodel.sh

    1. 转到 GitHub 中的 Oracle MAA 存储库,网址为 https://github.com/oracle-samples/maa
    2. 下载 wls_mp_dr 目录中的所有脚本。

      该脚本位于文件夹 wls_mp_dr/Block_Volume_Replica_Method

    3. 复制到所有中间层主机。

    此脚本将替换数据库连接字符串。它还会清除 WebLogic 服务器(.lck 和 .state)的状态文件以进行干净启动。

    通过为每个站点中的数据库提供本地和远程值,在每个主机中使用相应的值对其进行编辑和定制。

    请注意,这些值因站点而异。在 site1 主机中对其进行定制时,“LOCAL(本地)”值引用 site1 的值,“REMOTE(移动)”值引用 site2 的值。在 site2 主机中定制脚本时,“LOCAL(本地)”值将引用 site2,将“REMOTE(远程)”值引用到 site1。

    转到 GitHub https://github.com/oracle-samples/maa 中的 Oracle MAA 存储库

    下载 app_dr_common 目录中的所有脚本。

    下载 fmw-wls-with-adb-dr 目录中的所有脚本。

    复制到所有中间层主机。这些脚本相互调用。将两个目录的所有脚本放置在同一文件夹中。
    Oracle Autonomous Database

    fmwadb_switch_db_conn.sh

    1. 转到 GitHub https://github.com/oracle-samples/maa 中的 Oracle MAA 存储库
    2. 下载 app_dr_common 目录中的所有脚本。
    3. 下载 fmw-wls-with-adb-dr 目录中的所有脚本。
    4. 复制到所有中间层主机。

    这些脚本相互调用。将两个目录的所有脚本放置在同一文件夹中。

    此脚本将 Oracle WebLogic Server 使用的 TNS 管理文件夹替换为作为输入的文件夹。它还会更新数据源中的 wallet 密码属性。

    您无需编辑脚本。文件夹和口令的值将作为输入传递。

    要运行该脚本:

    ./fmwadb_switch_db_conn.sh WALLET_DIR WALLET_PASSWORD

    其中 WALLET_DIR 是包含用于连接到本地数据库的 tnsnames.ora、密钥库和信任库文件的文件夹。确保副本中未覆盖 WALLET_DIR 文件夹。

    此时请勿运行该脚本。

OCI 文件系统复制现已准备就绪。

验证 OCI 文件存储的复制

在切换或故障转移操作中,复制的信息在启动进程之前必须在备用站点中可用且可用。验证辅助系统时(通过在快照模式下打开备用数据库),这也是必需的。

要使复制的 OCI File Storage 文件系统在备用系统中可用,请对每个文件系统执行这些操作。

执行以下步骤以在备用数据库中使用复制的文件系统:
  1. 创建目标文件系统的克隆
    无法直接挂载目标文件系统,必须先克隆该文件系统。
    1. 在辅助文件夹中,导航到存储文件存储,然后导航到文件系统
    2. 单击目标文件系统名称。
    3. File System InformationReplication 部分中,单击 Replication Target 名称链接。
    4. 单击上次快照名称链接。
    5. 单击克隆以根据此快照创建常规文件系统。
    6. 编辑详细信息以提供克隆的名称。
      为了保持一致,请使用与主数据库中的相同名称,例如 configFS
  2. 为克隆的文件系统创建导出
    1. 在克隆的文件系统中,导航到导出
    2. 在辅助中选择挂载目标。
    3. 选择导出名称。
      为了便于切换管理,请使用与主数据库中的导出相同的名称。例如:/exports/configFS
  3. 挂载备用主机中的文件系统。
    1. 如果始终对文件系统使用相同的导出名称和相同的挂载目标,则 /etc/fstab 文件中用于挂载的条目在生命周期内不会更改。
    2. 如果不为文件系统使用相同的导出名称和挂载目标,则必须编辑 /etc/fstab 文件并在每次切换、故障转移和验证中修改该条目。
      以下是 /etc/fstab 条目的示例:
      10.1.80.131:/exports/configFS    /u01/oracle/config  nfs  defaults,nofail,nosuid,resvport 0 0
    3. /etc/fstab 文件包含相应的挂载条目后,在主机中挂载文件系统。
      例如:
      [opc@host opc]# sudo mount -a
    4. 在挂载该文件系统的所有备用主机中重复该操作。
  4. 在所有备用中间层主机上运行替换脚本,以替换辅助中间层主机中特定于站点的信息。

    提示:

    Oracle WebLogic 示例

    例如,在包含 Oracle WebLogic 域的文件系统中:通过在所有备用中间层主机上运行替换脚本,将数据库连接信息更新为指向本地数据库:

    • 如果系统使用 Oracle Base Database ServiceOracle Exadata Database Service ,则脚本为 replacement_script_BVmodel.sh。确保它使用适当的值。
    • 如果系统使用 Oracle Autonomous Database ,则脚本为 fmwadb_switch_db_conn.sh。它需要作为输入,辅助原始 wallet 的路径和 wallet 密码。
  5. 清除服务器的锁定文件。

    复制的文件系统可能包含中间层进程的锁定文件,因为副本在主进程启动时运行。在辅助进程中启动这些进程之前,可能需要清除这些文件。否则,它们可能会阻止中间层进程启动。

    提示:

    Oracle WebLogic 示例

    例如,在包含 Oracle WebLogic 域的文件系统中,${DOMAIN_HOME}/servers/*/data/nodemanager 文件夹中的 .lck.pid.state 文件可能来自主文件夹。在尝试启动节点管理器和服务器之前,请确保已清除这些文件。例如:

    rm -f ${DOMAIN_HOME}/servers/*/data/nodemanager/*.lck
    rm -f ${DOMAIN_HOME}/servers/*/data/nodemanager/*.state
    rm -f ${DOMAIN_HOME}/servers/*/data/nodemanager/*.pid

    您可以将此操作包含在替换脚本中,也可以作为 Oracle WebLogic 启动的上一步操作。

  6. 切换或故障转移操作完成后,必须卸载并删除站点中具有备用角色的 OCI File Storage 文件系统。执行以下步骤可恢复为备用角色。
    在备用站点上完成验证(通过在快照模式下打开备用数据库)并希望将其还原为备用角色时,这也是必需的。
    1. 取消挂载备用站点中从主站点复制的 OCI File Storage 文件系统。
      例如:
      [opc@host opc]# sudo umount /u01/oracle/config
    2. 删除已卸载的文件系统。
      终止备用站点中的已卸载文件系统。不再使用它们。

对 OCI 文件存储执行持续复制

使用此实施时,请遵循这些关于正在进行的复制的建议。

  • OCI 自动在后台执行 OCI File Storage 复制。在生命周期中,您唯一需要做的就是确保主数据库的 OCI File Storage 文件系统已启用副本。
  • 请考虑使用 OCI Full Stack Disaster Recovery 来自动执行切换和故障转移任务。只需单击一下 OCI 控制台,即可运行切换或故障转移计划。简化执行与 OCI File Storage 副本相关的任务非常有用。
  • 复制功能是对快照功能的补充,而不是替换功能。确保同时为 OCI File Storage 文件系统附加一个 snapshot policy 。这将提供跨区域副本之外的数据保护,使您可以将文件系统还原到某个时间点。
  • 维护特定于每个站点的信息并使其保持最新。例如,如果文件系统包含一个文件夹,其中包含要连接到 Autonomous Database 的对象,则维护此文件夹的备份副本。在 wallet 中执行更新时,请确保更新文件夹的备份。这样,它将在后续的切换和故障转移中正确恢复。
  • 切换或故障转移操作后,清除未使用的文件系统并更改副本方向。需要执行以下操作来反转副本方向:
    1. 禁用上一个主数据库中的上一个复制,并清除(删除)新主数据库中的未使用目标文件系统。
    2. 在新主服务器的 OCI File Storage 文件系统中启用副本。
    3. 删除新备用数据库中的未使用文件系统。