Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
备份是任何业务连续性策略不可或缺的部分。 它们有助于保护数据免于意外损坏或删除。
Azure Database for PostgreSQL 会自动执行服务器的常规备份。 然后,可以在指定的保持期内进行时间点还原 (PITR)。 还原和恢复的总时间通常取决于数据大小和要执行的恢复量。
备份概述
Azure Database for PostgreSQL 会创建数据文件的快照备份,并根据 区域安全地将其存储在区域冗余存储或本地冗余存储中。 服务器还会在预写日志 (WAL) 文件已准备好存档时备份事务日志。 可以使用这些备份将服务器还原到所配置的备份保留期中的任意时间点。
默认备份保留期为 7 天,但你可以将此期限延长为最大 35 天。 所有备份都通过针对静态存储数据的 AES 256 位加密进行加密。
这些备份文件无法导出,也不能用于在 Azure Database for PostgreSQL 灵活服务器实例之外创建服务器。 为此,可以使用 PostgreSQL 工具 pg_dump 和 pg_restore/psql。
备份频率
Azure Database for PostgreSQL 灵活服务器实例的备份以快照为基础。 第一次快照备份在创建服务器后立即进行计划。 快照备份当前每日创建一次。 如果在上次快照备份后没有对服务器上的任何数据库进行进一步的修改,则快照备份将暂时暂停。 在服务器上的任何数据库受到修改后,系统就会立即记录新的快照以捕获最新的更改。 第一个快照是完整备份,连续快照则是差异备份。
事务日志备份的发生频率不同,具体取决于工作负载和 WAL 文件已填充并准备好存档的时间。 一般情况下,延迟 RPO(恢复点目标)最长可为 5 分钟。
备份冗余选项
Azure Database for PostgreSQL 存储多个备份副本,帮助保护您的数据免受计划内和计划外事件的影响。 这些事件可能包括暂时性硬件故障、网络中断或断电,以及自然灾害。 备份冗余有助于确保数据库即使在发生故障时也能满足其可用性和持续性目标。
Azure Database for PostgreSQL 提供三个选项:
区域冗余备份存储:对于支持可用性区域的区域,会自动选择此选项。 备份存储在区域冗余备份存储中时,数据的三个副本保存在托管服务器的可用性区域中。 此外,系统会将数据复制到另一个可用性区域,以便添加保护。
此选项提供跨可用性区域的备份数据可用性,并限制数据只能在一个地区内复制,以满足数据驻留要求。 此选项在一年的时间里为备份对象提供至少 99.9999999999%(12 个 9)的持续性。
本地冗余备份存储:对于不支持可用性区域的区域,会自动选择此选项。 将备份存储在本地冗余备份存储中时,会将多个备份副本都存储在同一数据中心内。
此选项有助于保护数据免受服务器机架和驱动器故障的影响。 它确保备份对象的耐久性至少达到 99.999999999%(11 个 9),持续时间不少于一年。
默认情况下,对于具有相同区域高可用性 (HA) 或无高可用性配置的服务器,备份存储将设置为本地冗余。
异地冗余备份存储:可以在创建服务器时选择此选项。 将备份存储在异地冗余备份存储中时,不仅会将数据的三个副本存储在托管服务器的区域中,还会将数据复制到异地配对的区域。
使用此选项可以在发生灾难时将服务器还原到其他区域。 它还能在一年的时间里为备份对象提供至少 99.99999999999999%(16 个 9)的持久性。
托管在任何 Azure 配对区域中的服务器都支持异地冗余。
从其他备份存储选项移动到异地冗余备份存储
只能在创建服务器期间为备份配置异地冗余存储。 预配服务器后,无法更改备份存储冗余选项。
备份保留
备份是根据你为服务器设置的保留期保留的。 可以选择 7 天(默认值)到 35 天的保留期。 可以在创建服务器期间设置保留期,也可以在以后更改保留期。 即使对于已停止的服务器,也会保留备份。
备份保持期用于决定可使用可用备份检索 PITR 的时间范围。 从还原的角度看,还可以将备份保留期视为恢复时段。
在备份保留期内执行 PITR 所需的所有备份都保留在备份存储中。 例如,如果备份保留期设置为 7 天,则恢复时段是过去 7 天。 在这种情况下,将保留在过去 7 天内还原和恢复服务器所需的所有数据与日志。
备份存储成本
Azure Database for PostgreSQL 提供高达 100% 的预配服务器存储作为备份存储,无需额外费用。 使用的任何额外备份存储每月按 GiB 数收费。
例如,如果为服务器预配了 250 GiB 的存储,则有 250 GiB 不额外收费的备份存储容量。 如果每日备份使用量为 25 GiB,则最多可有 10 天的免费备份存储。 超出 250 GiB 的备份存储消耗量按定价模型的规定收费。
如果为服务器配置了异地冗余备份,则还会将备份数据复制到 Azure 配对区域。 因此,备份大小将是本地备份副本大小的两倍。 费用的计算方式如下:( (2 x 本地备份大小) - 预配的存储大小 ) x 价格(按 GiB/月)。
可以使用 Azure 门户中的“已使用的备份存储”指标来监视服务器消耗的备份存储。 “已使用的备份存储”指标表示根据为服务器设置的备份保留期,保留的所有数据库备份和日志备份消耗的存储总和。
注意
不管数据库大小如何,服务器上的繁重事务活动都会生成更多的 WAL 文件。 而文件的增加又会增大备份存储的使用量。
时间点还原
在 Azure Database for PostgreSQL 灵活服务器实例中,执行 PITR 会在源服务器所在的同一区域中创建新服务器,但可以选择可用性区域。 该服务器是使用源服务器的定价层、计算代系、虚拟核心数、存储大小、备份保留期和备份冗余选项的配置创建的。
首先,将物理数据库文件从快照备份还原到服务器的数据位置。 这会自动选择并还原所需时间点之前进行的相应备份。 然后,使用 WAL 文件启动恢复过程,使数据库处于一致状态。
例如,假设在每晚 11 点执行备份。 如果还原点适用于 8 月 15 日上午 10:00,则将还原 8 月 14 日的每日备份。 将使用从 8 月 14 日晚上 11 点到 8 月 15 日上午 10 点的事务日志备份来恢复 8 月 15 日上午 10 点之前的数据库状态。
若要还原数据库服务器,请参阅以下任一内容:
重要
Azure Database for PostgreSQL 灵活服务器实例中的还原操作始终使用提供的名称创建新的数据库服务器。 它不会覆盖现有的数据库服务器。
PITR 可用于如下场景:
- 用户意外删除了数据、表或数据库。
- 应用程序因自身缺陷而意外以错误数据覆盖了正确数据。
- 你希望克隆服务器来进行测试、开发或数据验证。
由于事务日志的连续备份,你能够还原到最近的事务。 可以从以下还原选项中选择:
最新还原点(现在):这是允许将服务器还原到最新时间点的默认选项。
自定义还原点:通过此选项,可在为此 Azure Database for PostgreSQL 灵活服务器实例定义的保持期内选择任何时间点。 默认情况下,会自动选择最近的 UTC 时间。 如果出于测试目的想要还原到最后一个已提交的事务,自动选择会很有用。 可根据需要选择其他日期和时间。
最快还原点:通过此选项,用户能够以尽可能最快的速度将服务器还原到为其 Azure Database for PostgreSQL 灵活服务器定义的保留期内的日期。 可以通过直接从备份列表中选择时间戳来实现速度最快的还原。 此还原操作预配服务器且仅还原完整的快照备份,并不要求恢复日志,因此速度很快。 建议选择一个备份时间戳,该时间戳晚于某个成功的还原操作的最早还原时间点。
使用最新还原点和自定义还原点选项进行恢复所需的时间因各种因素而异,例如要处理的自上次备份以来的事务日志量和在同一区域中同时恢复的数据库总数。总恢复时间通常需要几分钟到几个小时。
如果在虚拟网络中配置了服务器,可将其还原到同一虚拟网络或不同虚拟网络。 但是,无法还原到公共访问服务器。 同样,如果为服务器配置了公共访问,则无法还原为专用虚拟网络访问。
重要
可以还原删除的服务器。 如果您删除了服务器,可以按照我们的指南 还原已删除的 Azure Database for Azure Database for PostgreSQL 灵活服务器 来恢复。 使用 Azure 资源锁帮助防止意外删除服务器。
异地冗余备份和还原
若要从 Azure 门户中的 “计算 + 存储 ”窗格启用异地冗余备份,请参阅 “创建 Azure Database for PostgreSQL”。
重要
只能在创建服务器时配置异地冗余备份。
为服务器配置异地冗余备份后,可以将其还原到异地配对区域。 有关详细信息,请参阅异地冗余备份支持的区域。
为服务器配置异地冗余备份后,备份数据和事务日志将通过存储复制以异步方式复制到配对区域。 创建服务器后,请等待至少一小时,然后启动异地还原。 这将使第一组备份数据可以复制到配对区域。
之后,事务日志和每日备份将以异步方式复制到配对区域。 数据传输可能会出现最多一小时的延迟。 因此,在还原时,预计恢复点目标最多为一小时。 只能还原到配对区域中最后可用的备份数据。 目前不提供异地冗余备份的时间点还原。
恢复服务器的估计时间 RTO(恢复时间目标)取决于多种因素,例如数据库的大小、上次数据库备份时间和在上次接收备份数据之前处理的 WAL 量。 整个恢复时间通常需要几分钟到几小时。
在异地还原期间,可更改的服务器配置包括虚拟网络设置以及从还原的服务器中删除异地冗余备份的能力。 不支持在异地还原期间更改其他服务器配置,例如计算、存储或定价层(“可突发”、“常规用途”或“内存优化”)。
有关详细信息,请参阅还原到配对区域(异地还原)。
重要
当主要区域发生故障时,无法在相应的异地配对区域中创建异地冗余服务器,因为无法在主要区域中预配存储。 在异地配对区域中预配异地冗余服务器之前,必须先等待主要区域恢复正常运行。
在主要区域发生故障时,仍可将源服务器异地还原到异地配对区域。 有关详细信息,请参阅还原到配对区域(异地还原)。 如果需要将灾难恢复(DR)策略配置为任何区域,或者主要区域不支持异地冗余备份,则应使用异地副本作为灾难恢复策略。
建议对任务关键型工作负荷使用虚拟终结点,因为它为应用程序提供稳定的连接点,确保中断最少。 如果虚拟终结点映射到主服务器,请从主服务器中删除虚拟终结点,删除删除后,将相同的虚拟终结点添加到新创建的服务器。 这可确保应用程序连接保持一致,并最大限度地减少停机时间。 有关详细信息,请参阅 如何在 PITR 过程中使用虚拟终结点以确保主机名的一致性
还原和网络
时间点还原
如果为源服务器配置了公共访问网络,则只能还原到公共访问网络。
如果为源服务器配置了专用访问虚拟网络,则可以还原到相同或不同的虚拟网络。 无法跨公共访问和专用访问网络执行 PITR。
异地还原
如果为源服务器配置了公共访问网络,则只能还原到公共访问网络。 此外,必须在还原作完成后应用防火墙规则。
如果为源服务器配置了专用访问虚拟网络,则只能还原到不同的虚拟网络,因为虚拟网络不能跨区域。 不能跨公共和专用访问执行异地还原。
还原后任务
还原服务器后,可执行以下任务,使用户和应用程序恢复正常运行:
如果需要使用新的服务器来替换原始服务器,请将客户端和客户端应用程序重定向到新服务器。 更改连接字符串的服务器名称,以指向新的服务器。
原始服务器上所有服务器参数的值不会自动应用于新服务器。 确保根据新服务器的要求重新配置新服务器上的所有服务器参数。
确保为用户连接设置适当的服务器级防火墙规则、专用终结点和虚拟网络规则。 不会从源服务器复制这些规则。
根据需要扩展或缩减已还原服务器的计算资源。
确保设置适当的登录名和数据库级权限。
适当地配置警报。
如果还原所使用的源服务器配置了高可用性,并且你想要为已还原的服务器配置高可用性,可以按照这些步骤进行操作。
如果您还原的源服务器配置了只读副本,并且您希望在还原的服务器上配置只读副本,您可以按照创建只读副本中的说明进行操作。
按需备份
Azure Database for PostgreSQL 灵活服务器实例会自动生成整个数据库实例的存储卷快照,涵盖所有数据库,作为其计划备份的一部分。 此外,可以根据需求创建按需备份,这非常适合于准备应对潜在风险操作或在通常的备份计划之外执行定期刷新等情况。
除了计划的自动备份外,还可以进行按需备份。 根据备份保留时段保留这些备份。 如果不再需要这些备份,可以随时删除这些按需备份。 若要启动按需备份,只需选择要备份的数据库实例并指定备份名称。 这些备份与自动备份一起存储,但用户只能删除按需备份,因为服务管理并保留自动备份以满足备份保留要求。
有关详细信息,请参阅 执行按需备份。
局限性
- 可突发服务器计算层目前不支持按需备份功能。
- SSDv2 存储层目前不支持按需备份功能。
- 每个灵活服务器最多可以执行 7 个随选备份,这些备份会根据备份保留时段进行保留。
长期保留
Azure 备份和 Azure Database for PostgreSQL 服务为 Azure Database for PostgreSQL 灵活服务器实例构建了一个企业级的长期备份解决方案,将备份保留长达 10 年。 除了 Azure Database for PostgreSQL 提供的自动备份解决方案外,还可以独立使用长期保留(LTR),该解决方案最多保留 35 天。 自动备份是适用于操作恢复的物理备份,尤其是在想要从最新备份还原时。 长期备份更精细,通过使用本机 pg_dump 作为逻辑备份,并可帮助满足合规性需求。 除了长期保留,该解决方案还提供以下功能:
- 客户可在单个数据库级别控制计划备份和按需备份。
- 集中监视所有操作和作业。
- 备份存储在单独的安全域和容错域中。 如果源服务器或订阅受到损坏,备份在备份保管库中(在 Azure 备份托管存储帐户中)都会保持安全。
- 使用 pg_dump 可以更灵活地跨不同数据库版本还原数据。
- Azure 备份保管库支持不可变性和软删除(预览版)功能,可保护数据。
- 对启用了 CMK 的服务器的 LTR 备份支持。
限制和注意事项
- 强烈建议在配置后立即测试 LTR 备份和还原,以确保它们满足业务要求。
- LTR 还原目前仅作为“还原为文件”提供给存储帐户,并计划将来提供“还原为服务器”功能。
- LTR 可备份灵活服务器实例中的所有数据库,并且无法为 LTR 配置选择单个数据库。
- 副本不支持 LTR 备份,但可以在主服务器上执行。
- 长期保留 (LTR) 备份支持的最大数据库大小为 1 TiB。
- LTR 备份可以按每周、每月或每年进行计划。 目前不支持每日备份计划。
- LTR 备份不支持包含 BYTEA 长度超过 500 MB 的行的表。
- 还原 Microsoft Entra 用户的角色时,请确保已启用 Microsoft Entra 身份验证,并已以 Microsoft Entra Admin 身份登录以创建其他用户。 尝试以常规用户身份创建 Entra 角色将导致错误。
有关执行长期备份的详细信息,请访问操作指南。
常见问题解答
备份相关问题
Azure 如何处理服务器的备份?
默认情况下,Azure Database for PostgreSQL 允许自动备份整个服务器(包括创建的所有数据库),默认保留期为 7 天。 自动备份包括数据库的每日增量快照。 日志 (WAL) 文件持续存档至 Azure Blob 存储。
是否可将自动备份配置为长期保留数据?
否。 目前,Azure Database for PostgreSQL 最多支持 35 天的保留期。 可以使用 Azure 备份进行手动备份,满足长期保留要求。
如何手动备份 Azure Database for PostgreSQL 灵活服务器实例?
可以使用按需备份功能手动创建物理快照,也可以使用 PostgreSQL 工具 pg_dump进行逻辑备份。 有关示例,请参阅 使用转储和还原迁移 Azure Database for PostgreSQL 数据库。
我的服务器的备份时段是什么? 是否可以自定义它们?
Azure 负责管理备份时间段,用户无法自定义。 第一次完整快照备份将在服务器创建后立即安排。 后续的快照备份是增量性的,每天进行一次。
我的备份是否加密?
是的。 在查询执行期间创建的所有 Azure Database for PostgreSQL 灵活服务器实例数据、备份和临时文件都通过 AES(高级加密标准)256 位加密进行加密。 存储加密始终处于启用状态,无法禁用。
是否可以还原服务器中的单个数据库或少量几个数据库?
不直接支持还原单个/少量几个数据库或表。 不过,你可以将整个服务器还原到新服务器,然后删除新服务器上不需要的表或数据库。
当备份正在进行时,我的服务器是否可用?
是的。 备份是使用快照执行的联机操作。 快照操作只需几秒钟,不会干扰生产工作负载,可帮助确保服务器的高可用性。
为服务器设置维护时段时,是否需要考虑备份时段?
否。 备份作为托管服务的一部分在内部触发,对维护时段没有影响。
我的自动备份存储在何处,如何管理其保留期?
Azure Database for PostgreSQL 灵活服务器实例会自动创建服务器备份并将其存储在以下服务器备份中:
- 在支持多个可用区域的地区中,提供区域冗余存储。
- 在尚不支持多区域的地区中,本地冗余存储。
- 配对区域(如果已配置异地冗余备份)。
这些备份文件无法导出,因为它们存储在 Azure 管理的存储帐户中。 客户具有只读权限,可还原这些文件,但无法修改或删除它们。 备份文件在保持期过后会自动删除
备份仅可用于将服务器还原到某个时间点。 备份的默认保持期为 7 天。 可以选择性地将备份保留期配置为最长 35 天。
使用异地冗余备份时,备份复制到配对区域的频率是怎样的?
为服务器配置了异地冗余备份时,备份数据将存储在异地冗余存储帐户中。 在主服务器上进行每日备份时,存储帐户会将数据文件复制到配对区域。 当 WAL 文件准备好存档时,就会进行备份。
备份数据以异步连续的方式复制到配对区域。 接收备份数据时,延迟应最多不超过 1 小时。
能否在远程区域执行 PITR?
否。 数据将恢复到远程区域中最后一个可用备份数据。
如何在启用了高可用性的服务器中执行备份?
Azure Database for PostgreSQL 灵活服务器实例中的数据卷是通过主服务器中的托管磁盘增量快照备份的。 WAL 备份是从主服务器或备用服务器执行的。
如何验证是否在服务器上执行了备份?
检查备份的最佳方法是执行定期 PITR,并确保备份有效且可还原。 系统不会向最终用户公开备份操作或文件。
在哪里可以查看备份使用情况?
在 Azure 门户中的“监视”下,选择“指标”。 在“已用备份存储”中,你可以监视总体备份使用情况。
如果删除服务器,我的备份会发生什么情况?
如果你删除了某个服务器,则也会删除属于该服务器的所有备份,且不可恢复。 为了帮助防止服务器资源在部署后遭意外删除或更改,管理员可以使用管理锁。
如何为已停止的服务器保留备份?
不会对已停止的服务器执行任何新备份。 停止服务器时的(在保留时段内的)所有旧备份将保留到服务器重启为止。 在此之后,活动服务器的备份保留时间由其保留窗口期决定。
如何对备份收费和计费?
Azure Database for PostgreSQL 提供高达 100% 的预配服务器存储作为备份存储,无需额外费用。 你所使用的任何其他备份存储按每月每千兆字节计费,如定价模型中所定义。
选择的备份保留期和备份冗余选项以及服务器上的事务活动会直接影响总备份存储和计费。
对于已停止的服务器如何计费?
服务器实例停止后,不会执行新的备份。 你需要为预配的存储和备份存储(在指定保留时段内存储的备份)付费。
免费备份存储仅限于预配数据库的大小。 任何超额的备份数据将按备份价格收费。
我为我的服务器配置了区域冗余高可用性。 你们会做两次备份吗?然后我会被收费两次吗?
否。 无论是在高可用性服务器还是非高可用性服务器上,都只会保留一组备份副本。 仅向你收取一次费用。
还原相关问题
如何还原我的服务器?
Azure 支持所有服务器的时间点还原。 用户可以使用 Azure 门户、Azure CLI 和 API 还原到最近的还原点或自定义还原点。
若要使用 pg_dump 等工具从手动备份还原服务器,你可以先创建 Azure Database for PostgreSQL 灵活服务器实例,然后使用 pg_restore 将数据库还原到服务器。
是否可以还原到同一 Azure 区域中的另一个可用性区域?
是的。 如果该区域支持多个可用性区域,则备份将存储在区域冗余存储帐户中,可供你还原到另一个可用性区域。
执行 PITR 需要多长时间? 为什么我的还原操作需要很长时间?
从快照执行数据还原操作与数据大小无关。 但是,应用日志(要重放的事务活动)的恢复过程时间可能会有所不同,具体取决于所请求日期/时间的上一个备份以及需要处理的日志数量。 这一点适用于在同一区域内恢复或将数据恢复到不同区域。
如果我还原启用了高可用性的服务器,是否会自动为还原服务器配置高可用性?
否。 服务器还原为单一实例 Azure Database for PostgreSQL 灵活服务器实例。 还原完成后,可以选择性地为该服务器配置高可用性。
我在虚拟网络中配置了服务器。 是否可以还原到另一个虚拟网络?
是的。 在还原时,请选择要还原到的另一个虚拟网络。
是否可将公共访问服务器还原到虚拟网络,或反向还原?
否。 Azure Database for PostgreSQL 目前不支持跨公共和专用访问还原服务器。
如何跟踪还原操作?
目前无法跟踪还原操作。 可以监视活动日志,以查看操作是正在进行还是已完成。