在基本数据库服务中备份和恢复

备份数据库对于确保数据安全至关重要。Oracle 提供了多种备份数据库的方法。

Oracle 管理的自动备份功能是备份 Oracle Cloud 数据库的首选方法,因为您可以使用控制台轻松配置备份设置。自动备份功能支持恢复服务和对象存储作为备份目的地,以相同的成本为您提供完全自动化的云备份解决方案。您无需执行任何手动备份或备份存储管理任务。还可以将备份存储在本地存储中。每个备份目标都具有您应考虑的优点和要求,如下所述。

恢复服务(建议)

基于本地部署 Oracle Zero Data Loss Recovery Appliance 技术的全托管式服务,为 Oracle 数据库提供现代网络安全保护。独特的自动化功能可实时保护 Oracle Database 更改,在不产生生产数据库开销的情况下验证备份,并支持快速、可预测地恢复到任何时间点。

如果您的备份当前配置了对象存储,您可以无缝迁移到恢复服务,以实现具有相同成本的高级功能。

有关 Recovery Service 的更多信息,请参阅关于 Oracle Database Autonomous Recovery Service

对象存储

为数据库提供安全、可扩展的按需存储解决方案。

有关对象存储的更多信息,请参阅对象存储概述

本地存储

  • 备份存储在数据库系统的快速恢复区本地。
  • 耐用性:低
  • 可用性:中
  • 备份和恢复率:高
  • 优点:优化的备份和快速的时间点恢复。
  • 缺点:如果数据库系统变得不可用,则备份也不可用。

目前,Oracle 无法向数据库系统附加块存储卷,因此您无法备份到网络附加的卷。

对于非托管备份,您可以使用 RMANdbcli,并且必须为备份创建和管理您自己的对象存储桶。

注意:

如果您之前使用 RMANdbcli 配置备份,然后切换为使用控制台或 API 进行备份,则会创建新的备份配置并将其与数据库相关联。这意味着您不能再依赖先前配置的非托管备份来工作。

有关创建备份的详细说明,请参见:

必需的 IAM 策略

要使用 Oracle Cloud Infrastructure,必须由管理员在策略中为您授予安全访问权限。无论您是将控制台或 REST API 与 SDK、CLI 还是其他工具结合使用,都需要进行此访问。如果您收到一则表明您无权访问或未经授权的消息,请向管理员确认您具有哪些类型的访问权限以及要使用哪些区间

如果您刚接触策略,请参阅策略入门常见策略

Prerequisites

复查并确保满足备份和恢复操作的以下先决条件:

恢复服务

有关恢复服务先决条件的详细信息,请参见配置恢复服务

对象存储

  • 数据库系统需要访问对象存储,包括连接到适用的 Swift 端点。Oracle 建议将服务网关与 VCN 结合使用以启用此访问。请参阅 VCN 和子网
  • 要用作备份目的地的现有对象存储桶。您可以使用控制台或对象存储 API 创建存储桶。请参见 Managing Buckets
  • OCI 生成的验证令牌。您可以使用控制台或 IAM API 生成密码。请参见 Managing User Credentials
  • 在备份配置文件中指定的用户名必须对对象存储具有租户级别的访问权限。这样做的简单方法是将用户名添加到 "Administrators"(管理员)组。但是,这允许访问所有的云服务。管理员应创建如下策略,以限制仅访问对象存储中备份和还原数据库所需的资源:

    Allow group <group_name> to manage objects in compartment <compartment_name> where target.bucket.name = '<bucket_name>'
    Allow group <group_name> to read buckets in compartment <compartment_name>

    有关将用户添加到组的更多信息,请参见 Managing Groups

有关对象存储的更多信息,请参阅对象存储概述

一般信息

您的数据库和数据库系统必须处于“可用”状态才能成功运行备份操作。Oracle 建议您避免在执行备份操作期间执行可能干扰可用性的操作(例如打补丁和 Data Guard 操作)。如果自动备份操作失败,数据库服务将在第二天的备份窗口中重试该操作。如果按需完整备份失败,您可以在还原数据库系统和数据库可用性时重试该操作。

