解决方案指南:适用于裸金属解决方案上的 Oracle 的 Google Cloud 备份和灾难恢复

概览

如需为裸金属解决方案环境中的 Oracle 数据库提供弹性,您需要制定明确的数据库备份和灾难恢复策略。为了帮助您达到此要求,Google Cloud 的解决方案架构师团队对 Google Cloud 备份和灾难恢复服务进行了广泛的测试,并将发现结果编入了本指南。因此,我们将向您展示使用备份和灾难恢复服务在裸金属解决方案环境中部署、配置和优化 Oracle 数据库的备份和恢复选项的最佳方法。我们还将分享测试结果中的一些性能数据,以供您作为基准来与自己的环境进行比较。如果您是备份管理员、Google Cloud 管理员或 Oracle DBA,您会发现这份指南非常有帮助。

背景

2022 年 6 月,解决方案架构师团队为一个企业客户进行 Google Cloud 备份和灾难恢复的概念验证 (PoC) 演示。为了达到客户的成功标准,我们需要支持 50 TB Oracle 数据库的恢复,并在 24 小时内恢复该数据库。

这一目标带来了诸多挑战,但参与 PoC 的大多数人都认为我们可以实现这个结果并应该继续进行 PoC。我们认为风险相对较低,因为备份和灾难恢复工程团队过去的测试数据表明这些结果是有可能实现的。我们还与客户分享了测试结果,让他们能够放心地继续进行 PoC。

在 PoC 期间,我们了解了如何在裸金属解决方案环境中成功地同时配置多个元素,包括 Oracle、 Google Cloud 备份和灾难恢复、存储以及区域扩展链路。通过遵循我们总结的最佳实践,您可以成功实现自己目标。

当然,本文档得出的总体结果因人而异,不可一概而论。我们的目标是分享一些知识,包括我们总结的做法、应关注的内容、应避免的问题以及未达到预期效果或结果时应该进行的调查。我们希望本指南能帮助您建立对所述解决方案的信心,并坚信您的要求可以得到满足。

架构

图 1 展示了部署备份和灾难恢复以保护在裸金属解决方案环境中运行的 Oracle 数据库时需要构建的基础架构的简化视图。

图 1:为裸金属解决方案环境中的 Oracle 数据库部署备份和灾难恢复时使用的组件

显示裸金属解决方案区域扩展如何连接到架构中的所有组成部分,包括宿主项目、包含备份和灾难恢复管理控制台的备份和灾难恢复提供方项目、包含备份/恢复设备的备份和灾难恢复使用方项目、包含 Compute Engine 虚拟机的其他服务项目,以及 Cloud Storage。

如上图所示,此解决方案需要以下组成部分:

  • 裸金属解决方案区域扩展 – 使您可以在靠近 Google Cloud 数据中心的第三方数据中心运行 Oracle 数据库,并使用现有的本地软件许可。
  • 备份和灾难恢复服务项目 - 使您可以托管备份/恢复设备,并在 Cloud Storage 存储分区中备份裸金属解决方案和 Google Cloud 工作负载。
  • 计算服务项目 – 为您提供运行 Compute Engine 虚拟机的位置。
  • 备份和灾难恢复服务 - 提供备份和灾难恢复管理控制台,您可以在其中维护备份和灾难恢复。
  • 宿主项目 - 使您可以在共享 VPC 中创建区域子网,这些子网可将裸金属解决方案区域扩展连接到备份和灾难恢复服务、备份/恢复设备、您的 Cloud Storage 存储分区和您的 Compute Engine 虚拟机。

安装 Google Cloud Backup and DR

备份和灾难恢复解决方案至少需要以下两个主要组件才能正常运行:

  • 备份和灾难恢复管理控制台 — 这是一个 HTML 5 界面和 API 端点,可让您在Google Cloud 控制台中创建和管理备份。
  • 备份/恢复设备 — 此设备在执行备份、装载和恢复类型任务时充当任务工作器。

Google Cloud 管理备份和灾难恢复管理控制台。您需要在服务提供方项目(Google Cloud 管理端)中部署管理控制台,并在服务使用方项目(客户端)中部署备份/恢复设备。如需详细了解备份和灾难恢复,请参阅设置和规划备份和灾难恢复部署。如需查看服务提供方和服务使用方的定义,请参阅 Google Cloud 术语库

准备工作

如需安装 Google Cloud 备份和灾难恢复服务,您需要在开始部署之前完成以下配置步骤:

  1. 启用专用服务访问通道连接。您必须先建立此连接,然后才能开始安装。即使您已配置了专用服务访问通道子网,它也必须至少具有 /23 子网。例如,如果您已为专用服务访问通道连接配置 /24 子网,我们建议您添加 /23 子网。您还可以更进一步添加 /20 子网,以确保今后可以添加更多服务。
  2. 配置 Cloud DNS,使其在部署备份/恢复设备的 VPC 网络中可访问。这可确保正确解析 googleapis.com(通过非公开或公开查找)。
  3. 配置网络默认路由和防火墙规则,以允许流向 TCP 端口 443 上的 *.googleapis.com(通过公共 IP)或 private.googleapis.com (199.36.153.8/30) 的出站流量,或 0.0.0.0/0 的显式出站流量。同样,您需要在安装备份/恢复设备的 VPC 网络中配置路由和防火墙。我们还建议您使用专用 Google 访问通道作为首选选项。如需了解详情,请参阅配置专用 Google 访问通道
  4. 在使用方项目中启用以下 API:
  5. 如果您启用了任何组织政策,请务必配置以下内容:
    • constraints/cloudkms.allowedProtectionLevels 包括 SOFTWAREALL
  6. 配置以下防火墙规则:
    • 从 Compute Engine VPC 中的备份/恢复设备到端口 TCP-5106 上的 Linux 主机(代理)的入站流量。
    • 如果您使用基于块存储的 iSCSI 备份磁盘,则从裸金属解决方案中的 Linux 主机(代理)到 Compute Engine VPC 中端口 TCP-3260 上的备份/恢复设备的出站流量。
    • 如果您使用基于 NFS 或 dNFS 的备份磁盘,则从裸金属解决方案中的 Linux 主机(代理)到 Compute Engine VPC 中以下端口上的备份/恢复设备的出站流量:
      • TCP/UDP-111 (rpcbind)
      • TCP/UDP-756 (status)
      • TCP/UDP-2049 (nfs)
      • TCP/UDP-4001 (mountd)
      • TCP/UDP-4045 (nlockmgr)
  7. 配置 Google Cloud DNS 以解析裸金属解决方案主机名和网域,从而确保裸金属解决方案服务器、虚拟机和基于 Compute Engine 的资源(例如备份和灾难恢复服务)中的域名解析一致。

