关于 Oracle Database 文件系统

Oracle Database File System (DBFS) 利用数据库存储文件的优势,以及数据库在高效管理关系数据方面的优势,为存储在数据库中的文件实施标准文件系统接口。 使用此接口,可以使用对文件执行操作的任何操作系统程序以透明方式访问数据库中的文件。

DBFS 与 NFS 类似,因为它提供的共享网络文件系统类似于本地文件系统,同时具有服务器组件和客户机组件。DBFS 文件系统可以从中间层主机挂载,并作为常规共享文件系统进行访问。

由于 DBFS 挂载所需的配置和维护,DBFS 引入了一些复杂性。必须将数据库客户端安装在装载它的主机中,并且必须在数据库(表空间、用户等)和客户端(Wallet、tnsnames.ora 等)中对某些对象执行初始设置。它需要在数据库中增加容量,因为复制到 DBFS 挂载的内容存储在数据库中。

建议不要直接将域配置或二进制文件存储在 DBFS 挂载中。这将在 Oracle Fusion Middleware 文件与数据库之间产生非常强的依赖性。但是,DBFS 功能有一些对象和操作无法从中受益

关于将 DBFS 用于 runtime 文件夹

您可以将 Oracle Database File System (DBFS) 挂载用于共享运行时数据,作为 NFS 的替代方法。存储在 DBFS 挂载中的任何内容都驻留在数据库中,并且会通过底层 Oracle Data Guard 复制自动复制到备用站点。这样,辅助站点始终具有其同步副本。无需配置运行时内容的其他复制。

要实施此方法,请在所有中间层主机(主主机和辅助主机)中安装数据库客户端。必须对数据库(DBFS 表空间、用户等)和客户端(Wallet、tnsnames.ora 等)中的某些对象执行初始设置。

有关在中间层主机中配置 DBFS 挂载的示例脚本,请参见脚本 dbfs_dr_setup_root.sh 。此脚本将安装数据库客户机,在数据库中创建 DBFS 方案,配置客户机对象,并在中间层主机中挂载 DBFS 文件系统。

转到下载代码以获得下载脚本的链接。

使用此脚本时请注意以下几点:

  • 在运行脚本之前,必须在主机中正确配置 "yum" 实用程序。该脚本使用 yum 下载安装 DB 客户机所需的一些程序包。
  • 您必须在脚本的“CUSTOMIZABLE VARIABLES”部分中提供环境值(用户名、路径等)。
  • 变量 DBFS_CONFIG_DIR 用于定制 DBFS 配置对象(Wallet、tnsnames.ora 和用于挂载 DBFS 的脚本)的位置。使用不在站点之间复制的位置,因此每个站点都有自己的配置。不要将其放在域文件夹下,因为在复制域时,它将复制到辅助文件夹。
  • 必须在主中间层主机(指向主数据库)和辅助中间层主机(指向辅助数据库)中运行脚本。您将看到警告,因为已经创建了一些内容(数据库用户、表空间等),但您可以忽略这些消息。
  • 要在辅助中间层主机中执行配置,必须以快照备用模式打开备用数据库。这是因为只有打开数据库时才能挂载 DBFS。如果 Oracle Data Guard 不是活动数据卫士,则备用数据库处于装载状态。在这种情况下,要访问备用站点中的 DBFS 挂载,必须将数据库转换为快照备用数据库。

在所有中间层主机中配置 DBFS 挂载后,可以将其用作运行时数据的共享文件夹(例如,文件适配器或定制应用程序读取/写入的文件)。您不必手动将此内容复制到辅助站点,它随 Oracle Data Guard 自动复制。如果发生切换或故障转移,则运行时内容在新主数据库以及存储在数据库中的其余信息中可用。

将 DBFS 挂载用于运行时数据的优点:

  • 站点之间的复制是隐式的。主站点的 DBFS 挂载中存储的内容通过 Oracle Data Guard 复制到辅助站点。

缺点:

  • DBFS 性能比 NFS 解决方案(Oracle Cloud Infrastructure File Storage 、Oracle ZFS)的性能差。
  • Oracle 建议在切换后在新主数据库中重新挂载 dbfs,以确保 DBFS 挂载正常运行。如果 DBFS 挂载指向的数据库在一段时间内未打开(例如,当数据库处于备用模式时),则它可能会变得过时并需要重新挂载。

关于使用 DBFS 复制 Oracle WebLogic Server 配置

Oracle Database File System (DBFS) 是可用于复制配置的另一种方法。在这种情况下,可以使用 DBFS 挂载作为中间位置来复制配置。存储在 DBFS 挂载中的任何内容都驻留在数据库中,并且会通过底层 Oracle Data Guard 复制自动复制到备用站点。

此方法利用了 Oracle Data Guard 副本的稳健性。它通过 Oracle 驱动程序的重试逻辑具有良好的可用性,并提供弹性行为。您可以在数据中心之间具有中等或高延迟的情况中使用它。但是,从设置、数据库存储和生命周期的角度来看,将 DBFS 用于配置复制会产生额外的影响:

  • 由于 DBFS 挂载所需的配置和维护,它引入了一些复杂性。它要求将数据库客户端安装在要挂载它的主机中,它要求在数据库(表空间、用户等)和客户端(Wallet、tnsnames.ora 等)中初始设置一些对象。有关安装数据库客户机、在数据库中创建 DBFS 方案、配置客户机对象以及在中间层主机中挂载 DBFS 文件系统的示例脚本,请参见脚本 dbfs_dr_setup_root.sh
  • 它需要在数据库中增加容量,因为复制到 DBFS 挂载的内容存储在数据库中。
  • 建议不要直接将域配置或二进制文件存储在 DBFS 挂载中。这会在 Oracle Fusion Middleware 文件和数据库之间产生非常强的依赖性。建议改用 DBFS 作为 assistance 文件系统:中间暂存文件系统来放置要复制到备用站点的信息。复制到备用数据库有两个步骤:从主数据库的源文件夹到中间的 DBFS 挂载,然后在备用站点中从 DBFS 挂载复制到备用数据库的目标文件夹。
  • 仅当数据库处于打开状态时,才能挂载 DBFS。如果 Oracle Data Guard 不是活动数据卫士,则备用数据库处于装载状态。因此,在这种情况下,要访问备用站点中的 DBFS 挂载,必须将数据库转换为快照备用数据库。使用 Active Data Guard 时,可以挂载文件系统以进行读取,无需转换为快照。

由于这些原因,不建议将 DBFS 作为通用解决方案将所有文件系统对象复制到备用数据库。例如,使用 DBFS 复制二进制文件是一项过分操作。

但是,当存储复制或 rsync 等其他方法不可行时,此方法适合在生命周期内复制一些动态构件,例如域共享配置 (ASERVER_HOME)。请参阅 Oracle WebLogic Server for Oracle Cloud Infrastructure 灾难恢复白皮书,了解如何使用 DBFS 作为帮助文件系统来复制域配置。

转到下载代码以获得下载脚本的链接。