除了列出的先决条件外,请确保满足以下条件以避免备份失败:

  • 数据库的归档模式设置为 ARCHIVELOG(默认值)。
  • 数据库主机文件系统上的 /u01 目录具有足够的空闲空间来执行备份进程。
  • oracle 用户的 .bash_profile 文件不包括任何交互式命令(例如 oraenv 或可能生成错误或警告消息的命令)。
  • (对于自动备份)未对 sqlnet.ora 文件中的缺省 WALLET_LOCATION 条目进行任何更改。
  • 使用标准 RMAN 命令未对 RMAN 备份设置进行任何更改。

有关不遵循这些准则可能导致的问题的更多信息,请参见 Troubleshoot Backup Failures

托管备份功能

以下信息适用于使用控制台或 API 配置的托管备份。

注意:

安全区域区间中的数据库必须启用自动备份。有关影响基本数据库服务资源的策略的完整列表,请参见 Security Zone Policies

目前,支持以下两种类型的自动备份:

  • 恢复服务:面向数据库的集中式、完全托管的独立备份解决方案。
  • 对象存储:安全、可扩展的按需存储解决方案,适用于数据库。

为了与 Oracle 建议的备份和恢复操作使用 SYSBACKUP 管理权限的做法保持一致,云自动化在 CDB$ROOT 容器级别创建一个名为 C##DBLCMUSER 的公用管理用户,该用户具有 SYSBACKUP 角色。因此,对具有所需权限最少的用户执行备份和恢复操作。此用户的身份证明由云自动化随机生成并安全管理。如果未找到该用户,或者该用户已锁定且处于 EXPIRED 状态,则云自动化将在备份或恢复操作期间重新创建或解锁此用户。

自动增量和归档重做日志备份

为数据库启用对象存储备份功能时,服务会持续创建以下内容:

  • 每周级别 0 备份,通常在指定的周末创建。级别为 0 的备份等同于完全备份。请注意,在控制台中,每周级别 0 备份将显示在备份类型为 "incremental" 的备份列表中,每日级别 1 备份也是如此。
  • 每日 1 级备份,即在 0 级备份日后的六天内每天创建的增量备份。
  • 级别 0 和级别 1 备份存储在对象存储中并分配有 OCID。
  • 持续的归档重做日志备份(最低频率为每 60 分钟一次)。OCI 控制台中数据库详细信息页上的上次备份时间字段显示上次归档重做日志的时间。此备份不同于级别 0 和级别 1 自动备份,因为它基于日志数据,没有分配的 OCID。上次归档重做日志备份可用于创建新数据库或以最少的数据丢失恢复数据库。

备份保留

如果选择启用自动备份,则可以从提供的保留期之一或定制策略中进行选择。系统将在所选保留期结束时自动删除增量备份。

以下保留期可用于恢复服务。保留期(以天为单位)在恢复服务保护策略中定义。
  • 青铜(14 天)
  • 银牌(35 天)(默认值)
  • 黄金(65 天)
  • 白金(95 天)
  • 定制(用户定义的保护策略)
对象存储具有以下保留期。
  • 7 天
  • 15 天
  • 30 天(默认值)
  • 45 天
  • 60 天

使用恢复服务的长期保留备份

通过长期保留备份 (LTR),您可以将完整备份存储在长达十年的时间内,以满足合规性、法规或其他业务需求,同时实现全面的 LTR 生命周期管理和不变性。

对于具有恢复服务的 LTR,保留期必须为从创建备份开始的天数 (90 - 3650) 或年数 (1 - 10)。

要创建具有所需保留期的 LTR 备份,恢复服务不需要创建新的完全生产备份,而是通过在策略中定义的恢复窗口中利用系统中的现有操作备份来实现。有关详细步骤,请参见 Create an On-Demand Backup of a Database

您可以在保留期内更改特定现有 LTR 备份的保留期。有关详细步骤,请参见 Change the Retention Period of a Long-Term Retention Backup with Recovery Service

可以还原 LTR 备份以在保留期内创建新数据库。有关详细步骤,请参见使用控制台从备份创建数据库系统

在数据库系统终止时,将根据“数据库终止后删除选项”值删除 LTR 备份。
  • 在 72 小时内删除备份:将删除所有备份,包括 LTR 备份。
  • 根据策略删除:将根据每个 LTR 备份的保留策略保留 LTR 备份。

注意:

Oracle 建议在终止数据库系统时选择“基于策略删除”选项以确保保留 LTR 备份。

