可以使用 Azure 备份 来保护 Azure Database for PostgreSQL 灵活服务器。 本文汇总了支持的区域、方案和限制。
支持的区域
PostgreSQL 的保管库备份 - 灵活服务器在所有公有云区域和主权区域正式发布。
支持方案
备份 Azure Database for PostgreSQL 灵活服务器时,请考虑以下支持方案:
- 保管库备份还原仅适用于用户指定的存储容器中的 “还原到文件 ”。 可以使用数据库本机工具将此数据还原为新的 PostgreSQL 灵活服务器。
- 如果备份保管库与数据库位于同一订阅或不同订阅中,则支持 PostgreSQL 服务器的备份,前提是它们位于同一租户和区域中。 跨区域(Azure 配对)和同一租户中的订阅支持还原。
- 对于保管库备份,整个服务器都使用所有数据库进行备份。 不支持备份特定数据库。
- 服务器大小 <= 1 TB 支持保管库备份。 如果在大于 1 TB 的服务器大小上配置了备份,则备份作会失败。
- 支持 PostgreSQL - 由客户托管密钥加密的灵活服务器。
- PostgreSQL 灵活服务器的备份不包括由
azuresu
本机azure_pg_admin
PostgreSQL 数据库(包括本机 PostgreSQL 数据库)拥有的数据库。 因此,无法备份或还原具有这些所有者的数据库。 - 建议的还原作频率为每天一次。 一天内触发的多个还原作可能会失败。
限制
Azure Database for PostgreSQL 灵活服务器备份包含以下限制:
- 保管库备份不支持存档层中的存储。
- 副本不支持保管库备份;只能在主服务器上配置备份。
- 对于还原作,不支持项级恢复(特定数据库的恢复)。
- 目前仅支持一次每周备份。 如果在一周内计划多个保管库备份,则只执行一周的第一个备份作,同一周中的后续备份作业将失败。
- 保管库备份不支持包含一行且 BYTEA 长度超过 500 MB 的表。
- 保管库备份仅支持完整备份;不支持增量备份或差异备份。
还原限制
在另一个灵活服务器上还原期间,使用创建角色脚本并
azure_su
azure_pg_admin
replication
localadmin
Entra Admin
导致以下错误,可以安全地忽略这些错误。role "azure_pg_admin" already exists.
role "azuresu" already exists.
role "replication" already exists.
ERROR: must be superuser to create superusers
ERROR: Only roles with privileges of role "azuresu" may grant privileges as this role. permission denied granting privileges as role "azuresu"
ERROR: permission denied granting privileges as role "azuresu" SQL state: 42501 Detail: Only roles with privileges of role "azuresu" may grant privileges.
Ignore any errors related to pg_catalog, pg _aadauth extensions as it is owned by azure_su and localadmin does not have access to directly create this extension on flexible server, but these are automatically created on new flexible servers or when you enable Microsoft entra authentication.
ERROR: Only roles with the ADMIN option on role "pg_use_reserved_connections" may grant this role. permission denied to grant role "pg_use_reserved_connections"
ERROR: permission denied to grant role "pg_use_reserved_connections" SQL state: 42501 Detail: Only roles with the ADMIN option on role "pg_use_reserved_connections" may grant this role.
在 PostgreSQL 社区版本 16 中,删除了超级用户权限以设置绕过行 -level 安全性(RLS)属性的要求。 因此,在版本 16 及更高版本中,可以授予绕过 RLS azure_pg_admin允许其他人设置 RLS。 对于低于 16 的版本,旁路属性仅授予服务器管理员,而没有其他非监督角色。
如果在还原后使用 Entra 管理员,可能会遇到 所有者更改问题 :解决方法是使用 授予 选项提供所有权。