安装备份和灾难恢复管理控制台

  1. 启用备份和灾难恢复服务 API(如果尚未启用)。
  2. 在 Google Cloud 控制台中,使用导航菜单前往运维部分,然后选择备份和灾难恢复

    显示 Google Cloud 控制台中备份和灾难恢复的初始主页面。字段包括专用服务连接、用于部署备份和灾难恢复管理控制台的区域以及 VPC 网络。

  3. 选择您之前创建的现有专用服务访问通道连接。

  4. 选择备份和灾难恢复管理控制台的位置。这是您在服务提供方项目中部署备份和灾难恢复管理控制台界面的区域。 Google Cloud 拥有并维护管理控制台资源。

  5. 选择服务使用方项目中要连接到备份和灾难恢复服务的 VPC 网络。这通常是共享 VPC 或宿主项目。

  6. 您最多可能需要等待一个小时,在部署完成时您应该会看到以下界面。

    显示“备份和灾难恢复”页面,您可以通过该页面登录备份和灾难恢复管理控制台。

安装备份/恢复设备

  1. 备份和灾难恢复页面上,点击登录管理控制台

    https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/
    
  2. 在备份和灾难恢复管理控制台的主页面中,打开设备页面:

    https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#clusters
    
  3. 输入备份/恢复设备的名称。请注意,部署开始后, Google Cloud 会自动在名称末尾添加其他随机数字。

  4. 选择要安装备份/恢复设备的使用方项目。

  5. 选择您的首选区域、可用区和子网。

  6. 选择存储空间类型。我们建议您为 PoC 选择标准永久性磁盘,为生产环境选择 SSD 永久性磁盘

  7. 点击开始安装按钮。部署备份和灾难恢复管理控制台以及第一个备份/恢复设备需要一个小时。

  8. 在初始安装过程完成后,您可以在其他区域或可用区添加其他备份/恢复设备。

配置 Google Cloud 备份和灾难恢复

在本部分中,您将了解配置备份和灾难恢复服务以及保护您的工作负载所需的步骤。

配置服务账号

从 11.0.2 版(备份和灾难恢复的 2022 年 12 月版本)起,您可以使用单个服务账号运行备份/恢复设备来访问 Cloud Storage 存储分区以及保护 Compute Engine 虚拟机(本文档未介绍此内容)。

服务账号角色

Google Cloud 备份和灾难恢复使用 Google Cloud Identity and Access Management (IAM) 进行用户和服务账号授权及身份验证。您可以通过预定义角色使用各种备份功能。其中最重要的两个角色是:

  • Backup and DR Cloud Storage Operator – 将此角色分配给连接到 Cloud Storage 存储桶的备份/恢复设备使用的服务账号。此角色可以创建用于 Compute Engine 快照备份的 Cloud Storage 存储分区,以及访问包含基于代理的现有备份数据的存储分区以恢复工作负载。
  • Backup and DR Compute Engine Operator – 将此角色分配给备份/恢复设备使用的服务账号,以便为 Compute Engine 虚拟机创建 Persistent Disk 快照。除了创建快照之外,此角色还允许服务账号在同一源项目或备用项目中恢复虚拟机。

您可以通过以下方式查找您的服务账号:查看使用方/服务项目中运行备份/恢复设备的 Compute Engine 虚拟机,以及查看 API 和身份管理部分中列出的服务账号值。

如需为您的备份/恢复设备提供适当的权限,请前往 Identity and Access Management 页面,并将以下 Identity and Access Management 角色授予您的备份/恢复设备服务账号。

  • Backup and DR Cloud Storage Operator
  • Backup and DR Compute Engine Operator(可选)

配置存储池

存储池将数据存储在物理存储位置。您应该使用 Persistent Disk 存储最新数据(1-14 天),并使用 Cloud Storage 存储长期保留的数据(数天、数周、数月和数年)。

Cloud Storage

在需要存储备份数据的位置创建一个单区域或多区域标准存储桶。

  1. 按照以下说明创建 Cloud Storage 存储桶:

    1. Cloud Storage 存储桶页面中,为存储桶命名。
    2. 选择存储位置。
    3. 选择存储类别:Standard、Nearline 或 Coldline。
    4. 如果您选择 Nearline Storage 或 Coldline Storage,请将访问权限控制模式设置为精细控制。对于标准存储空间,请接受默认访问权限控制模式统一
    5. 最后,请勿配置任何其他数据保护选项,然后点击创建

       显示 Cloud Storage 存储桶详细信息的Google Cloud 控制台页面。

  2. 接下来,将此存储桶添加到备份/恢复设备。前往备份和灾难恢复管理控制台。

     https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/
     

  3. 选择管理 > 存储池菜单项。

     https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#pools
     
    显示“管理 > 存储池”菜单的备份和灾难恢复管理控制台页面。

  4. 点击最右侧的选项 +添加 OnVault 池

     https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#addonvaultpool
     

    1. 输入池名称
    2. 池类型字段中,选择 Cloud Storage
    3. 选择要附加到 Cloud Storage 存储桶的设备。
    4. 输入 Cloud Storage 存储桶名称。
    5. 点击保存

      显示“添加 OnVault 池”对话框的备份和灾难恢复管理控制台页面。

Persistent Disk 快照池

如果您使用标准或 SSD 选项部署了备份/恢复设备,则 Persistent Disk 快照池将默认为 4TB。如果源数据库或文件系统需要更大的池,您可以修改已部署的备份/恢复设备的设置,添加新的 Persistent Disk,然后创建新的自定义池或配置另一个默认池。

  1. 打开管理 > 设备页面。

    https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#clusters
    
  2. 修改备份服务器实例,然后点击 +添加新磁盘

    1. 为磁盘命名。
    2. 选择空白磁盘类型。
    3. 您可以根据需要选择标准、平衡或 SSD。
    4. 输入所需的磁盘大小。
    5. 点击保存

      显示如何添加新存储磁盘的备份和灾难恢复管理控制台页面。

  3. 在备份和灾难恢复管理控制台中,前往管理 > 设备页面。

    https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#clusters
    
  4. 右键点击设备名称,然后从菜单中选择配置设备

    显示“设备”页面上的“配置设备”菜单选项的备份和灾难恢复管理控制台页面。

  5. 您可以将磁盘添加到现有快照池(扩展),也可以创建新池(但请勿在同一池中混合使用多种 Persistent Disk 类型)。如果要扩展,请点击要扩展的池右上角的图标。

    备份和灾难恢复管理控制台页面,显示如何通过点击铅笔图标扩展快照池。

  6. 在此示例中,您使用点击以添加池选项创建一个新池。点击此按钮后,请等待 20 秒以打开下一页。

    备份和灾难恢复管理控制台页面,显示如何通过点击“点击以添加池”按钮创建新的快照池。

  7. 在此步骤中,配置新池。

    1. 为池命名,然后点击绿色 + 图标以将磁盘添加到池中。
    2. 点击提交
    3. 在出现提示时,输入大写的 PROCEED 以确认您希望继续。
    4. 点击确认

      备份和灾难恢复对话框,显示创建快照池时需要输入的字段,例如“名称”和“磁盘”。

  8. 您现在使用永久性磁盘扩展或创建了池。

配置备份方案

在备份方案中,您可以配置备份任何数据库、虚拟机或文件系统的两个关键元素。备份方案包含配置文件和模板。

  • 在配置文件中,您可以定义何时进行备份以及备份数据应保留多长时间。
  • 模板中提供了一个配置项,使您可以决定应在备份任务中使用哪个备份/恢复设备和存储池(Persistent Disk、Cloud Storage 等)。应使用此参数执行备份任务。