请考虑以下 LTR 备份的其他因素:

  • LTR 备份将继续存在,与数据库上配置的任何自动备份无关。
  • LTR 备份将在指定的保留期结束后自动删除。
  • LTR 不支持就地恢复。
  • 对于 Data Guard 配置中的数据库,将仅为请求 LTR 备份的数据库创建 LTR 备份。
  • 数据库应处于 AVAILABLE 状态才能创建 LTR。
  • 具有基于文件的 TDE 或基于 KMS 的密钥库的数据库支持 LTR。
  • 将为 LTR 的整个保留期维护所有加密密钥。
  • 如果 LTR 处于“正在创建”状态,则可以取消该 LTR。
  • 创建 LTR 备份后,您可以随时将其删除。
  • 在还原期间,如果要还原的 LTR 备份是支持的数据库主目录主版本,则将还原到该版本的最新 RU。
  • 在还原期间,如果要还原的 LTR 备份不是受支持的数据库主目录主版本,则该备份将还原到任何受支持的主版本,数据库必须升级到任何受支持的主版本。

还原选项

以下还原选项可用于数据库。不支持 LTR。

  • 还原到最新:将数据库还原到最近的已知正常状态,并最大程度减少数据丢失。
  • 还原到时间戳:将数据库还原到指定的时间戳。
  • 还原到 SCN :使用指定的系统更改号 (System Change Number,SCN) 还原数据库。此 SCN 必须有效。

    注意:

    可以通过访问和查询您的数据库主机或访问任何联机或归档日志确定要使用的 SCN 编号。

保护策略

Recovery Service 使用保护策略控制 Oracle Cloud 中的数据库备份保留。

保护策略为受保护数据库提供自动保留管理,可满足受监管环境的要求。每个受保护数据库必须与一个保护策略关联。

保护策略确定恢复服务创建的备份允许的最长时间(以天为单位)。您可以根据业务需求为每个受保护数据库分配单独的策略,也可以在 VCN 中的所有受保护数据库中使用单个策略。

有关详细信息,请参阅管理保护策略

受保护的数据库

受保护数据库是指使用 Recovery Service 进行备份操作的 Oracle Cloud 数据库。

有关详细信息,请参阅管理受保护数据库

实时数据保护

恢复服务提供实时数据保护,以便在数据库发生故障后几秒钟内恢复数据库。

实时保护是指将重做更改从受保护数据库持续传输到恢复服务。这样可以减少数据丢失,并提供接近 0 的恢复点目标 (recovery point objective,RPO)。这是一个额外的成本选项。

有关详细信息,请参阅实时数据保护

数据库终止后的备份删除选项

终止数据库时,将删除数据库的所有资源以及任何自动备份。使用恢复服务对象存储目标的托管备份将根据所选的保留策略选项删除。

在数据库终止后,您可以使用以下选项保留托管数据库备份。这些选项还可以帮助在数据库意外或恶意损坏时从备份还原数据库。

  • 根据保留期保留备份:终止数据库时,与终止的数据库及其所有资源关联的自动数据库备份将在指定的保留期结束时删除。
  • 保留备份 72 小时,然后删除:当数据库终止时,与已终止数据库及其所有资源关联的自动数据库备份将保留 72 小时,然后删除。备份将保留 72 小时,以防用户意外删除。

备份计划

对于 Recovery Service 备份,自动备份过程可随时启动或在分配的窗口中启动。

对于对象存储备份,用于创建 0 级和 1 级备份的自动备份过程可以在每日备份窗口(午夜到凌晨 6:00)内随时运行。您可以选择为数据库指定一个 2 小时调度窗口,在此期间将开始自动备份过程。有 12 个计划窗口可供选择,每个窗口从偶数小时开始(例如,一个窗口从凌晨 4:00 到 6:00 运行,下一个窗口从凌晨 6:00 到 8:00 运行)。备份作业不一定在调度窗口中完成。

对于对象存储备份,如果您未指定窗口,则会将数据库系统区域时区中默认备份窗口 00:00 至 06:00 分配给您的数据库。请注意,默认备份调度窗口的长度为六小时,而您指定的窗口的长度为两小时。

