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