本页面介绍了如何使用通过 Barman(开源数据库备份服务器)创建的备份来恢复 AlloyDB Omni 集群。
由于 AlloyDB Omni 与 PostgreSQL 兼容,因此 Barman 手册中介绍的数据恢复命令和技术也适用于 AlloyDB Omni。本页面演示了一些常见的恢复任务,并提供了相关命令的示例。
如需详细了解如何将 Barman 配置为与 AlloyDB Omni 配合使用,请参阅为 AlloyDB Omni 设置 Barman。
准备工作
在恢复 AlloyDB Omni 数据之前,您需要满足以下条件:
目标数据库服务器,运行与来源数据库服务器相同的 AlloyDB Omni 主要版本。如需详细了解如何安装 AlloyDB Omni,请参阅安装 AlloyDB Omni。
目标服务器可以是与来源服务器相同的机器。
在目标服务器上安装的
rsync
实用程序。Barman 备份服务器,其中包含来源 AlloyDB Omni 数据库的至少一个有效 Barman 备份。
Barman 备份服务器与目标服务器之间的 SSH 连接。
设置好的 SSH 密钥,以允许 Barman 服务器上的
barman
用户以其postgres
用户身份在无需密码的情况下向目标服务器进行身份验证。目标服务器上有足够的磁盘可用空间来存储恢复的数据库。
使用特定备份进行恢复
在目标服务器上,停止 AlloyDB Omni。
Docker
docker stop CONTAINER_NAME
将
CONTAINER_NAME
替换为您在安装 AlloyDB Omni 容器时为其分配的名称,例如my-omni
。Podman
podman stop CONTAINER_NAME
将
CONTAINER_NAME
替换为您在安装 AlloyDB Omni 容器时为其分配的名称,例如my-omni
。在 Barman 服务器上,选择要从中恢复的备份。如需查看可用的备份,请运行
barman list-backups
命令。如需查看特定备份的相关详细信息,请运行barman show-backup
命令。如需将所选备份恢复到目标 AlloyDB Omni 服务器,请运行
barman recover
命令。运行该命令时,请添加以下内容:
- 使用远程恢复选项。
- 将目标服务器的数据目录指定为目标目录。
以下命令演示了将
barman recover
与 AlloyDB Omni 配合使用的示例:barman recover --remote-ssh-command "ssh postgres@TARGET_IP" TARGET_LABEL BACKUP_ID DATA_PATH
替换以下内容:
TARGET_IP
:目标服务器的 IP 地址。TARGET_LABEL
:您在 Barman 的配置文件中为服务器分配的标签。BACKUP_ID
:在上一步中确定的要从中恢复的备份的 ID,例如20230810T210200
。DATA_PATH
:目标服务器数据目录的data
子目录的路径,例如/home/your-username/alloydb-data/data
。
在 AlloyDB Omni 目标数据库服务器上,启动服务:
Docker
docker start CONTAINER_NAME
Podman
podman start CONTAINER_NAME
服务重启后,连接到 AlloyDB Omni 服务器。您应该会看到所恢复的数据库和数据。
恢复到特定时间点
如需执行时间点恢复,请按照上一部分中列出的步骤操作,不过需要进行一项修改。运行 barman recover
命令时,您还必须指定一个 Barman 时间点恢复选项。
以下命令演示了在使用时间点恢复选项的情况下,将 barman recover
与 AlloyDB Omni 配合使用的示例:
barman recover --remote-ssh-command "ssh postgres@TARGET_IP" TARGET_LABEL BACKUP_ID --target-time="RESTORE_TIMESTAMP" DATA_PATH
替换以下内容:
TARGET_IP
:目标服务器的 IP 地址。TARGET_LABEL
:您在 Barman 的配置文件中为服务器分配的标签。BACKUP_ID
:在上一步中确定的要从中恢复的备份的 ID,例如20230810T210200
。TARGET_TIMESTAMP
:要恢复到的时间,采用任何同时指定日期和时间的 PostgreSQLtimestamp
格式,例如2024-02-06 00:00:00
。DATA_PATH
:目标服务器数据目录的data
子目录的路径,例如/home/your-username/alloydb-data/data
。