调度备份时请考虑以下因素。

  • 备份窗口时区:在 2018 年 11 月 20 日后为任何数据库启用的自动备份都将按数据库系统所在区域的时区在午夜到上午 6:00 之间运行。如果在此日期之前为数据库启用了自动备份,则数据库的备份时间段将仍为 UTC 凌晨 6:00。您可以创建 My Oracle Support 服务请求,以便在您选择的备份窗口中运行自动备份。
  • Data Guard :在 Data Guard 关联中,您可以配置自动备份并创建主数据库的备份。但是,您无法配置自动备份或创建备用数据库的备份。此外,在执行切换操作后,必须为在 Data Guard 关联中承担主角色的数据库重新配置自动备份。
  • 保留期更改:如果将来缩短数据库的自动备份保留期,则系统会删除超出更新保留期的现有备份。
  • 对象存储成本:自动备份会产生对象存储使用成本。

On-Demand 完整备份

您可以随时为数据库创建完整备份,除非您的数据库在 Data Guard 关联中担任备用角色。

独立备份

终止数据库系统或数据库时,其所有资源都会被删除,并执行任何自动备份。将根据所选的保留策略选项删除使用恢复服务和对象存储目的地的托管备份。完整备份将作为独立备份保留在对象存储中。您可以使用独立备份来创建新数据库。

注意:

  • 在控制台中看到的备份列表不包括任何非托管备份(使用 RMANdbcli 直接创建的备份)。
  • 所有备份都使用用于透明数据加密 (Transparent Data Encryption,TDE) wallet 加密的同一主密钥进行加密。

取消正在运行的完全备份或增量备份

您可以取消正在进行的备份,从而释放系统资源。在“Create Database(创建数据库)”工作流中,您可以独立(在创建数据库之后)启用自动备份并选择所需的备份目标。根据所选的备份目标,您可能具有一个或多个完整备份和多个增量备份。这些备份一旦启动,您可以选择在中间取消它们。您可以从控制台或 API 取消任何正在运行的备份(自动或独立)。您可以取消手动备份,单击“创建备份”按钮时会触发该备份。您还可以删除已取消的手动备份。

从 Data Guard 关联中的备用数据库备份和还原

您可以从数据卫士关联中的备用数据库进行备份和还原。通过使用此功能,可以将备份分流到备用数据库,从而释放主数据库中的资源。

开始之前,请注意以下事项:

  • 可以使用恢复服务或对象存储来备份备用数据库。
  • 您可以在备用数据库上安排自动备份,并配置保留期和备份计划。
  • 您可以在同一区域中的其他可用性域 (AD) 中创建数据库,也可以从备用数据库的备份在其他区域中创建数据库。
  • 只能在主数据库、备用数据库或主数据库和备用数据库上配置备份。但是,配置后,主数据库和备用数据库必须具有相同的备份目标。
  • 对于恢复服务中的备份,可以从备用数据库或主数据库的备份还原或恢复主数据库。同样,可以从主数据库或备用数据库的备份还原或恢复备用数据库。
  • 对于对象存储中的备份,只能从主数据库和备用数据库还原或恢复各自的备份。
  • Data Guard 关联中的主数据库和备用数据库的备份目标必须相同。例如,如果主数据库的备份目的地是 Recovery Service,则备用数据库的备份目的地也必须是 Recovery Service。同样,如果备用数据库的备份目的地是 Recovery Service,则主数据库的备份目的地也必须是 Recovery Service。
  • 只有在 Data Guard 关联中的主数据库或备用数据库上禁用备份后,才能更改备份目的地。例如,如果主数据库和备用数据库的备份目的地是对象存储,并且您希望将主数据库的备份目的地更改为恢复服务,则必须首先禁用备用数据库上的备份。
  • 如果在主数据库上配置了自动备份,则切换后,备份将在新备用数据库上继续。
  • 如果在备用数据库上配置了自动备份,则在故障转移后,备份将在新主数据库上继续,并且将在新备用数据库上禁用备份。

有关使用控制台配置自动备份的详细步骤,请参见 Configure Automatic Backups for a Standby Database

跨区域恢复

您可以使用现有备份和还原,使用通过对象存储或自治恢复服务创建的备份,跨同一区域中的可用性域或其他区域创建数据库(异地还原)。

您还可以还原使用基于主机的 Wallet(本地 Wallet)或 OCI Vault 配置的数据库上执行的备份。有关数据库加密密钥的更多信息,请参见管理加密密钥

