关于 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 下载数据库客户端安装所需的一些软件包。
  • 必须在脚本的“CUSTOMIZABLE VARIABLES(可定制变量)”部分中提供环境值(用户名、路径等)。
  • 变量 DBFS_CONFIG_DIR 用于定制 DBFS 配置对象(Wallet、tnsnames.ora 和用于装载 DBFS 的脚本)的位置。使用未在站点之间复制的位置,因此每个站点都有自己的配置。请勿将其放在域文件夹下,因为在复制域时,该文件夹将复制到辅助文件夹。
  • 必须在主中间层主机(指向主数据库)和辅助中间层主机(指向辅助数据库)中运行脚本。您将看到警告,因为某些内容已创建(数据库用户、表空间等),但您可以忽略这些消息。
  • 要在辅助中间层主机中执行配置,必须以快照备用模式打开备用数据库。这是因为只有在数据库处于打开状态时才能装载 DBFS。当 Oracle Data Guard 不是 Active 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_dr_setup_root.sh 作为示例脚本,该脚本可安装数据库客户机、在数据库中创建 DBFS 方案、配置客户机对象以及在中间层主机中挂载 DBFS 文件系统。
  • 由于复制到 DBFS 装载的内容存储在数据库中,因此它需要在数据库中增加容量。
  • 建议不要将域配置或二进制文件直接存储在 DBFS 挂载中。这会在 Oracle Fusion Middleware 文件与数据库之间创建非常强的相关性。相反,建议将 DBFS 用作辅助文件系统:中间暂存文件系统,用于将要复制到备用站点的信息放置到备用站点。复制到备用数据库有两个步骤:从主数据库的源文件夹到中间 DBFS 挂载,然后在备用站点中从 DBFS 挂载到备用数据库的目标文件夹。
  • 只有在数据库处于打开状态时,才能装载 DBFS。当 Oracle Data Guard 不是 Active Data Guard 时,备用数据库处于装载状态。因此,在这种情况下,要访问备用站点中的 DBFS 挂载,必须将数据库转换为快照备用。使用 Active Data Guard 时,可以挂载文件系统以进行读取,并且无需转换为快照。

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

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

转到下载代码以获取用于下载脚本的链接。