本页介绍了如何使用 AlloyDB Omni Docker 容器附带的开源备份解决方案 pgBackRest 创建的备份来恢复 AlloyDB Omni 集群。
由于 AlloyDB Omni 与 PostgreSQL 兼容,因此 pgBackRest 手册中介绍的数据恢复命令和方法也适用于 AlloyDB Omni。本页面演示了一些常见的恢复任务,并提供了相关命令示例。
如需详细了解如何配置 pgBackRest 以与 AlloyDB Omni 搭配使用,请参阅为 AlloyDB Omni 设置 pgBackRest。
如需了解 Kubernetes 相关信息,请参阅在 Kubernetes 中进行备份和恢复。
准备工作
在将 AlloyDB Omni 配置为与 pgBackrest 搭配使用之前,您需要在自己控制的服务器上安装并运行 AlloyDB Omni。
目标数据库服务器,其运行的 AlloyDB Omni 主要版本与要恢复的备份相同。如需详细了解如何安装 AlloyDB Omni,请参阅安装 AlloyDB Omni。
一个 pgBackRest 备份代码库,其中包含至少一个源 AlloyDB Omni 数据库的备份。
目标服务器上有足够的可用磁盘空间来存储已恢复的数据库。
概览
如需使用 pgBackRest 执行 AlloyDB Omni 恢复,请运行 pgbackrest restore
命令。您向命令提供的参数因具体情况而异。
一般来说,您可以使用提供以下信息的标志运行 pgbackrest restore
命令:
pgbackrest.conf
文件的位置。- 您要恢复到的 pgBackRest 备份代码库的名称。这些代码库在
pgbackrest.conf
文件中进行命名和定义。 - 要将恢复的数据写入到的本地文件系统中的位置。
- 您要从中恢复的特定备份或时间点的标识符。
运行容器化 pgbackrest restore
命令时,请务必使用容器视图中的文件系统路径。例如,无论 AlloyDB Omni 数据目录在主机服务器上的什么位置,其路径始终为 /var/lib/postgresql/data
。如需了解详情,请参阅关于文件系统路径的备注。
执行时间点恢复
此示例从 pgBackRest 代码库恢复数据,并指定要恢复到的特定时间点。如果您在目标环境的 pgbackrest.conf
文件中定义了多个代码库,则 pgBackRest 会根据可用性、预期速度和其他因素选择要从中恢复的代码库。
该示例假定以下情况:
您有一个
pgbackrest.conf
文件位于目标 AlloyDB Omni 数据目录的顶层。这样,该文件就会作为/var/lib/postgresql/data
提供给容器化pgbackrest
。您已使用 pgBackRest 配置启用持续备份。
在目标环境中,执行 PITR 恢复,并指定要恢复到的时间戳:
docker exec CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/data \ --stanza=STANZA \ --type=time \ --pg1-path=/var/lib/postgresql/data/data-RESTORED \ --target="TIMESTAMP" \ restore
替换以下内容:
CONTAINER_NAME
:您在安装 AlloyDB Omni 容器时为其分配的名称,例如my-omni
。STANZA
:要应用于此恢复的配置诗节(由pgbackrest.conf
文件定义),例如omni
。TIMESTAMP
:要恢复的时间,例如2024-02-22 19:50:00
。
在目标环境中,使用以下命令停止容器:
docker container stop CONTAINER_NAME
出于安全考虑,请重命名数据目录的
data
子目录:cd DATA_DIR
sudo mv data data-OLD
将
DATA_DIR
替换为 AlloyDB Omni 数据目录的文件系统路径。将恢复的数据移至相应位置,并清理
postgresql.auto.conf
:sudo mv data-RESTORED data
sudo sed -i 's|data-RESTORED|data|' data/postgresql.auto.conf
启动包含数据库服务器的 AlloyDB Omni 容器:
docker container start CONTAINER_NAME
现在,您可以使用 psql
连接到数据库,并确认数据已按预期恢复。如果是,您可以删除之前创建的 data
子目录的 data-OLD
副本。
如需详细了解 pgBackRest 中的 PITR,请参阅时间点恢复。
如需详细了解如何准备 pgbackrest.conf
文件以与 AlloyDB Omni 搭配使用,请参阅为 AlloyDB Omni 设置 pgBackRest。
其他选项
pgbackrest restore
命令非常灵活,具有一系列选项和功能,您可以通过传入不同的命令行选项来控制这些选项和功能。包括:
- 仅恢复已更改的文件。
- 仅恢复所选数据库。
如需了解如何在 pgBackRest 中执行恢复操作的完整指南,请参阅恢复。