我在适用于PostgreSQL的CloudSQL上使用时间点恢复. 该实例具有高可用性,因此复制到三个可用区. 在GCP控制台上启用时间点时,明确提到实例上的存储使用量将增加. 这带来了以下问题

  • 时间点数据是否仅位于原始主实例上?
  • 时间点数据是否复制到多个区域?
  • 如果启用,跟随者实例是否启用了时间点?这是否与其他实例隔离?
  • 如果主数据库没有响应,因此需要手动调配数据库,故障转移不成功,时间点可行吗?如果是,它将使用最新的数据(假设主数据库的时间点数据是区域性复制的),还是来自关注者实例的时间点功能的数据?

推荐答案

  1. 时间点数据是否仅位于原始主实例上?

Yes.您不能在读取复制副本中启用PITR.You can only enable it on the main instance."数据"是预写日志(log),它们存储在主实例上.See.

  1. 时间点数据是否复制到多个区域?

No,使用预写日志(log)实施PITR,这些是only stored in the data disk of the primary instance.

  1. 如果启用,跟随者实例是否启用了时间点?这是否与其他实例隔离?

如果您所指的跟随者实例指的是读副本,则读副本利用预写日志(log)(与PITR相同)来与主副本保持最新.已读副本应是主副本的副本,尽可能保持最新状态.

  1. 如果主数据库没有响应,因此需要手动调配数据库,故障转移不成功,时间点可行吗?如果是,它是使用最新的数据(假设主数据库的时间点数据是区域性复制的),还是来自关注者实例的时间点功能的数据?

如果主服务器没有响应,并且实例数据磁盘出现问题,您将无法执行PITR.这是因为PITR for Postgres使用预写日志(log),这些日志(log)存储在实例数据磁盘see上.如果实例的数据盘没有问题,那么PITR应该可以工作.

但是,灾难恢复的最佳实践是为实例配置cross-region read replica,这将在与主实例不同的区域中提供实例的活动副本.即使主区域跨区域下降,读取副本也可以升级为独立实例,并可用于写入和读取.这当然需要在您需要之前设置这样的配置.

Postgresql相关问答推荐

右连接 postgresql 出现语法错误

如何将特定值排序为最后,其余记录按 id DESC 排序?

如何在 kubernetes 中安全地重启 postgresql 容器?

从 PostgreSQL 中的每个组中抽取 N 个样本

PostgreSQL:如何避免被零除?

推送到 Heroku 时出现带有 Postgres 的 Rails 迁移错误

我应该使用哪个 postgresql 包?

如何在 PostgreSQL 触发器函数中获取表名?

在函数中返回字段作为插入结果

我不明白 postgresql 的 nextval() 是如何工作的,有人可以解释一下吗?

Postgres NOT IN (null) 没有结果

如何在 PostgreSQL 中插入多行

使用 pg_dump 和 psql -U postgres db_name < ... 移动数据库会导致ERROR: relation "table_name" does not exist

使用 PostGIS 查找给定点的 n 个最近邻?

设置 Phoenix 框架和 Ecto 以使用 UUID:如何插入生成的值?

Postgres 数据库文件保存在 ubuntu 中的什么位置?

带有 WITH 子句的查询时出现 Postgresmissing FROM-clause entry错误

PostgreSQL 使用 UUID 与文本作为主键

如何在创建数据库时安装 Postgres 扩展?

GRANT SELECT 特权使用一个语句对所有序列