arrow_back

为 Cloud SQL for PostgreSQL 配置复制并启用时间点恢复

登录 加入
访问 700 多个实验和课程

为 Cloud SQL for PostgreSQL 配置复制并启用时间点恢复

实验 1 小时 universal_currency_alt 1 个积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

GSP922

Google Cloud 自学实验的徽标

概览

借助时间点恢复,您可以将实例恢复到特定的时间点。例如,如果出错导致数据丢失,您可以将数据库恢复到出错前的状态。时间点恢复始终会创建一个新实例,而不能恢复到现有实例。新实例会继承源实例的设置。

在本实验中,您将为 Cloud SQL for PostgreSQL 实例配置并测试时间点恢复。

您将执行的操作

  • 在 Cloud SQL for PostgreSQL 实例上启用时间点恢复。
  • 执行时间点恢复。
  • 确认恢复的数据库反映了较早时间点的状况。

设置和要求

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:

    • “打开 Google Cloud 控制台”按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示“登录”页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在“实验详细信息”窗格中找到“用户名”。

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在“实验详细信息”窗格中找到“密码”。

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

目标受众群体

本实操实验的内容最适合 PostgreSQL DBA。本实验旨在让专业人士获得设置和配置 Google Cloud 资源以支持 PostgreSQL 的实践经验。

任务 1. 在 Cloud SQL for PostgreSQL 实例上启用备份

在此任务中,您将在 Cloud SQL for PostgreSQL 实例上启用预定备份。

  1. 在 Cloud Shell 中显示实例详情:
export CLOUD_SQL_INSTANCE=postgres-orders gcloud sql instances describe $CLOUD_SQL_INSTANCE

在系统提示时点击授权按钮。

  1. 在 Cloud Shell 中,以 24 小时制获取当前世界协调时间 (UTC):

    date +"%R"
  2. 在 Cloud Shell 中,输入以下命令来启用预定备份,将 HH:MM 替换为比上一步中显示的时间更早的时间。

gcloud sql instances patch $CLOUD_SQL_INSTANCE \ --backup-start-time=HH:MM 注意:为了完成本实验,您指定的备份开始时间必须早于上一步中显示的时间。这是因为您不希望在进行实验的同时开始备份。

例如,如果 date 命令显示当前时间为 14:25,可以将 HH:MM 替换为 13:25,甚至替换为 12:00。这必须是 24 小时制的有效时间,否则您会收到一条错误消息,指出请求无效。

  1. 确认所做的更改。注意 format 参数,它仅提取所需字段。
gcloud sql instances describe $CLOUD_SQL_INSTANCE --format 'value(settings.backupConfiguration)'

您将看到与以下内容类似的响应,其中显示备份设置为 7 天,且在此示例中于每天 14:00 运行:

backupRetentionSettings={'retainedBackups': 7, 'retentionUnit': 'COUNT'}; enabled=True;kind=sql#backupConfiguration; startTime=14:00; transactionLogRetentionDays=7 在 Cloud SQL for PostgreSQL 实例上启用备份

任务 2. 启用并运行时间点恢复

在此任务中,您将在 Cloud SQL for PostgreSQL 实例上启用并配置时间点恢复。时间点恢复始终会创建一个新实例,而不能恢复到现有实例。新实例会继承源实例的设置。

启用时间点恢复

在此步骤中,您将启用时间点恢复。

  • 在 Cloud Shell 中启用时间点恢复:
gcloud sql instances patch $CLOUD_SQL_INSTANCE \ --enable-point-in-time-recovery \ --retained-transaction-log-days=1

此命令需要一两分钟的时间来完成。

对 Cloud SQL for PostgreSQL 数据库进行更改

在此步骤中,您将向数据库中的 orders.distribution_centers 表添加一行数据。在进行时间点恢复后,我们预期数据库中不存在这一行数据。

  1. 在 Cloud 控制台的导航菜单 (“导航菜单”图标) 中,依次点击数据库 > SQL,然后点击名为 postgres-orders 的 Cloud SQL 实例。

  2. 在 Cloud 控制台的连接到此实例部分,点击打开 Cloud Shell。Cloud Shell 中会自动填充一条命令。

  3. 运行该命令,并在系统提示时输入密码 supersecret!psql 会话将在 Cloud Shell 中启动。

  4. psql 中,切换到 orders 数据库:

