解决方案指南:适用于裸金属解决方案上的 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 服务项目 - 为您提供运行 Compute Engine 虚拟机的位置。
  • 备份和灾难恢复服务 - 提供备份和灾难恢复管理控制台,可让您维护备份和灾难恢复。
  • 宿主项目 - 可让您在共享 VPC 中创建区域子网,该子网可以将裸金属解决方案方案区域扩展连接到备份和灾难恢复服务、备份/恢复设备、Cloud Storage 存储分区和 Compute Engine 虚拟机。

安装 Google Cloud 备份和灾难恢复

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

  • 备份和灾难恢复管理控制台 - 一个 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. 启用 Backup and DR Service 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 虚拟机 (VM)(本文档中未作介绍)。

服务账号角色

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(可选)

配置存储池

存储池将数据存储在物理存储位置。对于最近的数据(1-14 天),应使用 Persistent Disk,对于长期数据(例如天、周、月和年),则应使用 Cloud Storage。

Cloud Storage

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

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

    1. Cloud Storage 存储桶页面中,为该存储桶命名。
    2. 选择存储位置。
    3. 选择存储类别:标准、Nearline 或 Coldline。
    4. 如果您选择 Nearline 或 Coldline 存储,请将访问权限控制模式设置为精细控制。对于 Standard Storage,请接受默认访问权限控制模式 Uniform
    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. 池类型字段中,选择 Google 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 备份和灾难恢复使用以下 Oracle API:

  • RMAN image copy API -数据文件的图片副本恢复速度快得多,因为数据文件的物理结构已存在。恢复管理器 (RMAN) 指令 BACKUP AS COPY 为整个数据库的所有数据文件创建映像副本并保留数据文件格式。
  • ASM 和 CRS API - 使用自动存储管理 (ASM) 和 Cluster Ready Services (CRS) API 管理 ASM 备份磁盘组。
  • RMAN Archive log Backup API - 此 API 可生成归档日志,将其备份到暂存磁盘,并从生产归档位置将其完全清除。

配置 Oracle 主机

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

安装备份代理

安装备份和灾难恢复代理相对简单直接。您只需在首次使用主机时安装代理,后续就可以在 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、真实应用集群 (RAC) 和许多其他配置上运行的数据库。如需了解详情,请参阅适用于 Oracle 数据库的备份和灾难恢复

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

  1. 使用 SSH 连接到 Linux 主机,并以拥有 su 权限的 Oracle 用户身份登录。
  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. 选择要使用的模板和配置文件,然后点击 Apply Backup Plan

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

  4. 出现提示时,设置配置所需的任何特定于 Oracle 和 RMAN 的高级设置。完成后,点击 Apply Backup Plan

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

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

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

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

除了这些设置之外,您还可以更改暂存磁盘用于将磁盘从 Backup Appliance 映射到主机的协议。转到 Manage(管理)> 主机页面,然后选择要修改的主机。选中 Staging Disk Format to Guest 选项。默认选择格式,这样会通过 iSCSI 映射暂存磁盘,也可以将其更改为 NFS,然后暂存磁盘将改用 NFS 协议。

默认设置取决于您的数据库格式。如果使用 ASM,系统会使用 iSCSI 向备份发送 ASM 磁盘组。如果您使用文件系统,系统会使用 iSCSI 将备份发送到文件系统。如果您想要使用 NFS 或直接 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. 输入完信息后,点击 Submit 以开始装载过程。

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

监控作业进度和成功

  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 asmpmon+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

Unmount an Oracle database

After you finish using the database, you should unmount and delete the database. There are two methods to find a mounted database:

  1. Go to App Manager > Active Mounts page.

    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 在线 datafile 移动 API 将数据移回生产存储位置(ASM 磁盘组或文件系统)。

恢复迁移 - 第 2 阶段

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

  • 数据迁移在后台运行。使用 Oracle 在线 datafile 移动 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. 输入数据丢失以确认您要覆盖源数据库,然后点击确认

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

监控作业进度和成功

  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. 要保护已恢复的数据库,请在 Application 列中查找要保护的数据库。右键点击数据库名称,然后选择管理备份方案

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

  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 服务名称未列出,请通过添加以下条目,在服务器上的 tnsnames.ora 文件(位于 $ORACLE_HOME/network/admin$GRID_HOME/network/admin)中创建一个服务名称条目:

      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 转换为文件系统”设置更改为“是”。

    如需解决此问题,请将 Convert ASM Format to Filesystem Format 字段设置为 Yes。更改此设置后,重新运行备份作业。

  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 Persistent Disk 设备速度取决于三个因素:机器类型、挂接到实例的内存总量以及实例的 vCPU 数量。
  • 实例中的 vCPU 数量决定了分配给 Compute Engine 实例的网速。共享 vCPU 的速度范围为 1 Gbps;对于 8 个或更多 vCPU,速度范围为 16 Gbps。
  • 结合这些限制,Google Cloud 备份和灾难恢复默认使用 e2-standard-16 作为标准大小的机器类型的备份/恢复设备。从现在开始,您有三种磁盘分配选项:

多种选择

池磁盘

最大持续写入

最大持续读取

最低

10 GB

不适用

不适用

标准

4096 GB

400 MiB/秒

1200 MiB/秒

SSD

4096 GB

1000 MiB/秒

1200 MiB/秒

Compute Engine 实例最多可将所分配网络 60% 的网络用于附加的 Persistent Disk 的 I/O 操作,而将 40% 的预留空间用于其他用途。如需了解详情,请参阅影响性能的其他因素

建议:选择 e2-standard-16 机器类型和至少 4096 GB 的 PD-SSD 可为备份/恢复设备提供最佳性能。第二个选项是,您可以为备份/恢复设备选择 n2-standard-16 机器类型。使用此选项可获得 10-20% 范围内的额外性能优势,但会产生额外的费用。如果这与您的使用场景相匹配,请与 Cloud Customer Care 团队联系,进行此项更改。

优化快照

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

当您将 iSCSI 用作暂存磁盘时,能够以大约 300-330MB/s 的持续写入速度将单个大型实例备份到备份/恢复设备。在我们的测试中,我们看到,假设您以最佳大小同时配置源主机和备份/恢复设备,并且它们位于同一区域和可用区中,从 2TB 到 80TB 的所有内容在快照中都是如此。

选择正确的暂存磁盘

如果您需要出色的性能和吞吐量,相对于 iSCSI 而言,直接 NFS 可以带来显著的优势,作为用于 Oracle 数据库备份的暂存磁盘。直接 NFS 整合了 TCP 连接的数量,从而提高了可伸缩性和网络性能。

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

平衡费用和吞吐量

此外,请务必注意,所有备份数据都以压缩格式存储在备份/恢复设备快照池中,这样做是为了降低费用。这种压缩优势产生的性能开销微乎其微。 但是,对于加密数据 (TDE) 或经过高度压缩的数据集,虽然对吞吐量数字的影响,但可能会获得一些可衡量的影响。

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

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

闪存

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

网络延迟

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

使用的处理器数量

裸金属解决方案服务器有多种大小。我们建议您根据可用的 CPU 来扩缩 RMAN 通道,以便在大型系统中实现更高的速度。

Cloud Interconnect

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

后续步骤

以下是一些有关 Google Cloud 备份和灾难恢复的其他链接和信息,可能会对您有所帮助。