对于 Oracle Database Autonomous Recovery Service,跨区域还原(在同一租户内)需要满足以下先决条件。

  1. VCN 对等连接:本地和远程区域中的 VCN 都必须跨区域对等连接。
  2. 在源和目标 VCN 上添加安全规则。

    1. 在源上添加入站规则。
      1. 单击添加入站规则,然后添加以下详细信息以设置允许来自任何位置的 HTTPS 流量的规则:

        • 源类型:CIDR
        • 源 CIDR:指定数据库所在的 VCN 的 CIDR。
        • IP 协议:TCP
        • 源端口范围:全部
        • 目的地端口范围: 8005
        • 说明:指定入站规则的可选说明以帮助管理安全规则。
      2. 单击“Add Ingress Rule(添加入站规则)”,然后添加以下详细信息以设置允许来自任何位置的 SQLNet 流量的规则:

        • 源类型:CIDR
        • 源 CIDR:指定数据库所在的 VCN 的 CIDR。
        • IP 协议:TCP
        • 源端口范围:全部
        • 目的地端口范围: 2484
        • 说明:指定入站规则的可选说明以帮助管理安全规则。
      3. 单击“Add Ingress Rule(添加入站规则)”,然后添加以下详细信息以设置允许从任意位置进行 HTTPS 流量的规则:

        • 源类型:CIDR
        • 源 CIDR:指定目标 VCN 的 CIDR。
        • IP 协议:TCP
        • 源端口范围:全部
        • 目的地端口范围: 8005
        • 说明:指定入站规则的可选说明以帮助管理安全规则。
      4. 单击“Add Ingress Rule(添加入站规则)”,然后添加以下详细信息以设置允许来自任何位置的 SQLNet 流量的规则:

        • 源类型:CIDR
        • 源 CIDR:指定目标 VCN 的 CIDR。
        • IP 协议:TCP
        • 源端口范围:全部
        • 目的地端口范围: 2484
        • 说明:指定入站规则的可选说明以帮助管理安全规则。
    2. 在目标上添加出站规则。如果为所有 IP 和端口打开了出站通信,则这些通信是可选的。
      1. 单击“Add Egress Rule(添加出站规则)”,然后添加以下详细信息以设置允许从任意位置进行 HTTPS 流量的规则:

        • 源类型:CIDR
        • 源 CIDR:指定源 VCN 的 CIDR。
        • IP 协议:TCP
        • 源端口范围:全部
        • 目的地端口范围: 8005
        • 说明:指定入站规则的可选说明以帮助管理安全规则。
      2. 单击“Add Egress Rule(添加出站规则)”,然后添加以下详细信息以设置允许来自任何位置的 SQLNet 流量的规则:

        • 源类型:CIDR
        • 源 CIDR:指定源 VCN 的 CIDR。
        • IP 协议:TCP
        • 源端口范围:全部
        • 目的地端口范围: 2484
        • 说明:指定入站规则的可选说明以帮助管理安全规则。

    注意:

    确保恢复服务子网存在于源区域中并已连接到源 VCN。有关详细信息,请参阅在数据库 VCN 中创建恢复服务子网
  3. 在本地和远程 VCN 之间执行 DNS 对等连接。

使用自动备份对数据库进行审计和跟踪文件保留

Oracle Database 将审计和跟踪文件写入 /u01 目录中数据库的本地存储。默认情况下,这些文件将保留 30 天,但您可以更改此间隔。每天一次,Oracle Scheduler 作业将放弃超过 30 天(或用户指定的间隔,如果适用)的审计和跟踪文件。如果希望永久保留这些文件,还可以禁用调度程序作业。使用以下 dbcli 命令可更改此调度程序作业。

  • 要将保留期从默认设置为 30 天,请执行以下操作:

    dbcli update-database -in <dbName> -lr <number_of_days_to_retain_files>

    例如:

    dbcli update-database -in inventorydb -lr 15
  • 要为较旧的审计和跟踪文件禁用每日丢弃调度程序作业,请执行以下操作:

    dbcli update-schedule -i <schedulerID> -d

    例如:

    dbcli update-schedule -i 5678 -d

使用 API

有关使用 API 和签名请求的信息,请参阅 REST API安全身份证明。有关 SDK 的信息,请参见 Software Development Kits and Command Line Interface

使用以下 API 操作管理数据库备份:

  • ListBackups
  • GetBackup
  • CreateBackup
  • DeleteBackup
  • RestoreDatabase
  • UpdateDatabase- 启用和禁用自动备份。
  • CreateDbHome —用于从独立备份创建数据库系统数据库。

有关数据库服务的 API 的完整列表,请参阅数据库服务 API