创建开发者资料

  1. 在备份和灾难恢复管理控制台中,打开备份方案 > 配置文件页面。

    https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#manageprofiles
    
  2. 其中已经创建了两个配置文件。您可以使用一个配置文件用于 Compute Engine 虚拟机快照,并修改另一个配置文件并用于裸金属解决方案备份。您可以有多个配置文件,如果您要备份许多需要使用不同磁盘层级进行备份的数据库,这将非常有用。例如,您可以为 SSD 创建一个池(更高性能),并为标准永久性磁盘创建一个池(标准性能)。对于每个配置文件,您可以选择不同的快照池。

  3. 右键点击名为 LocalProfile 的默认配置文件,然后选择修改

    备份和灾难恢复管理控制台页面,显示如何修改默认的本地配置文件和创建新的配置文件。

  4. 进行以下更改:

    1. 使用更具描述性的配置文件名称和说明更新配置文件设置。您可以指定要使用的磁盘层级、Cloud Storage 存储桶所在的位置,或者说明此配置文件用途的其他信息。
    2. 将快照池更改为您之前创建的扩展池或新池。
    3. 为此配置文件选择一个 OnVault 池(Cloud Storage 存储桶)。
    4. 点击保存配置文件

      备份和灾难恢复管理控制台页面,显示如何保存修改后的配置文件。

创建模板

  1. 在备份和灾难恢复管理控制台中,打开备份方案 > 模板菜单。

    https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#managetemplates
    
  2. 点击 +创建模板

    1. 为模板命名。
    2. 允许替换政策设置中选择
    3. 添加此模板的说明。
    4. 点击保存模板

      备份和灾难恢复管理控制台页面,显示如何创建备份方案模板。

  3. 在模板中,配置以下内容:

    1. 在右侧的政策部分中,点击 +添加
    2. 提供政策名称。
    3. 选中您希望政策运行的日期对应的复选框,或保留默认值每天
    4. 修改要在该时间段内运行作业的时间窗口。
    5. 选择保留时间。
    6. 点击高级政策设置

      备份和灾难恢复管理控制台页面,显示如何为备份方案模板添加或更新政策。

  4. 如果要定期(例如每 15 分钟)执行归档日志备份,并将归档日志复制到 Cloud Storage,则需要启用以下政策设置:

    1. 备份后截断/清除日志设置为截断(如果您想要这样做)。
    2. 如果需要,将启用数据库日志备份设置为
    3. RPO(分钟)设置为您需要的归档日志备份间隔时间。
    4. 日志备份保留期限(以天为单位)设置为所需的保留期限。
    5. 复制日志(使用 Streamsnap 技术)设置为
    6. 如果要将日志发送到 Cloud Storage 存储桶,请将将日志发送到 OnVault 池设置为。否则,请选择
    7. 点击保存更改

      显示建议的政策设置的备份和灾难恢复管理控制台页面。

  5. 点击更新政策以保存更改。

  6. 对于右侧的 OnVault,请执行以下操作:

    1. 点击 +Add(+添加)。
    2. 添加政策名称。
    3. 设置保留期限,单位可以为天、周、月或年。
    4. 点击更新政策

      备份和灾难恢复管理控制台页面,展示了如何为 OnVault 池创建和修改政策并添加保留期限计划。

  7. (可选)如果您需要添加更多保留选项,请创建每周、每月和每年保留的其他政策。如需添加其他保留政策,请按以下步骤操作:

    1. 对于右侧的 OnVault,点击 +添加
    2. 添加政策名称。
    3. 在这些日期的值更改为您要触发此作业的日期。
    4. 设置保留期限,单位可以为天、周、月
    5. 点击更新政策

      备份和灾难恢复管理控制台页面,显示如何为 OnVault 池添加其他政策和保留计划。

  8. 点击保存模板。在以下示例中,您将看到一个快照政策,它将备份在 Persistent Disk 层级保留 3 天,为 OnVault 作业保留 7 天,总共保留 4 周。每周备份在星期六晚上运行。

    备份和灾难恢复管理控制台页面,显示配置快照政策的结果。

备份 Oracle 数据库

Google Cloud 备份和灾难恢复架构向 Google Cloud提供应用一致的永久增量 Oracle 备份,以及对 TB 级 Oracle 数据库的即时恢复和克隆。

Google Cloud Backup and DR 使用以下 Oracle API:

  • RMAN 映像副本 API – 数据文件的映像副本恢复速度要快得多,因为数据文件的物理结构已存在。Recovery Manager (RMAN) 指令 BACKUP AS COPY 会为整个数据库的所有数据文件创建映像副本,并保留数据文件的格式。
  • ASM 和 CRS API – 使用自动存储管理 (ASM) 和集群就绪服务 (CRS) API 管理 ASM 备份磁盘组。
  • RMAN 归档日志备份 API – 此 API 会生成归档日志,将其备份到暂存磁盘,并从生产归档位置完全清除这些日志。

配置 Oracle 主机

设置 Oracle 主机的步骤包括安装代理、将主机添加到备份和灾难恢复、配置主机以及发现 Oracle 数据库。一切准备就绪后,您可以将 Oracle 数据库备份到 Backup and DR。

安装备份代理

