基本数据库服务中的备份和恢复
备份数据库对于确保数据安全至关重要。Oracle 提供了多种备份数据库的方法。
Oracle 管理的自动备份功能是备份 Oracle Cloud 数据库的首选方法,因为您可以使用控制台轻松配置备份设置。自动备份功能支持将恢复服务和对象存储作为备份目的地,为您提供具有相同成本的全自动化云备份解决方案。您无需执行任何手动备份或备份存储管理任务。还可以将备份存储在本地存储中。每个备份目的地都有其应考虑的优势和要求,如下所述。
恢复服务(建议)
基于本地部署 Oracle Zero Data Loss Recovery Appliance 技术的全托管式服务,为 Oracle 数据库提供现代网络安全保护。独特的自动化功能可实时保护 Oracle Database 更改,在不产生生产数据库开销的情况下验证备份,并支持快速、可预测地恢复到任何时间点。
如果备份当前配置了对象存储,您可以无缝迁移到恢复服务以获得具有相同成本的高级功能。
有关恢复服务的更多信息,请参阅关于 Oracle Database Autonomous Recovery Service 。
对象存储
面向数据库的安全、可扩展的按需存储解决方案。
有关对象存储的更多信息,请参阅对象存储概述。
本地存储
- 备份在本地存储在数据库系统的快速恢复区中。
- 耐久性:低
- 可用性:中
- 备份和恢复率:高
- 优点:优化的备份和快速的时间点恢复。
- 缺点:如果数据库系统变得不可用,则备份也不可用。
目前,Oracle 不提供将块存储卷连接到数据库系统的功能,因此您无法备份到网络连接的卷。
对于非托管备份,您可以使用 RMAN 或 dbcli,并且必须创建和管理您自己的对象存储存储桶来进行备份。
注:如果您之前使用了 RMAN 或 dbcli 来配置备份,然后切换为使用控制台或 API 进行备份,则会创建新的备份配置并将其与数据库相关联。这意味着您无法再依赖之前配置的非托管备份来工作。
有关创建备份的详细说明,请参见:
有关从备份恢复的详细说明,请参见:
必需的 IAM 策略
要使用 Oracle Cloud Infrastructure,必须在策略中由管理员为您授予安全访问权限。无论您是将控制台还是 REST API 与 SDK、CLI 还是其他工具结合使用,都需要进行此访问。如果您收到一条您无权或未经授权的消息,请向管理员核实您具有的访问权限类型以及要使用的区间。
先决条件
复查并确保备份和恢复操作满足以下先决条件:
恢复服务
有关恢复服务先决条件的详细信息,请参见 Configure Recovery Service 。
对象存储
- 数据库系统需要访问对象存储,包括连接到适用的 Swift 端点。Oracle 建议将服务网关与 VCN 一起使用以启用此访问。请参阅 VCN 和子网。
- 要用作备份目标的现有对象存储存储容器。您可以使用控制台或对象存储 API 创建存储桶。请参阅管理存储桶。
- 由 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>有关将用户添加到组的更多信息,请参阅管理组。
有关对象存储的更多信息,请参阅对象存储概述。
一般信息
您的数据库和数据库系统必须处于“可用”状态,备份操作才能成功运行。Oracle 建议您避免在执行备份操作时执行可能会干扰可用性的操作(例如打补丁和 Data Guard 操作)。如果自动备份操作失败,数据库服务将在第二天的备份窗口期间重试该操作。如果按需完整备份失败,您可以在还原数据库系统和数据库可用性时重试该操作。
除了列出的先决条件外,还要确保满足以下条件以避免备份失败:
- 数据库的归档模式设置为
ARCHIVELOG(默认值)。 - 数据库主机文件系统上的
/u01目录具有足够的空闲空间来执行备份进程。 - oracle 用户的 .bash_profile 文件不包含任何交互式命令(例如
oraenv或可能生成错误或警告消息的命令)。 - (用于自动备份)未对 sqlnet.ora 文件中的默认
WALLET_LOCATION条目进行任何更改。 - 未使用标准
RMAN命令对RMAN备份设置进行任何更改。
有关不遵循这些准则可能导致的问题的更多信息,请参见 Troubleshoot Backup Failures 。
托管备份功能
以下信息适用于使用控制台或 API 配置的托管备份。
注:安全区域区间中的数据库必须启用自动备份。有关影响基本数据库服务资源的政策的完整列表,请参见 Security Zone Policies 。
当前支持以下两种类型的自动备份:
- 恢复服务:适用于数据库的集中式、完全托管和独立备份解决方案。
- 对象存储:一个安全、可扩展的按需存储解决方案,适用于数据库。
为了与 Oracle 建议的备份和恢复操作使用 SYSBACKUP 管理权限的做法保持一致,云自动化创建名为 C##DBLCMUSER 的公用管理用户,该用户在 CDB$ROOT 容器级别具有 SYSBACKUP 角色。因此,对具有最少所需特权的用户执行备份和恢复操作。此用户的凭据由云自动化随机生成并安全管理。如果找不到该用户,或者该用户已锁定并已过期,则云自动化将在备份或恢复操作期间重新创建或解锁该用户。
自动增量和归档重做日志备份
为数据库启用对象存储备份功能时,该服务会持续创建以下内容:
- 每周 0 级备份,通常在指定的周末日期创建。级别 0 备份相当于完全备份。请注意,在控制台中,每周 0 级备份显示在备份类型为“增量”的备份列表中,每日 1 级备份也是如此。
- 每日 1 级备份,即在 0 级备份日后的六天内每天创建的增量备份。
- 0 级和 1 级备份存储在对象存储中,并分配有 OCID。
- 正在进行归档重做日志备份(最少频率为每 60 分钟一次)。OCI 控制台中数据库详细信息页上的上次备份时间字段显示上次归档重做日志的时间。此备份与 0 级和 1 级自动备份不同,因为它基于日志数据,并且没有分配的 OCID。最后一个归档重做日志备份可用于创建新数据库或以最少的数据丢失恢复数据库。
备份保持
如果选择启用自动备份,您可以从提供的保留期或定制策略中选择一个。系统会在您选择的保留期结束时自动删除增量备份。
以下保留期可用于恢复服务。恢复服务保护策略中定义了保留期(天)。
- 青铜(14 天)
- Silver(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 备份以在保留期内创建新数据库。有关详细步骤,请参见 Create a DB System from a Backup Using the Console 。
终止数据库系统后,将根据“数据库终止后删除选项”值删除 LTR 备份。
- 72 小时内删除备份:所有备份(包括 LTR 备份)都将被删除。
- 基于策略删除:将根据每个 LTR 备份的保留策略保留 LTR 备份。
注:Oracle 建议在终止数据库系统时选择“基于策略删除”选项,以确保保留 LTR 备份。
请考虑以下 LTR 备份的其他因素:
- 与数据库上配置的任何自动备份无关,LTR 备份将继续存在。
- LTR 备份将在指定的保留期结束后自动删除。
- LTR 不支持就地恢复。
- 对于 Data Guard 配置中的数据库,将仅为其请求的数据库创建 LTR 备份。
- 数据库应处于 AVAILABLE 状态以创建 LTR。
- 具有基于文件的 TDE 或基于 KMS 的密钥库的数据库支持 LTR。
- 将在 LTR 的整个保留期内维护所有加密密钥。
- 如果 LTR 处于“正在创建”状态,则可以将其取消。
- 创建 LTR 备份后,您可以随时将其删除。
- 在还原期间,如果要还原的 LTR 备份是受支持的数据库主目录主要版本,它将恢复到该版本的最新 RU。
- 在还原期间,如果要还原的 LTR 备份不是受支持的数据库主目录主版本,则它将恢复到任何受支持的主版本,在此主版本中,数据库必须升级到任何受支持的主版本。
还原选项
以下还原选项可用于数据库。LTR 不支持此设置。
- 还原到最新:将数据库还原到已知的最后一个正常状态,并尽可能减少数据丢失。
- 还原到时间戳:将数据库还原到指定的时间戳。
- 还原到 SCN :使用指定的系统更改号 (System Change Number,SCN) 恢复数据库。此 SCN 必须有效。
注:您可以通过访问和查询数据库主机或访问任何联机或归档日志来确定要使用的 SCN 编号。
保护策略
Recovery Service 使用保护策略来控制 Oracle Cloud 中的数据库备份保留。
保护策略为受保护数据库提供自动保留管理,满足受监管环境的要求。每个受保护数据库必须与一个保护策略关联。
保护策略确定允许保留 Recovery Service 创建的备份的最长时间(以天为单位)。您可以根据您的业务需求为每个受保护数据库分配单独的策略,或者在一个 VCN 中的所有受保护数据库中使用单个策略。
有关详细信息,请参阅管理保护策略。
受保护的数据库
受保护数据库是指使用 Recovery Service 执行备份操作的 Oracle Cloud 数据库。
有关详细信息,请参阅管理受保护的数据库。
实时数据防护
Recovery Service 提供实时数据保护,您可以在数据库故障的几个子秒内恢复数据库。
实时保护是指将重做更改从受保护数据库持续传输到恢复服务。这可减少数据丢失,并提供接近 0 的恢复点目标 (Recovery Point Objective,RPO)。这是一个额外的成本选择。
有关详细信息,请参阅实时数据保护。
数据库终止后备份删除的选项
终止数据库时,将删除其所有资源以及任何自动备份。将根据所选的保留策略选项删除使用恢复服务和对象存储目标的托管备份。
在终止数据库后,可以使用以下选项保留托管数据库备份。这些选项还可以帮助在意外或恶意损坏数据库时从备份还原数据库。
- 根据保留期保留备份:终止数据库时,将在指定的保留期结束时删除与已终止数据库及其所有资源关联的自动数据库备份。
- 保留 72 小时的备份,然后删除:当数据库终止时,与终止的数据库及其所有资源关联的自动数据库备份将保留 72 小时,然后删除。备份将保留 72 小时,以防止用户意外删除。
备份安排
对于 Recovery Service 备份,自动备份过程会随时或在分配的窗口中启动。
对于对象存储备份,用于创建 0 级和 1 级备份的自动备份过程可以在每日备份窗口(午夜到 6:00 AM)内随时运行。您可以选择为数据库指定一个 2 小时调度窗口,在此期间将开始自动备份过程。有 12 个排程窗口可供选择,每个窗口从偶数小时开始(例如,一个窗口从凌晨 4:00 到 6:00,下一个窗口从凌晨 6:00 到 8:00)。备份作业不一定在调度窗口中完成。
对于对象存储备份,如果未指定窗口,则数据库系统区域中的时区为 00:00 到 06:00 的默认备份窗口会分配给数据库。请注意,默认备份调度窗口长达 6 小时,而您指定的窗口长达 2 小时。
调度备份时,请考虑以下因素。
- 备份窗口时区:在 2018 年 11 月 20 日之后首次为任何数据库启用的自动备份都将在数据库系统所在时区的午夜到凌晨 6:00 之间运行。如果在此日期之前为数据库启用了自动备份,则数据库的备份时间窗口将仍为 UTC 凌晨 00 到 6:00。您可以创建 My Oracle Support 服务请求,使自动备份在您选择的备份窗口中运行。
- Data Guard :在 Data Guard 关联中,您可以配置自动备份并创建主数据库的备份。但是,您无法配置自动备份或创建备用数据库的备份。此外,在切换操作之后,必须再次为在 Data Guard 关联中承担主要角色的数据库配置自动备份。
- 保留期更改:如果将来缩短数据库的自动备份保留期,则系统会删除超出更新保留期的现有备份。
- 对象存储成本:自动备份会产生对象存储的使用成本。
按需完整备份
您可以随时创建数据库的完整备份,除非您的数据库在 Data Guard 关联中承担备用角色。
独立备份
终止数据库系统或数据库时,会删除其所有资源以及任何自动备份。将根据所选的保留策略选项删除使用恢复服务和对象存储目标的托管备份。完整备份将作为独立备份保留在对象存储中。您可以使用独立备份创建新的数据库。
注意:
- 您在控制台中看到的备份列表不包括任何非托管备份(使用
RMAN或dbcli直接创建的备份)。 - 所有备份都使用用于透明数据加密 (Transparent Data Encryption,TDE) wallet 加密的相同主密钥进行加密。
取消正在运行的完全备份或增量备份
您可以取消正在进行的备份,从而释放系统资源。作为“Create Database(创建数据库)”工作流的一部分(在创建数据库之后),您可以启用自动备份并选择所需的备份目的地。根据所选备份目的地,您可能有一个或多个完整备份和多个增量备份。一旦这些备份中的任何一个启动,您可以选择在中间取消它们。您可以从控制台或 API 取消任何正在运行的备份(自动备份或独立备份)。您可以取消手动备份,单击“Create backup(创建备份)”按钮时会触发该备份。您还可以删除已取消的手动备份。
从 Data Guard 关联的备用数据库进行备份和恢复
您可以从 Data Guard 关联中的备用数据库备份和还原。使用此功能,您可以将备份卸载到备用数据库,从而释放主数据库中的资源。
开始之前,请注意以下事项:
- 您可以使用恢复服务或对象存储来备份备用数据库。
- 您可以在备用数据库上调度自动备份并配置保留期和备份调度。
- 您可以从备用数据库的备份在同一区域或不同区域内的其他可用性域 (AD) 中创建数据库。
- 只能在主数据库、仅备用数据库或主数据库和备用数据库上配置备份。但是,配置后,主数据库和备用数据库必须具有相同的备份目标。
- 对于恢复服务中的备份,可以从备用数据库或主数据库的备份还原或恢复主数据库。同样,也可以从主数据库或备用数据库的备份中恢复或恢复备用数据库。
- 对于对象存储中的备份,只能从主数据库和备用数据库各自的备份中还原或恢复主数据库和备用数据库。
- Data Guard 关联中主数据库和备用数据库的备份目标必须相同。例如,如果主数据库的备份目标为 Recovery Service,则备用数据库的备份目标也必须是 Recovery Service。同样,如果备用数据库的备份目标为 Recovery Service,则主数据库的备份目标也必须是 Recovery Service。
- 只有在 Data Guard 关联中的主数据库或备用数据库上禁用备份后,才能更改备份目标。例如,如果主数据和备用数据库的备份目的地是对象存储,并且您希望将主数据库的备份目的地更改为恢复服务,则必须首先对备用数据库的备份禁用。
- 如果在主数据库上配置了自动备份,则在切换时,备份将在新的备用数据库上继续。
- 如果在备用数据库上配置了自动备份,则在故障转移时,备份将在新的主数据库上继续,并且将在新的备用数据库上禁用备份。
有关使用控制台配置自动备份的详细步骤,请参见 Configure Automatic Backups for a Standby Database 。
跨区域恢复
您可以使用现有备份和还原,使用对象存储或自治恢复服务创建的备份,在同一区域内或不同区域内的可用性域中创建数据库(即场外还原)。
您还可以恢复使用基于主机的钱包(本地钱包)或 OCI Vault 配置的数据库上的备份。有关数据库加密密钥的更多信息,请参见 Manage Encryption Keys 。
Oracle Database Autonomous Recovery Service 的跨区域还原(在同一租户内)需要以下先决条件。
-
VCN 对等连接:本地和远程区域中的 VCN 必须跨区域对等连接。
-
在源和目标 VCN 上添加安全规则。
-
在源上添加入站规则。
-
单击添加入站规则,然后添加以下详细信息以设置允许 HTTPS 流量的规则:
- 来源类型:CIDR
- 源 CIDR:指定数据库所在的 VCN 的 CIDR。
- IP 协议:TCP
- 来源端口范围:全部
- 目的地端口范围: 8005
- 说明:指定入站规则的可选说明以帮助管理安全规则。
-
单击“Add Ingress Rule(添加入站规则)”,然后添加以下详细信息以设置允许 SQLNet 流量的规则:
- 来源类型:CIDR
- 源 CIDR:指定数据库所在的 VCN 的 CIDR。
- IP 协议:TCP
- 来源端口范围:全部
- 目的地端口范围: 2484
- 说明:指定入站规则的可选说明以帮助管理安全规则。
-
单击“Add Ingress Rule(添加入站规则)”,然后添加以下详细信息,以设置允许 HTTPS 流量的规则:
- 来源类型:CIDR
- 源 CIDR:指定目标 VCN 的 CIDR。
- IP 协议:TCP
- 来源端口范围:全部
- 目的地端口范围: 8005
- 说明:指定入站规则的可选说明以帮助管理安全规则。
-
单击“Add Ingress Rule(添加入站规则)”,然后添加以下详细信息以设置允许 SQLNet 流量的规则:
- 来源类型:CIDR
- 源 CIDR:指定目标 VCN 的 CIDR。
- IP 协议:TCP
- 来源端口范围:全部
- 目的地端口范围: 2484
- 说明:指定入站规则的可选说明以帮助管理安全规则。
-
-
在目标上添加出站规则。如果为所有 IP 和端口打开出站流量,则这些流量是可选的。
-
单击“Add Egress Rule(添加出站规则)”,然后添加以下详细信息,以设置允许 HTTPS 流量的规则:
- 来源类型:CIDR
- 源 CIDR:指定源 VCN 的 CIDR。
- IP 协议:TCP
- 来源端口范围:全部
- 目的地端口范围: 8005
- 说明:指定入站规则的可选说明以帮助管理安全规则。
-
单击“Add Egress Rule(添加出站规则)”,然后添加以下详细信息以设置允许 SQLNet 流量的规则:
- 来源类型:CIDR
- 源 CIDR:指定源 VCN 的 CIDR。
- IP 协议:TCP
- 来源端口范围:全部
- 目的地端口范围: 2484
- 说明:指定入站规则的可选说明以帮助管理安全规则。
注:请确保恢复服务子网位于源区域中,并且已附加到源 VCN。有关更多信息,请参见 Creating a Recovery Service Subnet in the Database VCN 。
-
-
-
在本地和远程 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 操作用于管理数据库备份:
- 列表备份
- 获取备份
- 创建备份
- 删除备份
- 还原数据库
- UpdateDatabase - 启用和禁用自动备份。
- CreateDbHome - 用于基于独立备份创建数据库系统数据库。
有关数据库服务的 API 的完整列表,请参阅数据库服务 API 。