\c orders
  1. 出现提示时,再次输入密码 supersecret!

  2. psql 中,获取 distribution_centers 表的行数:

SELECT COUNT(*) FROM distribution_centers;

输出:

orders=> SELECT COUNT(*) FROM distribution_centers; count ------- 10 (1 row)
  1. 在 Cloud Shell 中,打开一个新标签页 (+),以 RFC 3339 格式获取以世界协调时间 (UTC) 表示的当前时间。该时间戳将用于您在下一任务中创建的时间点副本。
date --rfc-3339=seconds

此时,您应该稍作等待,以确保您在下一步中所做的更改发生在该时间戳之后。

注意:在本实验中,您指定的时间戳必须是在启用时间点恢复功能之后(如果尚未进行过成功的备份,则需要先完成一次成功的备份),但在修改源实例之前。如果不满足此条件,您在源实例中所做的更改将复制到克隆中,将无法确定是否已回滚。
  1. psql 中,若要向 orders.distribution_centers 表添加一行数据并获取新的 COUNT,请运行以下命令:
INSERT INTO distribution_centers VALUES(-80.1918,25.7617,'Miami FL',11); SELECT COUNT(*) FROM distribution_centers;

输出:

orders=> SELECT COUNT(*) FROM distribution_centers; count ------- 11 (1 row)
  1. 退出 psql
\q

执行时间点恢复

在此步骤中,您将克隆特定时间点的 postgres-orders Cloud SQL 实例。

  • 在 Cloud Shell 中,运行以下命令以创建时间点克隆:
export NEW_INSTANCE_NAME=postgres-orders-pitr gcloud sql instances clone $CLOUD_SQL_INSTANCE $NEW_INSTANCE_NAME \ --point-in-time 'TIMESTAMP'

您必须将 TIMESTAMP 占位符替换为之前在第二个 Cloud Shell 标签页中 date 命令显示的确切时间戳。

此 TIMESTAMP 必须采用 RFC 3339 格式和世界协调时间 (UTC) 时区,例如 '2021-11-01 15:00:00'。TIMESTAMP 指示要将数据库状态恢复到哪个时间点。该时间戳应该用英文单引号引起来。系统也支持 RFC3339 的另一种变体格式:'2021-11-01T15:00:00.000Z'。

创建副本并使其可供使用的过程可能需要 10 分钟或更长时间。在此期间,请继续执行下一项任务。

启用并运行时间点恢复

任务 3. 确认数据库已恢复到正确的时间点

在此任务中,您要确认在时间点恢复时间戳之后添加到原始数据库的一行数据不在克隆的数据库中。

  1. 在 Cloud 控制台的概览页面上,点击所有实例面包屑导航控件,然后点击名为 postgres-orders-pitr 的 Cloud SQL 实例。

现在,您需要等待副本上线。

  1. 在 Cloud 控制台的连接到此实例部分,点击打开 Cloud Shell。Cloud Shell 中会自动填充一条命令。

  2. 运行该命令,并在系统提示时输入密码 supersecret!psql 会话将在 Cloud Shell 中启动。

  3. psql 中,切换到 orders 数据库:

\c orders
  1. 出现提示时,再次输入密码 supersecret!

  2. psql 中,获取 distribution_centers 表的行数:

SELECT COUNT(*) FROM distribution_centers;

输出:

orders=> SELECT COUNT(*) FROM distribution_centers; count ------- 10 (1 row)

您会看到,在新的 Cloud SQL for PostgreSQL 实例中,distribution_centers 表所拥有的 10 行数据与克隆时间点的源实例相同。如果查询返回 11 行,请检查您是否连接到了副本实例,而非原始实例。

克隆的数据库不包含在恢复时间戳之后所做的更改

恭喜!

在本实验中,您为 Cloud SQL for PostgreSQL 实例配置并测试了时间点恢复。

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

上次更新手册的时间:2024 年 4 月 23 日

上次测试实验的时间:2023 年 12 月 6 日

版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。