安装备份和灾难恢复代理相对简单直接。您只需在首次使用主机时安装代理,然后便可以在 Google Cloud 控制台的备份和灾难恢复界面中完成后续升级。您需要以 root 用户身份登录或位于 sudo 经过身份验证的会话中才能执行代理安装。您无需重新启动主机即可完成安装。

  1. 从界面或通过管理 > 设备页面下载备份代理。

    https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#clusters
    
  2. 右键点击备份/恢复设备的名称,然后选择配置设备。此时会打开新的浏览器窗口。

    备份和灾难恢复管理控制台页面,显示如何选择“配置设备”菜单项。

  3. 点击 Linux 64 位图标,将备份代理下载到托管浏览器会话的计算机。使用 scp(安全复制)将下载的代理文件移动到 Oracle 主机以进行安装。

    显示 Linux 64 位图标的备份和灾难恢复管理控制台页面,点击该图标可下载备份代理

  4. 或者,您可以将备份代理存储在 Cloud Storage 存储桶中,启用下载,并使用 wgetcurl 命令将代理直接下载到 Linux 主机。

    curl -o agent-Linux-latestversion.rpm https://storage.googleapis.com/backup-agent-images/connector-Linux-11.0.2.9595.rpm
    
  5. 使用 rpm -ivh 命令安装备份代理。

    请务必复制自动生成的密钥。使用备份和灾难恢复管理控制台,您需要将密钥添加到主机元数据。

    此命令的输出类似如下所示:

    [oracle@host `~]# sudo rpm -ivh agent-Linux-latestversion.rpm
    Verifying... ################################# [100%]
    Preparing... ################################# [100%]
    Updating / installing…
      1:udsagent-11.0.2-9595 ################################# [100%]
    Created symlink /etc/systemd/system/multi-user.target.wants/udsagent.service → /usr/lib/systemd/system/udsagent.service.
    Action Required:
    -- Add this host to Backup and DR management console to backup/recover workloads from/to this host. You can do this by navigating to Manage->Hosts->Add Host on your management console.
    -- A secret key is required to complete this process. Please use b010502a8f383cae5a076d4ac9e868777657cebd0000000063abee83 (valid for 2 hrs) to register this host.
    -- A new secret key can be generated later by running: '/opt/act/bin/udsagent secret --reset --restart
    
  6. 如果您使用 iptables 命令,请开放备份代理防火墙端口 (TCP 5106) 和 Oracle 服务端口 (TCP 1521):

    sudo iptables -A INPUT -p tcp --dport 5106 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
    sudo firewall-cmd --permanent --add-port=5106/tcp
    sudo firewall-cmd --permanent --add-port=1521/tcp
    sudo firewall-cmd --reload
    

将主机添加到备份和灾难恢复

  1. 在备份和灾难恢复管理控制台中,打开管理 > 主机

    https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#hosts
    
    1. 点击 +添加主机
    2. 添加主机名。
    3. 添加主机的 IP 地址,然后点击 + 按钮以确认配置。
    4. 点击要添加主机的设备。
    5. 粘贴密钥。您必须在安装备份代理并生成密钥后的两小时内执行此任务。
    6. 点击添加以保存主机。

      备份和灾难恢复管理控制台页面,显示添加主机时需要输入的字段,例如名称、IP 地址和设备。

  2. 如果您收到错误消息或部分成功消息,请尝试以下解决方法:

    显示部分成功的备份和灾难恢复管理错误消息。

    1. 备份代理加密密钥可能已超时。如果您未在密钥创建后两小时内将密钥添加到主机。您可以使用以下命令行语法在 Linux 主机上生成新的密钥:

      /opt/act/bin/udsagent secret --reset --restart
      
    2. 允许备份/恢复设备与主机上安装的代理之间通信的防火墙可能未正确配置。按照相应步骤开放备份代理防火墙和 Oracle 服务的端口。

    3. Linux 主机的网络时间协议 (ntp) 配置可能有错误。查看并确认 NTP 设置正确无误。

  3. 解决潜在问题后,您应该会看到证书状态不适用变为有效

    显示有效证书状态的备份和灾难恢复管理控制台页面。

配置主机

  1. 在备份和灾难恢复管理控制台中,打开管理 > 主机

    https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#hosts
    
  2. 右键点击要备份 Oracle 数据库的 Linux 主机,然后选择修改

  3. 点击暂存磁盘格式,然后选择 NFS

    备份和灾难恢复管理控制台页面,显示如何选择 NFS 作为暂存磁盘格式。

  4. 向下滚动到发现的应用部分,然后点击发现应用以启动设备到代理发现过程。

    备份和灾难恢复管理控制台页面,显示如何开始发现设备和代理之间的映射的过程。

  5. 点击发现以开始此过程。发现过程最多需要 5 分钟。完成后,发现的文件系统和 Oracle 数据库将显示在应用窗口中。

    备份和灾难恢复管理控制台页面,显示备份和灾难恢复系统发现的应用。

  6. 点击保存以更新对主机的更改。

准备 Linux 主机

通过在基于 Linux 操作系统的主机中安装 iSCSI 或 NFS 实用程序软件包,您可以将暂存磁盘映射到写入备份数据的设备。使用以下命令安装 iSCSI 和 NFS 实用程序。虽然您可以使用其中一个实用程序或同时使用两个实用程序,但此步骤可确保您在需要时获得所需的实用程序。

  • 如需安装 iSCSI 实用程序,请运行以下命令:

    sudo yum install -y iscsi-initiator-utils
    
  • 如需安装 NFS 实用程序,请运行以下命令:

    sudo yum install -y nfs-utils
    

    准备 Oracle 数据库

本指南假定您已设置和配置 Oracle 实例和数据库。 Google Cloud 备份和灾难恢复支持保护在文件系统、ASM、Real Application Clusters (RAC) 和许多其他配置上运行的数据库。如需了解详情,请参阅适用于 Oracle 数据库的备份和灾难恢复服务

在开始备份作业之前,您需要进行一些配置。其中一些任务是可选的,但为了获得最佳性能,我们强烈建议使用以下设置:

  1. 使用 SSH 连接到 Linux 主机,并以 Oracle 用户身份和 su 权限登录。
  2. 将 Oracle 环境设置为您的特定实例:

    . oraenv
    ORACLE_SID = [ORCL] ?
    The Oracle base remains unchanged with value /u01/app/oracle
    
  3. 使用 sysdba 账号连接到 SQL*Plus:

    sqlplus / as sysdba
    
  4. 使用以下命令启用 ARCHIVELOG 模式。此命令的输出类似于以下内容:

    SQL> shutdown
    
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    
    SQL> startup mount
    
    ORACLE instance started.
    
    Total System Global Area 2415918600 bytes
    Fixed Size 9137672 bytes
    Variable Size 637534208 bytes
    Database Buffers 1761607680 bytes
    Redo Buffers 7639040 bytes
    Database mounted.
    
    SQL> alter database archivelog;
    
    Database altered.
    
    SQL> alter database open;
    
    Database altered.
    
    SQL> archive log list;
    Database log mode Archive Mode
    Automatic archival Enabled
    Archive destination /u01/app/oracle/product/19c/dbhome_1/dbs/arch
    Oldest online log sequence 20
    Next log sequence to archive 22
    Current log sequence 22
    
    SQL> alter pluggable database ORCLPDB save state;
    
    Pluggable database altered.
    
  5. 为 Linux 主机配置 Direct NFS:

    cd $ORACLE_HOME/rdbms/lib
    make -f [ins_rdbms.mk](http://ins_rdbms.mk/) dnfs_on
    
  6. 配置块更改跟踪。首先检查它是启用还是停用状态。以下示例显示块更改跟踪已停用:

    SQL> select status,filename from v$block_change_tracking;
    
    STATUS     FILENAME
    ---------- ------------------------------------------------------------------
    DISABLED
    
    使用 ASM 时,请发出以下命令:
    SQL> alter database enable block change tracking using file +ASM_DISK_GROUP_NAME/DATABASE_NAME/DBNAME.bct;
    
    Database altered.
    

    使用文件系统时,请发出以下命令:

    SQL> alter database enable block change tracking using file '$ORACLE_HOME/dbs/DBNAME.bct';;
    
    Database altered.
    

    验证块更改跟踪现已启用:

    SQL> select status,filename from v$block_change_tracking;
    
    STATUS     FILENAME
    ---------- ------------------------------------------------------------------
    ENABLED    +DATADG/ORCL/CHANGETRACKING/ctf.276.1124639617
    

保护 Oracle 数据库

  1. 在备份和灾难恢复管理控制台中,前往应用管理器 > 应用页面。

    https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#applications
    
  2. 右键点击要保护的 Oracle 数据库名称,然后从菜单中选择管理备份方案

  3. 选择要使用的模板和配置文件,然后点击应用备份方案

    备份和灾难恢复管理控制台页面,显示如何选择模板和配置文件,然后应用备份方案。

  4. 看到提示时,请设置配置所需的任何特定于 Oracle 和 RMAN 的高级设置。完成后,点击应用备份方案

    例如,通道数量默认为 2。因此,如果您有更多的 CPU 核心,则可以增加并行备份操作的通道数量,将其设置为更大的数字。

    如需详细了解高级设置,请参阅为 Oracle 数据库配置应用详细信息和设置

    显示备份方案的高级选项的备份和灾难恢复对话框。

备份和灾难恢复对话框,显示如何选择将 ASM 格式转换为文件系统格式。

除了这些设置之外,您还可以更改暂存磁盘用于将磁盘从备份设备映射到主机的协议。前往管理 > 主机页面,然后选择要修改的主机。勾选到客机的暂存磁盘格式选项。默认情况下选择的是块存储格式,该格式通过 iSCSI 映射暂存磁盘。可以更改为 NFS,则暂存磁盘将改用 NFS 协议。

默认设置取决于您的数据库格式。如果您使用 ASM,系统会使用 iSCSI 将备份发送到 ASM 磁盘组。如果您使用文件系统,系统会使用 iSCSI 将备份发送到文件系统。如果您想要使用 NFS 或 Direct NFS (dNFS),则必须将暂存磁盘的主机设置更改为 NFS。如果您使用默认设置,则所有备份暂存磁盘都使用块存储格式和 iSCSI。

启动备份作业

  1. 在备份和灾难恢复管理控制台中,前往应用管理器 > 应用页面。

    https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#applications
    
  2. 右键点击要保护的 Oracle 数据库,然后从菜单中选择管理备份方案

  3. 点击右侧的快照菜单,然后点击立即运行。这将启动按需备份作业。

    备份和灾难恢复管理控制台页面,显示如何点击“快照”菜单并截取快照。

  4. 如需监控备份作业状态,请前往监控 > 作业菜单,然后查看作业状态。作业可能需要 5 到 10 秒才会显示在作业列表中。以下是正在运行的作业的示例:

    备份和灾难恢复管理控制台页面,显示正在运行的备份作业。

  5. 如果作业成功,您可以使用元数据来查看特定作业的详细信息。

    • 应用过滤条件并添加搜索字词,以查找您感兴趣的作业。以下示例使用成功过去一天过滤条件,并搜索 test1 主机。

    备份和灾难恢复管理控制台页面,显示如何使用过滤条件搜索备份作业。

  6. 如需深入了解特定作业,请在作业列中点击相应作业。此时会打开一个新窗口。如以下示例所示,每个备份作业都会捕获大量信息。

    备份和灾难恢复管理控制台页面,显示备份作业的详细信息。

装载和恢复 Oracle 数据库

Google Cloud 备份和灾难恢复有许多不同的功能可用于访问 Oracle 数据库的副本。其中的两种主要方法为:

  • 应用感知装载
  • 恢复(装载并迁移,以及传统恢复)

每种方法都有不同的优势,因此您需要根据应用场景、性能要求以及需要保留数据库副本的时长来选择要使用的方法。以下部分包含每项功能的一些建议。

应用感知装载

您可以使用装载来快速访问 Oracle 数据库的虚拟副本。如果性能不那么重要,您可以配置装载,数据库副本仅保留数小时到数天。

装载的主要优势在于它不会占用大量额外的存储空间。装载会使用备份磁盘池中的快照,该池可以是 Persistent Disk 上的快照池或 Cloud Storage 中的 OnVault 池。由于无需先复制数据,因此使用虚拟副本快照功能可最大限度地缩短访问数据所需的时间。备份磁盘会处理所有读取操作,而快照池中的磁盘会存储所有写入。因此,装载虚拟副本的访问速度快,并且不会覆盖备份磁盘副本。装载非常适合在将架构更改或更新发布到生产环境之前需要验证更改或更新的开发、测试和 DBA 活动。

装载 Oracle 数据库

  1. 在备份和灾难恢复管理控制台中,打开备份和恢复 > 恢复页面。

    https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#recover/selectapp
    
  2. 应用列表中,找到要装载的数据库,右键点击数据库名称,然后点击下一步

    “备份和灾难恢复”管理控制台页面,显示如何在“备份和恢复”页面上查找数据库。

  3. 此时时间轴坡道视图会打开,其中显示所有可用的时间点映像。如果长期保留映像未显示在坡道视图中,您也可以向下滚动以查看。默认情况下,系统会选择最新映像。

    备份和灾难恢复管理控制台页面,显示备份映像的时间轴坡道视图。

  4. 如果您想要查看时间点映像的表格视图,请点击表格选项以更改视图:

    备份和灾难恢复管理控制台页面,显示如何点击“表格”标签页以在表格中查看时间点备份映像。

  5. 找到所需映像,然后选择装载

    备份和灾难恢复管理控制台页面,显示如何选择、装载和恢复备份映像。

  6. 为装载的数据库选择应用选项

    1. 从下拉菜单中选择目标主机。如果您之前添加了主机,它们会显示在此列表中。
    2. (可选)输入标签。
    3. 目标数据库 SID 字段中,输入目标数据库的标识符。
    4. 用户名设置为 oracle。此名称将成为用于身份验证的操作系统用户名。
    5. 输入 Oracle 主目录。本示例使用的是 /u01/app/oracle/product/19c/dbhome_1
    6. 如果您配置了要备份数据库日志,则前滚时间将可用。点击时钟/时间选择器并选择前滚点。
    7. 使用恢复功能恢复默认处于启用状态。此选项会为您装载并打开数据库。
  7. 输入完信息后,点击提交以开始装载过程。

    备份和灾难恢复管理控制台页面,显示装载备份映像需要填写的字段。

监控作业进度和成功

  1. 您可以打开监控 > 作业页面,监控正在运行的作业。

    https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#jobs
    

    该页面显示状态和作业类型。

    显示“监控 > 作业”页面的备份和灾难恢复管理控制台页面。

  2. 装载作业完成后,您可以点击作业编号来查看作业详细信息:

    显示作业详细信息的备份和灾难恢复对话框。

  3. 如需查看您创建的 SID 的 pmon 进程,请登录目标主机并发出 ps -ef |grep pmon 命令。在以下输出示例中,SCHTEST 数据库正常运行,其进程 ID 为 173953

    [root@test2 ~]# ps -ef |grep pmon
    oracle 1382 1 0 Dec23 ? 00:00:28 asm_pmon_+ASM
    oracle 56889 1 0 Dec29 ? 00:00:06 ora_pmon_ORCL
    oracle 173953 1 0 09:51 ? 00:00:00 ora_pmon_SCHTEST
    root 178934 169484 0 10:07 pts/0 00:00:00 grep --color=auto pmon
    

卸载 Oracle 数据库

使用完数据库后,您应该卸载并删除数据库。您可以通过两种方法来查找已装载的数据库:

  1. 打开应用管理器 > 活跃装载页面。

    https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#activemounts
    

    此页面包含当前使用的所有已装载应用(文件系统和数据库)的全局视图。

    1. 右键点击要清理的装载,然后从菜单中选择卸载并删除。此操作不会删除备份数据。它只会从目标主机中移除虚拟装载的数据库和包含该数据库的存储写入的快照缓存磁盘。

      备份和灾难恢复管理控制台页面,显示“应用管理器 > 活跃装载”页面中的“卸载并删除”菜单。

  2. 打开应用管理器 > 应用页面。

     https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#applications
     

    1. 右键点击源应用(数据库)并选择访问
    2. 在左侧坡道上,您会看到一个内含数字的灰色圆圈,数字表示该时间点的活跃装载数。点击该映像,此时会出现一个新菜单。
    3. 点击操作
    4. 点击卸载并删除
    5. 在下一个屏幕上点击提交并确认此操作。
    6. 几分钟后,系统会从目标主机中移除数据库,并清理和移除所有磁盘。此操作会释放快照池中用于对活跃装载的重做磁盘的写入的磁盘空间。

      备份和灾难恢复管理控制台页面,显示如何卸载并删除备份映像。

  3. 您可以像监控任何其他作业一样监控卸载作业。打开监控 > 作业菜单,监控卸载作业的进度并确认作业完成。

     https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#jobs
     
    备份和灾难恢复管理控制台页面,显示如何监控卸载并删除作业的进度。

  4. 如果您不小心手动删除了 Oracle 数据库,或者在运行卸载并删除作业之前关停了数据库,请再次执行卸载并删除作业,然后在确认屏幕上选择强制卸载选项。此操作会强制从目标主机中移除重做暂存磁盘,并从快照池中删除相应磁盘。

    备份和灾难恢复管理控制台页面,显示如何强制执行卸载并删除作业。

恢复

如果出现问题或损坏,您可以使用恢复来恢复生产数据库,并且需要将数据库的所有文件从备份副本复制到本地主机。通常,您可以在发生灾难类型事件后执行恢复或为非生产测试副本执行恢复。在这种情况下,您的客户通常需要等待您将之前的文件复制回源主机,然后他们才能重启其数据库。不过, Google Cloud 备份和灾难恢复还支持恢复功能(复制文件并启动数据库)和装载并迁移功能(装载数据库并快速访问,并可以在数据库装载且可访问的状态下将数据文件复制到本地机器)。装载并迁移功能对于低恢复时间目标 (RTO) 场景非常有用。

装载并迁移

基于装载并迁移的恢复分为两个阶段:

  1. 第 1 阶段恢复装载阶段通过从装载的副本开始提供对数据库的即时访问。
  2. 第 2 阶段恢复迁移阶段会在数据库处于在线状态时将数据库迁移到生产存储位置。

恢复装载 - 第 1 阶段

此阶段使您可以通过备份/恢复设备提供的选定映像即时访问数据库。

  • 所选备份映像的副本会映射到目标数据库服务器,并根据源数据库备份映像格式提供给 ASM 或文件系统层。
  • 使用 RMAN API 执行以下任务:
    • 将控制文件和重做日志文件恢复到指定的本地控制文件和重做文件位置(ASM 磁盘组或文件系统)。
    • 将数据库切换到备份/恢复设备提供的映像的副本。
    • 将所有可用的归档日志前滚到指定的恢复点。
    • 以读写模式打开数据库。
  • 数据库从备份/恢复设备提供的备份映像的映射副本运行。
  • 数据库的控制文件和重做日志文件放置在目标上的选定本地生产存储位置(ASM 磁盘组或文件系统)。
  • 恢复装载操作成功后,数据库将可用于生产操作。在数据库和应用启动并运行后,您可以使用 Oracle 在线数据文件移动 API 将数据移回生产存储位置(ASM 磁盘组或文件系统)。

恢复迁移 - 第 2 阶段

将数据库数据文件在线移动到生产存储空间:

  • 数据迁移在后台运行。使用 Oracle 在线数据文件移动 API 迁移数据。
  • 您可以将数据文件从备份和灾难恢复提供的备份映像副本移动到所选目标数据库存储(ASM 磁盘组或文件系统)。
  • 迁移作业完成后,系统会从目标中移除并取消映射备份和灾难恢复提供的备份映像副本(ASM 磁盘组或文件系统),并且数据库会从生产存储空间运行。

如需详细了解装载并迁移恢复,请参阅:装载并迁移 Oracle 备份映像以即时恢复到任何目标

恢复 Oracle 数据库

  1. 在备份和灾难恢复管理控制台中,打开备份和恢复 > 恢复页面。

    https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#recover/selectapp
    
  2. 应用列表中,右键点击要恢复的数据库的名称,然后选择下一步

    备份和灾难恢复管理控制台页面,显示如何选择要恢复的数据库。

  3. 此时时间轴坡道视图会打开,其中显示所有可用的时间点映像。如果您需要查看未显示在坡道视图中的长期保留映像,则可以往回滚动。默认情况下,系统始终会选择最新映像。

    如需恢复映像,请点击装载菜单,然后选择恢复

    备份和灾难恢复管理控制台页面,显示如何恢复备份映像。

  4. 选择恢复选项。

    1. 选择前滚时间。点击时钟并选择所需的时间点。
    2. 输入要用于 Oracle 的用户名。
    3. 如果您的系统使用数据库身份验证,请输入密码。
    4. 如需启动作业,请点击提交

      备份和灾难恢复管理控制台页面,显示如何选择恢复选项。

  5. 输入 DATA LOSS 以确认您要覆盖源数据库,然后点击确认

    备份和灾难恢复管理控制台页面,显示如何覆盖源数据库并确认某些数据将丢失。

监控作业进度和成功

  1. 如需监控作业,请打开监控 > 作业页面。

    https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#jobs
    
  2. 作业完成后,点击作业编号可查看作业详细信息和元数据。

    显示作业详细信息的备份和灾难恢复对话框。

保护恢复的数据库

数据库恢复作业完成后,系统不会在数据库恢复后自动备份数据库。换句话说,在您恢复之前具有备份方案的数据库后,默认情况下,备份方案不会激活。

  1. 如需验证备份方案未在运行,请打开应用管理器 > 应用页面。

    https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com/#applications
    
  2. 在列表中找到恢复的数据库。保护图标从绿色变为黄色,表示系统没有计划为数据库运行备份作业。

    备份和灾难恢复管理控制台页面,显示如何通过查找黄色图标来识别恢复的数据库。

  3. 如需保护恢复的数据库,请在应用列中找到您要保护的数据库。右键点击数据库名称,然后选择管理备份方案

    备份和灾难恢复管理控制台页面,显示如何从“应用”页面中选择“管理备份方案”菜单项。

  4. 为恢复的数据库重新启用计划的备份作业。

    1. 点击应用菜单,然后选择启用
    2. 确认所有 Oracle 高级设置,然后点击启用备份方案

      备份和灾难恢复管理控制台页面,显示如何为恢复的数据库启用备份方案。

问题排查和优化

本部分提供了一些有用的技巧,可为您在排查 Oracle 备份问题、优化系统以及考虑调整 RAC 和 Data Guard 环境时提供帮助。

排查 Oracle 备份问题

Oracle 配置包含许多依赖项,以确保备份任务成功。以下步骤提供了多个有关配置 Oracle 实例、监听器和数据库的建议,以确保成功。

  1. 如需验证您要保护的服务和实例的 Oracle 监听器已配置并且在运行,请发出 lsnrctl status 命令:

    [oracle@test2 lib]$ lsnrctl status
    
    LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 29-DEC-2022 07:43:37
    
    Copyright (c) 1991, 2021, Oracle. All rights reserved.
    
    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
    Start Date                23-DEC-2022 20:34:17
    Uptime                    5 days 11 hr. 9 min. 20 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   /u01/app/19c/grid/network/admin/listener.ora
    Listener Log File         /u01/app/oracle/diag/tnslsnr/test2/listener/alert/log.xml
    Listening Endpoints Summary...
     (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=test2.localdomain)(PORT=1521)))
     (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
    Services Summary...
    Service "+ASM" has 1 instance(s).
     Instance "+ASM", status READY, has 1 handler(s) for this service...
    Service "+ASM_DATADG" has 1 instance(s).
     Instance "+ASM", status READY, has 1 handler(s) for this service...
    Service "ORCL" has 1 instance(s).
     Instance "ORCL", status READY, has 1 handler(s) for this service...
    Service "ORCLXDB" has 1 instance(s).
     Instance "ORCL", status READY, has 1 handler(s) for this service...
    Service "f085620225d644e1e053166610ac1c27" has 1 instance(s).
     Instance "ORCL", status READY, has 1 handler(s) for this service...
    Service "orclpdb" has 1 instance(s).
     Instance "ORCL", status READY, has 1 handler(s) for this service...
    The command completed successfully
    
  2. 验证您已将 Oracle 数据库配置为 ARCHIVELOG 模式。如果数据库在其他模式下运行,您可能会看到失败的作业和错误代码 5556 消息,如下所示:

    显示“作业详细信息”的备份和灾难恢复对话框,其中包含错误代码 5556。

    export ORACLE_HOME=ORACLE_HOME_PATH
    export ORACLE_SID=DATABASE_INSTANCE_NAME
    export PATH=$ORACLE_HOME/bin:$PATH
    
    sqlplus / as sysdba
    SQL> set tab off
    SQL> archive log list;
    
    Database log mode             Archive Mode
    Automatic archival            Enabled
    Archive destination           +FRA
    Oldest online log sequence    569
    Next log sequence to archive  570
    Current log sequence          570
    
  3. 在 Oracle 数据库上启用块更改跟踪。虽然这并非实施解决方案的强制性要求,但启用块更改跟踪可使您免于执行大量后处理工作来计算更改的块,并且有助于减少备份作业时间:

    SQL> select status,filename from v$block_change_tracking;
    
    STATUS     FILENAME
    ---------- ------------------------------------------------------------------
    ENABLED    +DATADG/ORCL/CHANGETRACKING/ctf.276.1124639617
    
  4. 验证数据库使用 spfile

    sqlplus / as sysdba
    
    SQL> show parameter spfile
    
    NAME               TYPE        VALUE
    ------------------ ----------- ------------
    spfile             string      +DATA/ctdb/spfilectdb.ora
    
  5. 为 Oracle 数据库主机启用 Direct NFS (dnfs)。虽然不是必需的,但如果您需要备份和恢复 Oracle 数据库的最快方法,则 dnfs 是首选选择。如需进一步提高吞吐量,您可以按主机更改暂存磁盘,并为 Oracle 启用 dnfs

  6. 配置 tnsnames 以解析 Oracle 数据库主机。如果您不添加此设置,RMAN 命令通常会失败。以下是输出示例:

    [oracle@test2 lib]$ tnsping ORCL
    
    TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 29-DEC-2022 07:55:18
    
    Copyright (c) 1997, 2021, Oracle. All rights reserved.
    
    Used parameter files:
    
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = test2.localdomain)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL)))
    OK (0 msec)
    
  7. SERVICE_NAME 字段对于 RAC 配置非常重要。服务名称代表用于向与集群通信的外部资源通告系统的别名。在受保护数据库的详细信息和设置选项中,使用 Oracle 服务名称的高级设置。输入要在运行备份作业的节点上使用的特定服务名称。

    Oracle 数据库仅使用服务名称进行数据库身份验证。数据库不使用服务名称进行操作系统身份验证。例如,数据库名称可以是 CLU1_S,实例名称可以是 CLU1_S

    • 如果 Oracle 服务名称未列出,请在位于 $ORACLE_HOME/network/admin$GRID_HOME/network/admin 的 tnsnames.ora 文件中添加以下条目,以在服务器上创建服务名称条目:

      CLU1_S =
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521))
      (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = CLU1_S)
      ) )
      
    • 如果 tnsnames.ora 文件位于非标准位置,请在为 Oracle 数据库配置应用详细信息和设置中所述的应用详细信息和设置页面中提供该文件的绝对路径。

    • 验证您已正确配置数据库的服务名称条目。登录 Oracle Linux 并配置 Oracle 环境:

      TNS_ADMIN=TNSNAMES.ORA_FILE_LOCATION
      tnsping CLU1_S
      
    • 检查数据库用户账号,确保成功连接到备份和灾难恢复应用:

      sqlplus act_rman_user/act_rman_user@act_svc_dbstd as sysdba
      
    • Oracle 数据库的应用详细信息和设置中所述的应用详细信息和设置页面中,在 Oracle 服务名称字段中输入您创建的服务名称 (CLU1_S):

      “应用详细信息和设置”的备份和灾难恢复对话框,其中显示了“Oracle 服务名称”字段的位置。

  8. 错误代码 870 显示“不支持在 NFS 暂存磁盘上使用 ASM 进行 ASM 备份。”如果您收到此错误,则表示您没有在要保护的实例的详细信息和设置中配置正确的设置。在此错误配置中,主机将 NFS 用作暂存磁盘,但源数据库在 ASM 上运行。

    显示一个错误配置的备份和灾难恢复对话框,其中 NFS 主机暂存磁盘尝试使用 ASM 数据库。如需解决此问题,请把“将 ASM 转换为文件系统”设置更改为“是”。

    如需解决此问题,请把将 ASM 格式转换为文件系统格式字段设置为。更改此设置后,重新运行备份作业。

  9. 错误代码 15 显示备份和灾难恢复系统“无法连接到备份主机”。如果您收到此错误,则表示存在以下三个问题之一:

    • 备份/恢复设备与安装代理的主机之间的防火墙不允许 TCP 端口 5106(代理监听端口)。
    • 未安装代理。
    • 代理未在运行。

    如需解决此问题,请根据需要重新配置防火墙设置,并确保代理正常运行。解决潜在原因后,运行 service udsagent status 命令。以下输出示例显示备份和灾难恢复代理服务正确运行:

    [root@test2 ~]# service udsagent status
    Redirecting to /bin/systemctl status udsagent.service
    udsagent.service - Google Cloud Backup and DR service
    Loaded: loaded (/usr/lib/systemd/system/udsagent.service; enabled; vendor preset: disabled)
    Active: active (running) since Wed 2022-12-28 05:05:45 UTC; 2 days ago
    Process: 46753 ExecStop=/act/initscripts/udsagent.init stop (code=exited, status=0/SUCCESS)
    Process: 46770 ExecStart=/act/initscripts/udsagent.init start (code=exited, status=0/SUCCESS)
    Main PID: 46789 (udsagent)
    Tasks: 8 (limit: 48851)
    Memory: 74.0M
    CGroup: /system.slice/udsagent.service
     ├─46789 /opt/act/bin/udsagent start   
     └─60570 /opt/act/bin/udsagent start
    
    Dec 30 05:11:30 test2 su[150713]: pam_unix(su:session): session closed for user oracle
    Dec 30 05:11:30 test2 su[150778]: (to oracle) root on none
    
  10. 备份中的日志消息可帮助您诊断问题。您可以访问运行备份作业的源主机上的日志。对于 Oracle 数据库备份,/var/act/log 目录中有两个主要的日志文件:

    • UDSAgent.log -Google Cloud 备份和灾难恢复代理日志,记录 API 请求、运行作业统计信息和其他详细信息。
    • SID_rman.log – 记录所有 RMAN 命令的 Oracle RMAN 日志。

其他 Oracle 注意事项

为 Oracle 数据库实现备份和灾难恢复时,在部署 Data Guard 和 RAC 时请留意以下注意事项。

Data Guard 注意事项

您可以备份 Data Guard 主节点和备用节点。但是,如果您选择仅从备用节点保护数据库,则在备份数据库时,需要使用 Oracle 数据库身份验证,而不是操作系统身份验证。

RAC 注意事项

如果暂存磁盘设置为 NFS 模式,则备份和灾难恢复解决方案不支持从 RAC 数据库中的多个节点进行并发备份。如果您的系统需要从多个 RAC 节点进行并发备份,请使用块存储 (iSCSI) 作为暂存磁盘模式,并按主机设置此模式。

对于使用 ASM 的 Oracle RAC 数据库,您必须将快照控制文件放在共享磁盘中。如需验证此配置,请连接到 RMAN 并运行 show all 命令:

rman target /

RMAN> show all
如果快照控制文件位于错误的位置,请重新配置它。例如,对于使用本地文件系统并且 `db_unique_name` 为 **ctdb** 的数据库,请使用以下 RMAN 配置参数:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/mnt/ctdb/snapcf_ctdb.f';

在 RAC 环境中,您必须将快照控制文件映射到共享 ASM 磁盘组。如需将文件分配给 ASM 磁盘组,请使用 Configure Snapshot Controlfile Name 命令:

CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+/snap_.f';

建议

根据您的要求,您可能需要对影响整体解决方案的某些功能作出决定。某些决定可能会影响价格,进而影响性能,例如为备份/恢复设备快照池选择标准永久性磁盘 (pd-standard) 还是高性能永久性磁盘 (pd-ssd)。

在本部分中,我们将分享推荐的选择,帮助您确保 Oracle 数据库备份吞吐量的最佳性能。

选择最佳机器类型和永久性磁盘类型

将备份/恢复设备与应用(例如文件系统或数据库)搭配使用时,您可以根据主机实例的数据在 Compute Engine 实例之间的传输速度来衡量性能。

  • Compute Engine 永久性磁盘设备速度取决于三个因素:机器类型、挂接到实例的总内存量和实例的 vCPU 数量。
  • 实例中的 vCPU 数量决定了分配给 Compute Engine 实例的网络速度。速度范围可从 1 Gbps(一个共享 vCPU)到 16 Gbps(8 个或更多 vCPU)。
  • 结合这些限制, Google Cloud Backup and DR 默认为备份/恢复设备使用 e2-standard-16 的标准大小机器类型。以此为起点,您有三种磁盘分配选择:

多种选择

池磁盘

最大持续写入

最大持续读取

最低

10 GB

不适用

不适用

标准

4096 GB

400 MiB/秒

1200 MiB/秒

SSD

4096 GB

1000 MiB/秒

1200 MiB/秒

Compute Engine 实例最多将所分配网络的 60% 用于其挂接的永久性磁盘的 I/O,并预留 40% 给其他用途。如需了解详情,请参阅影响性能的其他因素

建议:选择 e2-standard-16 机器类型和至少 4096 GB 的 PD-SSD 可为备份/恢复设备提供最佳性能。第二个选择是为备份/恢复设备选择 n2-standard-16 机器类型。此选项可以将性能再提高 10-20%,但费用也更高。如果这与您的应用场景匹配,请与 Cloud Customer Care 联系进行更改。

优化快照

为了提高单个备份/恢复设备的工作效率,您可以从多个来源同时运行快照作业。每个作业的速度都会降低。但是,如果有足够多的作业,您可以达到快照池中的 Persistent Disk 卷的持续写入上限。

使用 iSCSI 作为暂存磁盘时,您可以约 300-330MB/秒的持续写入速度将单个大型实例备份到备份/恢复设备。在我们的测试中,我们发现对于从 2 TB 到 80 TB 的快照都可以实现这个速度(假设您为源主机和备份/恢复设备均配置最佳大小并且它们位于相同区域和可用区)。

选择正确的暂存磁盘

如果您需要极高的性能和吞吐量,那么对于 Oracle 数据库备份的暂存磁盘,Direct NFS 要显著优于 iSCSI。Direct NFS 合并了 TCP 连接的数量,可提高可伸缩性和网络性能。

为 Oracle 数据库启用 Direct NFS 时,请配置足够的源 CPU(例如 8 个 vCPU 和 8 个 RMAN 通道),并在裸金属解决方案区域扩展与 Google Cloud之间建立 10 GB 链接,这样您就可以备份单个 Oracle 数据库,并将吞吐量提高到 700-900 多 MB/s。Direct NFS 还有助于提高 RMAN 恢复速度,吞吐量级别可以达到 850 MB/秒或更高。

平衡费用和吞吐量

您还需要了解,所有备份数据都以压缩格式存储到备份/恢复设备快照池,这是为了降低费用。这一压缩优势的性能开销很小。但是,对于加密数据 (TDE) 或高度压缩的数据集,可能会对吞吐量数据产生轻微影响。

了解影响网络和备份服务器性能的因素

以下各项会影响裸金属解决方案上的 Oracle 与 Google Cloud中的备份服务器之间的网络 I/O:

闪存

与 Google Cloud 永久性磁盘类似,为裸金属解决方案系统提供存储空间的闪存存储阵列会根据您分配给主机的存储空间大小增加 I/O 性能。您分配的存储空间越多,I/O 性能越高。为获得一致的结果,我们建议您至少预配 8 TB 的闪存存储。

网络延迟

Google Cloud 备份和灾难恢复备份作业对裸金属解决方案主机与 Google Cloud中的备份/恢复设备之间的网络延迟很敏感。延迟时间的略微增加可能会导致备份和恢复时间发生大幅变化。不同的 Compute Engine 可用区为裸金属解决方案主机提供不同的网络延迟时间。建议您测试每个可用区,以找到备份/恢复设备的最佳位置。

使用的处理器数量

裸金属解决方案服务器有多种大小。我们建议您扩缩 RMAN 通道以适应可用的 CPU,较大的系统应具有更大的可能速度。

Cloud Interconnect

裸金属解决方案和 Google Cloud 之间的混合互连有多种大小,例如 5 Gbps、10 Gbps 和 2x10 Gbps,双 10 GB 选项提供完整性能。您也可以配置专门用于备份和恢复操作的专用互连链路。建议希望将备份流量与可能通过同一链路的数据库或应用流量隔离开来的客户使用此选项,或者保证在备份和恢复操作对于确保您实现恢复点目标 (RPO) 和恢复时间目标 (RTO) 至关重要的情况下使用此选项,以确保带宽充足。

后续步骤

以下是有关 Google Cloud 备份和灾难恢复的一些其他有用链接和信息。