Backup and DR Service for Oracle

Oracle 数据库是一种热门的企业级数据库,可支持任务关键型应用。本页介绍了适用于 Oracle 数据库环境的 Backup and DR Service。相关联的架构可提供应用一致的永久增量备份到 Google Cloud,以及对 TB 级 Oracle 数据库的即时恢复和克隆。

工作原理

以下部分介绍了数据捕获和数据恢复流程。

数据捕获

  1. Backup and DR 代理部署在 Oracle 服务器中。

  2. 在数据库服务器上装载临时磁盘。

  3. 调用 RMAN 增量 API 以复制已更改的块。

  4. 调用 RMAN 增量合并以创建新的虚拟完整备份。

  5. 从数据库服务器卸载临时磁盘。

  6. Backup and DR 会拍摄内部快照。时间点合成完整备份已就绪。

数据恢复

Backup and DR 会通过 ISCSI 或 NFS 立即装载可重写的暂存磁盘,并使数据库联机。

Oracle 备份 API

Backup and DR 使用以下 Oracle API:

  • RMAN 映像副本:数据文件的映像副本恢复速度要快得多,因为数据文件的物理结构已存在。 RMAN 指令 BACKUP AS COPY 会为整个数据库的所有数据文件创建映像副本,并保留数据文件的格式。

  • ASM 和 CRS API:使用 ASM 和 CRS API 管理 ASM 备份磁盘组。

  • RMAN 归档日志备份 API:生成的归档日志会备份到暂存磁盘,并从生产归档位置完全清除。

将 Backup and DR Service 与其他备份产品搭配使用时,尽量减少冲突

Backup and DR Service 可以与从生产数据库捕获数据的旧版产品共存。以下最佳实践有助于提升您的体验:

Oracle 数据库备份时间表

最佳实践 安排 Backup and DR Service 数据库备份作业在旧版备份软件应已完成的时间开始。 请勿安排旧版备份软件在 Backup and DR Service 数据库备份作业正常完成后立即运行。
原因 如果旧版备份作业和 Backup and DR Service 数据库备份作业同时运行,可能会对数据库服务器的性能产生严重影响,导致不稳定甚至中断。此外,对于 Oracle,这可能会导致一个或两个解决方案的备份映像无效。

Oracle 归档日志管理

Oracle 使用在数据库备份期间生成的归档日志来确保相应备份的一致性和可恢复性。因此,如果在数据库备份作业期间清除归档日志,则该备份副本将无法恢复。

要求 只能有一个系统(旧版备份软件或 Backup and DR Service)管理(捕获和/或截断/清除)日志。
最佳做法 不允许在 Backup and DR 作业期间清除 Oracle 归档日志,也不允许 Backup and DR 服务在旧版备份 RMAN 作业期间清除归档日志。
如果旧版软件正在管理归档日志,请在 Backup and DR 备份作业开始时停用旧版备份软件中的归档日志清除作业,并在作业结束时恢复清除作业,或者至少保留归档日志 24 小时后再清除。
原因 如果在数据库备份作业期间清除归档日志,则该数据库备份映像可能无法恢复。

RMAN 元数据与旧版备份发生冲突,导致 Backup and DR Service 备份过时

默认情况下,Backup and DR Service 应用详情和设置中的参数 DO NOT UNCATALOG 设置为 No。Backup and DR 数据文件备份会在备份开始时编入目录,并在作业结束时从目录中移除。如果将此参数设置为 Yes,则在每个备份作业完成后,RMAN 数据文件备份目录会保持编入目录的状态,从而优化包含大量数据文件的数据库的备份时间。不过,它会干扰其他备份产品。

要求 将 Backup and DR 应用详情和设置参数 Do not uncatalog 设置为 No
最佳做法 Backup and DR Service 数据库备份是永久增量备份。这是通过将 RMAN 映像复制与 RMAN 增量合并 API 结合使用来实现的。 第一个 RMAN 备份是 Backup and DR 备份磁盘上数据库数据文件的完整映像副本,其中包含备份磁盘的内部快照。 后续 RMAN 增量备份在 Backup and DR 备份磁盘上运行 RMAN 增量合并,在快照之前使用增量更改更新上次完整备份。不过,如果第三方数据库备份或备份交叉检查在 Backup and DR 数据库备份之后运行,那么 Backup and DR 备份下的所有备份数据文件都会在 RMAN 元数据下标记为过时。如果将 Backup and DR 应用详情和设置参数 Do not uncatalog 设置为 Yes,则会导致以下错误:Failed to catalog image copies from staging device 和备份失败。将 Do not uncatalog 设置为 No,以便与其他旧版备份产品共存。
原因 默认情况下,参数 Do not uncatalog> in Backup and DR application details & settings is set to No. Setting this to Yes interferes with other backup products.

Oracle 数据库块更改跟踪 (BCT)

Oracle 块更改跟踪功能可通过识别哪些块已更改来快速备份数据库。备份操作仅包含已更改的块。

  • Backup and DR Service 永久增量支持启用或停用 BCT 的数据库。如果未启用 BCT,增量备份时间会增加。

  • 在数据库级别启用块更改跟踪。

  • Oracle 会在跟踪文件中记录每个数据文件中的已更改块,该跟踪文件是一个存储在数据库区域中的小型二进制文件。

  • 启用 BCT 后,RMAN 会使用 BCT 文件获取增量备份的已更改块。

  • 如果未在数据库上启用“更改块跟踪”,RMAN 会在增量备份期间扫描数据库中所有数据文件中的每个块。

