Oracle 数据库是一款广受欢迎的企业级数据库,支持任务关键型应用。本页介绍了适用于 Oracle 数据库环境的备份和灾难恢复服务。相关架构可向 Google Cloud提供应用一致的永久增量备份,以及对 TB 级 Oracle 数据库的即时恢复和克隆。
工作原理
以下部分介绍了数据捕获和数据恢复过程。
数据捕获
Backup and DR Agent 部署在 Oracle 服务器中。
在数据库服务器上装载暂存磁盘。
调用 RMAN 增量 API 来复制已更改的块。
调用 RMAN 增量合并以创建新的虚拟完整备份。
从数据库服务器卸载暂存磁盘。
Backup and DR 会创建内部快照。实时合成数据集已推出。
数据恢复
备份和灾难恢复功能会通过 ISCSI 或 NFS 立即挂载可重写的暂存磁盘,并使数据库上线。
Oracle 备份 API
备份和灾难恢复使用以下 Oracle API:
RMAN 映像副本:数据文件的映像副本恢复速度要快得多,因为数据文件的物理结构已存在。RMAN 指令 BACKUP AS COPY 会为整个数据库的所有数据文件创建映像副本,并保留数据文件的格式。
ASM 和 CRS API:ASM 备份磁盘组使用 ASM 和 CRS API 进行管理。
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。 |
最佳做法 | 请勿允许在备份和灾难恢复作业期间清除 Oracle 归档日志,也不允许备份和灾难恢复服务在旧版备份 RMAN 作业期间清除归档日志。 如果旧版软件正在管理归档日志,请在备份和灾难恢复备份作业开始时在旧版备份软件中停用归档日志清除作业,并在结束时恢复清除作业,或者在清除前至少保留 24 小时的归档日志。 |
原因 | 如果在数据库备份作业期间清除了归档日志,则该数据库备份映像可能无法恢复。 |
RMAN 元数据与旧版备份冲突,导致 Backup and DR Service 备份过时
默认情况下,Backup and DR Service 应用详情和设置中的参数 DO NOT UNCATALOG
设为 No。Backup and DR Service 数据文件备份会在备份开始时编入目录,并在作业结束时取消编入目录。将此属性设置为 Yes 可在每次备份作业后保留 RMAN 数据文件备份目录,从而优化包含大量数据文件的数据库的备份时间。不过,它会干扰其他备份产品。
要求 | 将“备份和灾难恢复应用详情和设置”参数 Do not uncatalog 设置为 No。 |
最佳做法 | Backup and DR Service 数据库备份是永久增量备份。为此,您可以将 RMAN 映像复制与 RMAN 增量合并 API 搭配使用。第一个 RMAN 备份是 Backup and DR 备份磁盘上数据库数据文件的完整映像副本,其中包含备份磁盘的内部快照。后续 RMAN 增量备份会在备份磁盘和 DR 备份磁盘上使用 RMAN 增量合并运行,并在快照之前使用增量更改更新上次完整备份。不过,如果在备份和灾难恢复数据库备份之后运行第三方数据库备份或备份交叉检查,则备份和灾难恢复备份下的所有备份数据文件都会在 RMAN 元数据下标记为已过时。将备份和灾难恢复应用详情和设置参数 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 块更改跟踪功能可通过确定哪些块已更改来实现快速数据库备份。备份操作中仅包含已更改的块。
备份和灾难恢复服务的“永久增量”模式支持启用或停用 BCT 运行的数据库。如果未启用 BCT,增量备份时间会延长。
在数据库级别启用了更改块跟踪。
Oracle 会将每个数据文件中已更改的块记录在跟踪文件中,该文件是存储在数据库区域中的小型二进制文件。
启用 BCT 后,RMAN 会使用 BCT 文件获取要进行增量备份的已更改数据块。
如果未在数据库上启用更改块跟踪,则在增量备份期间,RMAN 会扫描数据文件中的每个块,以查找数据库中的所有数据文件。
保护备份和灾难恢复一致性组中的 Oracle 数据库
在大多数配置中,一个一致性组可以包含一个 Oracle 数据库应用以及来自 Oracle 服务器的任意数量的文件系统应用。对于测试开发和其他业务敏捷性应用场景中的 Oracle 数据库,建议选择一致性组。
支持 TDE 的 Oracle 数据库
Backup and DR Service 支持在各种配置下为 Oracle 数据库提供各种提取和呈现方法。这包括配置了透明数据加密 (TDE) 的 Oracle 数据库的备份、恢复和应用感知挂载操作。
对于启用了 TDE 的 Oracle 数据库,源备份主机上的钱包文件必须可供任何应用感知型挂载的目标主机使用。这可以通过多种方式完成。
- 可以将钱包文件从备份源服务器复制到目标挂载服务器,并将 Oracle 配置为访问这些文件。
- 如果 Oracle 钱包文件存储在网络上的中央共享设备上,则应配置 Appaware 挂载目标 Oracle 实例以访问这些文件。
如果在备份和灾难恢复服务备份期间通过设置“Oracle 配置文件位置”高级设置捕获了 Oracle 钱包文件,则可以按照以下步骤检索钱包文件:
使用 Oracle Exadata 数据库或 Oracle ExaCC 进行备份和灾难恢复
备份/恢复设备支持通过 iSCSI 或 Oracle dNFS 协议捕获和呈现 Exadata 数据。
备份/恢复设备通过 iSCSI 或 Oracle dNFS 连接到网络(而非数据路径)。
RMAN 备份使用 RMAN 直接写入备份和灾难恢复以文件系统或 ASM 磁盘组形式提供的副本数据存储区。
数据捕获格式:在 ASM 磁盘组(仅限 iSCSI)下或在 文件系统(dNFS 或 iSCSI)下。
Backup and DR 增量永久备份使用 RMAN 增量更新的备份,滚动向前图片副本备份。
备份和灾难恢复捕获 Exadata 数据和 ExaCC
必须在 Exadata 服务器上安装 Backup and DR 代理,以便与备份/恢复设备进行通信,并调用 RMAN API 进行数据库备份。
Backup and DR 代理会将 Backup and DR 磁盘作为 iSCSI 目标公开并映射到 Exadata 服务器。数据捕获格式可位于 ASM 磁盘组下或 文件系统下。
在用户空间下的每个 Exadata 主机上安装备份和灾难恢复代理,以便与备份/恢复设备进行通信,并调用 RMAN API 进行数据库备份。
ASM 磁盘组下的捕获格式
在备份期间,Backup and DR 代理会执行以下操作:
将逻辑磁盘映射并公开为 iSCSI 目标,以便将其提供给 Exadata 服务器。
将备份和灾难恢复磁盘路径添加到 ASM 磁盘字符串。
确保 ASM 磁盘字符串已添加到参数文件中,并且不存在于 CRS 配置文件中。
使用备份和灾难恢复磁盘创建 ASM 磁盘组作为外部冗余。
使用 RMAN 的 RMAN 备份,直接将数据写入备份/恢复设备以 ASM 磁盘组或文件系统形式提供的副本数据存储区。
使用 RMAN 增量更新的备份进行永远增量备份,滚动向前映像副本备份。
使用 dNFS 在文件系统下捕获格式
Oracle Direct NFS (dNFS) 是一种经过优化的 NFS(网络文件系统)客户端,可提供对位于 NAS 存储设备(可通过 TCP/IP 访问)上的 NFS 存储的更快速、更可伸缩的访问。Direct NFS 直接内置于数据库内核中,就像 ASM 一样。
dNFS 协议可用作 NFS 共享,用于基于文件系统的备份。
备份和灾难恢复代理会将备份和灾难恢复磁盘公开并映射到 Exadata 服务器作为 NFS 共享。
在 Exadata 服务器上使用 dNFS 的前提条件:
在 Exadata 服务器上启用 dNFS:
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk nfs on
重启数据库。
使用 RMAN API 将数据库备份到备份/恢复设备提供的 dNFS 共享上的文件系统。
在目标数据库服务器重新启动后,将受备份和灾难恢复保护的 ASM 磁盘组恢复为在线状态
如果任何已挂载备份和灾难恢复副本的数据库服务器重新启动,或者在重新启动/崩溃时数据库正在进行备份和灾难恢复,请按照以下步骤重新挂载备份和灾难恢复磁盘组:
检查目标数据库服务器是否已恢复,以及 ASM 和 RAC 系统是否也已启动。
重启 Backup and DR 代理(以 root 身份)。
设置 ASM 环境。
登录 ASM
sqlplus
并检查磁盘组状态:select name, state from v$asm_diskgroup where name = '<dg name>';)
如果未挂载,请挂载磁盘组:
alter diskgroup <dg name> mount;
登录 Oracle OS 并设置数据库环境,然后启动数据库。
后续步骤
适用于 Oracle 的备份和灾难恢复服务的其他文档
- 适用于 Oracle 数据库的备份和灾难恢复
- 保护 Oracle 数据库的前提条件
- Oracle 补丁和已知问题
- 准备 Oracle 数据库以进行保护
- 发现和保护 Oracle 数据库
- 设置应用详情和设置
- 将 dNFS 与备份和灾难恢复搭配使用
- 保护发现的 Oracle 数据库
- 将 Oracle 数据库作为标准挂载点装载
- 创建 Oracle 数据库的即时虚拟副本
- 恢复和恢复 Oracle 数据库
- 使用“装载和迁移”功能即时恢复 Oracle 数据库
- 使用备份和灾难恢复工作流预配环境