实施 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 控制台,选择您的主要区域,然后选择区间。
    • 依次导航到 Storage 、 File Storage 和 File Systems 并标识文件系统。
    • 保存它们所在的 name 、 export 、 mount target 和 AD 。

    通过检查主机的 /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. 依次选择 Storage 、 File Storage 和 File 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 Service 或 Oracle 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 Information 的 Replication 部分中,单击 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 Service 或 Oracle 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. 删除新备用数据库中的未使用文件系统。