保护 Backup and DR 一致性组中的 Oracle 数据库

在大多数配置中,一致性组可以包含单个 Oracle 数据库应用和来自 Oracle 服务器的任意数量的文件系统应用。对于测试开发和其他业务敏捷性应用场景中的 Oracle 数据库,建议选择一致性组。

使用 TDE 的 Oracle 数据库

Backup and DR Service 支持各种捕获和呈现方法,适用于各种配置下的 Oracle 数据库。这包括配置了透明数据加密 (TDE) 的 Oracle 数据库的备份、恢复和应用感知装载操作。

对于使用 TDE 的 Oracle 数据库,源备份主机的钱包文件必须可供任何应用感知型装载的目标主机使用。您可以通过多种方式实现此目的。

  • 钱包文件可以从备份源服务器复制到目标装载服务器,并配置 Oracle 以访问这些文件。
  • 如果 Oracle 钱包文件存储在网络上的中央共享设备中,则应将 Appaware 装载目标 Oracle 实例配置为可访问这些文件。
  • 如果在 Backup and DR Service 备份期间,通过设置“Oracle 配置文件位置”高级设置捕获了 Oracle 钱包文件,则可以按照以下步骤检索钱包文件:

    1. 将数据库标准装载到目标主机。
    2. 将钱包文件从标准数据库装载复制到目标主机,并配置 Oracle 以使用这些文件。
    3. 从目标主机卸载数据库
    4. 对数据库执行到目标主机的应用感知装载

使用 Oracle Exadata 数据库或 Oracle ExaCC 进行备份和灾难恢复

备份/恢复设备支持通过 iSCSI 或 Oracle dNFS 协议捕获和呈现 Exadata 数据。

  • 备份/恢复设备通过网络中的 iSCSI 或 Oracle dNFS(而非数据路径)进行连接。

  • RMAN 备份使用 RMAN 直接写入由 Backup and DR 作为文件系统或 ASM 磁盘组提供的副本数据存储区。

  • 数据捕获格式:在 ASM 磁盘组(仅限 iSCSI)下或在文件系统(dNFS 或 iSCSI)下。

  • Backup and DR 永久增量备份使用 RMAN 增量更新的备份,即滚动前进映像副本备份。

Backup and DR 对 Exadata 数据和 ExaCC 的捕获

必须在 Exadata 服务器上安装 Backup and DR 代理,以便与备份/恢复设备进行通信,并调用 RMAN API 进行数据库备份。

Backup and DR 代理将 Backup and DR 磁盘作为 iSCSI 目标公开并映射到 Exadata 服务器。数据捕获格式可以是 ASM 磁盘组,也可以是文件系统

在用户空间下,在每个 Exadata 主机上安装 Backup and DR 代理,以促进与备份/恢复设备的通信,并调用 RMAN API 进行数据库备份。

ASM 磁盘组下的捕获格式

在备份期间,Backup and DR 代理会执行以下操作:

  1. 将逻辑磁盘映射并公开到 Exadata 服务器,作为 iSCSI 目标。

  2. 将备份和灾难恢复磁盘路径添加到 ASM 磁盘字符串。

  3. 确保 ASM 磁盘字符串已添加到参数文件,并且不存在于 CRS 配置文件中。

  4. 使用 Backup and DR 磁盘创建具有外部冗余的 ASM 磁盘组。

    • 使用 RMAN 直接写入备份/恢复设备提供的作为 ASM 磁盘组或文件系统的副本数据存储区的 RMAN 备份。

    • 使用 RMAN 增量更新的备份(向前滚动映像副本备份)进行“永远增量”备份。

使用 dNFS 时文件系统下的捕获格式

Oracle Direct NFS (dNFS) 是一种经过优化的 NFS(网络文件系统)客户端,可提供更快、更可伸缩的 NFS 存储访问,该存储位于 NAS 存储设备上(可通过 TCP/IP 访问)。Direct NFS 直接内置于数据库内核中,就像 ASM 一样。

dNFS 协议可用于基于文件系统的备份,作为 NFS 共享。

Backup and DR 代理会将 Backup and DR 磁盘公开并映射到 Exadata 服务器,作为 NFS 共享。

Exadata 服务器上 dNFS 的前提条件:

  • 在 Exadata 服务器上启用 dNFS:

    cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk nfs on

  • 重启数据库。

    使用 RMAN API 将数据库备份到备份/恢复设备提供的 dNFS 共享上的文件系统。

在重新启动目标数据库服务器后,使受 Backup and DR 保护的 ASM 磁盘组重新联机

在任何数据库服务器重启后(如果已装载 Backup and DR 副本),或者在重启/崩溃时数据库正在进行 Backup and DR 备份,请按照以下步骤操作,以恢复 Backup and DR 磁盘组装载:

  1. 检查目标数据库服务器是否已恢复运行,以及 ASM 和 RAC 系统是否也已恢复运行。

  2. 重启 Backup and DR 代理(从根用户)。

  3. 设置 ASM 环境。

  4. 登录 ASM sqlplus 并检查磁盘组状态:

    select name, state from v$asm_diskgroup where name = '<dg name>';)
    
  5. 如果未装载,请装载磁盘组:alter diskgroup <dg name> mount;

  6. 登录 Oracle 操作系统并设置数据库环境,然后启动数据库。

后续步骤

了解备份 Oracle 数据库的前提条件

Backup and DR for Oracle 的其他文档