实验设置说明和要求
保护您的账号和进度。请务必在无痕浏览器窗口中,使用实验凭证运行此实验。

使用 Database Migration Service 迁移到 Cloud SQL for PostgreSQL

实验 1 小时 10 分钟 universal_currency_alt 1 个点数 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
此内容尚未针对移动设备进行优化。
为获得最佳体验,请在桌面设备上访问通过电子邮件发送的链接。

GSP918

Google Cloud 自学实验的徽标

概览

Database Migration Service 支持通过一次性作业或持续性作业将数据迁移到 Cloud SQL。该服务支持多种连接方法,包括 IP 许可名单、反向 SSH 隧道、VPC 对等互连以及 Private Service Connect 接口。如需详细了解连接方法,请参阅配置连接指南

本实验将重点介绍如何将虚拟机上托管的独立 PostgreSQL 数据库迁移至 Cloud SQL for PostgreSQL。此次迁移将利用 Database Migration Service 的持续作业功能,并通过 VPC 对等互连建立网络连接。

在使用 Database Migration Service 迁移数据库之前,必须先在源数据库上完成以下准备步骤:

  • 创建专用用户:该用户必须拥有执行复制操作所需的权限。
  • 添加 pglogical 扩展程序:您需要在源数据库中安装此扩展程序。
  • 授予必要权限:必须确保专用用户拥有访问待迁移数据库(包括其架构和表)以及 postgres 数据库的权限。

完成上述设置后,即可着手创建并启动迁移作业。迁移过程包括:

  • 初始复制:确认数据库的初始数据已成功同步至 Cloud SQL 实例。
  • 持续迁移:了解迁移作业如何将源数据库中的实时数据更新同步应用到 Cloud SQL 实例。
  • 提升:将 Cloud SQL 实例提升为可独立运行且支持读写操作的数据库,从而完成迁移作业。

您将执行的操作

  • 为源数据库做好迁移准备。
  • 为源 PostgreSQL 实例(例如独立 PostgreSQL)创建连接配置文件。
  • 使用 VPC 对等互连配置源数据库实例和目标数据库实例之间的连接。
  • 配置防火墙和数据库访问规则,以允许访问要迁移的源数据库。
  • 使用 Database Migration Service 创建、运行和验证持续迁移作业。
  • 将目标实例 (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 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

激活 Cloud Shell

Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。

  1. 点击 Google Cloud 控制台顶部的激活 Cloud Shell “激活 Cloud Shell”图标

  2. 在弹出的窗口中执行以下操作:

    • 继续完成 Cloud Shell 信息窗口中的设置。
    • 授权 Cloud Shell 使用您的凭据进行 Google Cloud API 调用。

如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID 。输出内容中有一行说明了此会话的 Project_ID

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud 是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。

  1. (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
  1. 点击授权

输出:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (可选)您可以通过此命令列出项目 ID:
gcloud config list project

输出:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需查看在 Google Cloud 中使用 gcloud 的完整文档,请参阅 gcloud CLI 概览指南

验证 Database Migration API 是否已启用

如需使用 Database Migration Service 管理数据迁移任务,必须先启用 Database Migration API。

  1. 在 Google Cloud 控制台标题栏的搜索字段中输入 Database Migration API,然后在搜索结果中点击 Database Migration API

如果该 API 已启用,您将看到管理按钮。

  1. 如果您看到启用按钮,请点击该按钮以启用 API。

验证 Service Networking API 是否已启用

配置 Cloud SQL 以支持 VPC 对等互连和专用 IP 地址连接时,必须启用 Service Networking API。

  1. 在 Cloud 控制台顶部的搜索栏中输入 Service Networking API,然后从结果列表中选择 Service Networking API

如果该 API 已启用,您将看到管理按钮。

  1. 如果您看到启用按钮,请点击该按钮以启用 API。

任务 1.为源数据库做好迁移准备

通过 Database Migration Service 进行迁移前,您需要使用 pglogical 扩展程序升级数据库,然后创建数据库迁移用户。

如要使用 pglogical 扩展程序升级数据库,您需要:

  • 安装并配置 pglogical 数据库扩展程序。
  • 配置独立 PostgreSQL 数据库,允许通过 Cloud Shell 和 Cloud SQL 进行访问。
  • 在独立服务器的 postgresordersgmemegen_db 数据库中分别添加 pglogical 扩展程序。

创建数据库迁移用户时,请建立一个名为 migration_admin 且具备复制权限的用户,并授予其访问架构和关系所需的权限。

利用 pglogical 扩展程序升级数据库

在本部分中,您将下载 pglogical 数据库扩展程序,并将其添加到 postgresql-vm 虚拟机实例上的 orders 和 postgres 数据库中。

  1. 在 Google Cloud 控制台的导航菜单 (“导航菜单”图标) 中,依次点击 Compute Engine > 虚拟机实例

  2. postgresql-vm 虚拟机实例中,点击 SSH

  3. 如果出现提示,请点击授权

  4. 在新打开的终端窗口里,安装 pglogical 数据库扩展程序:

sudo apt install postgresql-14-pglogical 注意:pglogical 是一个完全作为 PostgreSQL 扩展程序实现的逻辑复制系统。该系统已完全集成,不需要触发器或外部程序即可运行。它可以替代物理复制,是一种使用发布/订阅模型进行选择性复制的高效数据复制方法。
  1. 下载 PostgreSQL 配置文件并在其中添加一些内容(以启用 pglogical 扩展程序),然后重启 postgresql 服务:
sudo su - postgres -c "gsutil cp gs://spls/gsp918/pg_hba_append.conf ." sudo su - postgres -c "gsutil cp gs://spls/gsp918/postgresql_append.conf ." sudo su - postgres -c "cat pg_hba_append.conf >> /etc/postgresql/14/main/pg_hba.conf" sudo su - postgres -c "cat postgresql_append.conf >> /etc/postgresql/14/main/postgresql.conf" sudo systemctl restart postgresql@14-main

这些操作会在 pg_hba.conf 文件中加入一条新规则,从而允许所有主机进行连接:

#GSP918 - allow access to all hosts host all all 0.0.0.0/0 md5

postgresql.conf 中的命令完成了 pglogical 的基础配置,使其能够监听所有地址:

#GSP918 - added configuration for pglogical database extension wal_level = logical # minimal, replica, or logical max_worker_processes = 10 # one per database needed on provider node # one per node needed on subscriber node max_replication_slots = 10 # one per node needed on provider node max_wal_senders = 10 # one per node needed on provider node shared_preload_libraries = 'pglogical' max_wal_size = 1GB min_wal_size = 80MB listen_addresses = '*' # what IP address(es) to listen on, '*' is all

上述代码段已附加到相关文件中,并且 PostgreSQL 服务已重启。

  1. 启动 psql 工具:
sudo su - postgres psql
  1. pglogical 数据库扩展程序添加到 postgresordersgmemegen_db 数据库:
\c postgres; CREATE EXTENSION pglogical; \c orders; CREATE EXTENSION pglogical; \c gmemegen_db; CREATE EXTENSION pglogical;
  1. 列出服务器上的 PostgreSQL 数据库:
\l

下方的输出结果显示了默认的 postgresql 数据库,以及专为本实验准备的 ordersgmemegen_db 数据库。您在本实验中不会用到 gmemegen_db 数据库。

List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+---------+---------+----------------------- gmemegen_db | postgres | UTF8 | C.UTF-8 | C.UTF-8 | orders | postgres | UTF8 | C.UTF-8 | C.UTF-8 | postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (5 rows)

创建数据库迁移用户

在本部分中,您将创建一个专门用于管理数据库迁移任务的用户。

  • 在 psql 中输入以下命令,创建具有复制角色的新用户:
CREATE USER migration_admin PASSWORD 'DMS_1s_cool!'; ALTER DATABASE orders OWNER TO migration_admin; ALTER ROLE migration_admin WITH REPLICATION;

为迁移用户分配权限

在本部分中,您将为 migration_admin 用户分配允许 Database Migration Service 迁移数据库的必要权限。

  1. 在 psql 中,授予用户对 postgres 数据库的 pglogical 架构和表的权限。
\c postgres; GRANT USAGE ON SCHEMA pglogical TO migration_admin; GRANT ALL ON SCHEMA pglogical TO migration_admin; GRANT SELECT ON pglogical.tables TO migration_admin; GRANT SELECT ON pglogical.depend TO migration_admin; GRANT SELECT ON pglogical.local_node TO migration_admin; GRANT SELECT ON pglogical.local_sync_status TO migration_admin; GRANT SELECT ON pglogical.node TO migration_admin; GRANT SELECT ON pglogical.node_interface TO migration_admin; GRANT SELECT ON pglogical.queue TO migration_admin; GRANT SELECT ON pglogical.replication_set TO migration_admin; GRANT SELECT ON pglogical.replication_set_seq TO migration_admin; GRANT SELECT ON pglogical.replication_set_table TO migration_admin; GRANT SELECT ON pglogical.sequence_state TO migration_admin; GRANT SELECT ON pglogical.subscription TO migration_admin;
  1. 授予该用户访问 orders 数据库中 pglogical 架构及表的权限:
\c orders; GRANT USAGE ON SCHEMA pglogical TO migration_admin; GRANT ALL ON SCHEMA pglogical TO migration_admin; GRANT SELECT ON pglogical.tables TO migration_admin; GRANT SELECT ON pglogical.depend TO migration_admin; GRANT SELECT ON pglogical.local_node TO migration_admin; GRANT SELECT ON pglogical.local_sync_status TO migration_admin; GRANT SELECT ON pglogical.node TO migration_admin; GRANT SELECT ON pglogical.node_interface TO migration_admin; GRANT SELECT ON pglogical.queue TO migration_admin; GRANT SELECT ON pglogical.replication_set TO migration_admin; GRANT SELECT ON pglogical.replication_set_seq TO migration_admin; GRANT SELECT ON pglogical.replication_set_table TO migration_admin; GRANT SELECT ON pglogical.sequence_state TO migration_admin; GRANT SELECT ON pglogical.subscription TO migration_admin;
  1. 授予该用户访问 orders 数据库内 public 架构及表的权限:
GRANT USAGE ON SCHEMA public TO migration_admin; GRANT ALL ON SCHEMA public TO migration_admin; GRANT SELECT ON public.distribution_centers TO migration_admin; GRANT SELECT ON public.inventory_items TO migration_admin; GRANT SELECT ON public.order_items TO migration_admin; GRANT SELECT ON public.products TO migration_admin; GRANT SELECT ON public.users TO migration_admin;
  1. 授予该用户访问 gmemegen_db 数据库中 pglogical 架构及表的权限:
\c gmemegen_db; GRANT USAGE ON SCHEMA pglogical TO migration_admin; GRANT ALL ON SCHEMA pglogical TO migration_admin; GRANT SELECT ON pglogical.tables TO migration_admin; GRANT SELECT ON pglogical.depend TO migration_admin; GRANT SELECT ON pglogical.local_node TO migration_admin; GRANT SELECT ON pglogical.local_sync_status TO migration_admin; GRANT SELECT ON pglogical.node TO migration_admin; GRANT SELECT ON pglogical.node_interface TO migration_admin; GRANT SELECT ON pglogical.queue TO migration_admin; GRANT SELECT ON pglogical.replication_set TO migration_admin; GRANT SELECT ON pglogical.replication_set_seq TO migration_admin; GRANT SELECT ON pglogical.replication_set_table TO migration_admin; GRANT SELECT ON pglogical.sequence_state TO migration_admin; GRANT SELECT ON pglogical.subscription TO migration_admin;
  1. 授予该用户访问 gmemegen_db 数据库中 public 架构及表的权限:
GRANT USAGE ON SCHEMA public TO migration_admin; GRANT ALL ON SCHEMA public TO migration_admin; GRANT SELECT ON public.meme TO migration_admin;

源数据库现已做好迁移准备。您向 migration_admin 用户授予的权限是 Database Migration Service 迁移 postgresordersgmemegen_db 数据库所需的全部权限。

migration_admin 用户设置为 orders 数据库中的表的所有者,以便您稍后在对迁移进行测试时可以修改源数据。

  1. 运行以下命令:
\c orders; \dt ALTER TABLE public.distribution_centers OWNER TO migration_admin; ALTER TABLE public.inventory_items OWNER TO migration_admin; ALTER TABLE public.order_items OWNER TO migration_admin; ALTER TABLE public.products OWNER TO migration_admin; ALTER TABLE public.users OWNER TO migration_admin; \dt

输出

List of relations Schema | Name | Type | Owner --------+----------------------+-------+------- public | distribution_centers | table | migration_admin public | inventory_items | table | migration_admin public | order_items | table | migration_admin public | products | table | migration_admin public | users | table | migration_admin (5 rows)
  1. 退出 psql 和 postgres 用户会话:
\q exit

点击检查我的进度以验证是否完成了以下目标: 为 PostgreSQL 源实例做好迁移准备。

任务 2. 为独立 PostgreSQL 数据库创建 Database Migration Service 连接配置文件

在此任务中,您将为 PostgreSQL 源实例创建连接配置文件。

获取 PostgreSQL 源实例的连接信息

在此步骤中,您将确定要迁移到 Cloud SQL 的源数据库实例的内部 IP 地址。

  1. 在 Google Cloud 控制台的导航菜单 (“导航菜单”图标) 中,依次点击 Compute Engine > 虚拟机实例

  2. 在实例列表中,找到 postgresql-vm

  3. 复制该实例的内部 IP(例如10.128.0.2),以便在下一部分中用于配置连接配置文件。

为 PostgreSQL 源实例创建新的连接配置文件

连接配置文件中存储着有关源数据库实例(例如独立 PostgreSQL)的信息,Database Migration Service 使用连接配置文件将数据从源实例迁移到目标 Cloud SQL 数据库实例。创建连接配置文件后,可以在迁移作业中重复使用此配置文件。

在此步骤中,您将为 PostgreSQL 源实例创建一个新的连接配置文件。

  1. 在 Google Cloud 控制台的导航菜单 (“导航菜单”图标) 中,点击查看所有产品。在数据库部分下,依次点击数据库迁移 > 连接配置文件

  2. 点击创建配置文件

  3. 请根据下表进行配置,未列出的选项请使用默认值:

字段
配置文件角色 来源
数据库引擎 PostgreSQL
连接配置文件名称 postgres-vm
区域
定义连接配置 定义
主机名或 IP 地址 您在上一个任务中复制的 PostgreSQL 源实例的内部 IP(例如 10.128.0.2)
端口 5432
用户名 migration_admin
密码 DMS_1s_cool!
  1. 点击保存

  2. 点击创建

您会看到“连接配置文件”列表中出现了一个名为 postgres-vm 的新连接配置文件。

点击检查我的进度以验证是否完成了以下目标: 为 PostgreSQL 源实例创建连接配置文件。

任务 3. 创建并启动持续迁移作业

如需创建新的迁移作业,您必须先使用现有连接配置文件指定源数据库实例。接下来,您需要建立目标数据库实例,并在源实例和目标实例之间设置必要的连接。

在此任务中,您将使用迁移作业界面来创建一个新的 Cloud SQL for PostgreSQL 数据库实例,并将其设置为从 PostgreSQL 源实例迁移数据的持续迁移作业的目标。

创建新的持续迁移作业

在此步骤中,您将创建一个新的持续迁移作业。

  1. 在控制台的导航菜单 (“导航菜单”图标) 中,点击查看所有产品。在数据库部分下,依次点击数据库迁移 > 迁移作业

  2. 点击创建迁移作业

  3. 请根据下表进行配置,未列出的选项请使用默认值:

字段
迁移作业名称 vm-to-cloudsql
源数据库引擎 PostgreSQL
目标数据库引擎 Cloud SQL for PostgreSQL
目标区域
迁移作业类型 持续
  1. 点击保存并继续

定义源实例

在此步骤中,您将定义要迁移的源实例。

  1. 对于来源连接配置文件,选择 postgres-vm

对于其他设置,请保留默认值。

  1. 点击保存并继续

定义目标实例

在此步骤中,您将定义迁移的目标实例。

  1. 目标实例的类型部分,选择现有实例

  2. 选择目标实例部分,选择 postgresql-cloudsql

  3. 点击选择并继续

  4. 如果系统提示您确认,请输入实例名称 postgresql-cloudsql

  5. 点击确认并继续

注意:请忽略以下警告:“您的目标实例将被降级,并转换为源数据库的副本。”

定义连接方法

在此步骤中,您将定义用于迁移的连接方法。

消息指出,在目标 Cloud SQL 实例创建完成后,“配置并继续”按钮将会启用。

  1. 对于连接方法,选择 VPC 对等互连

  2. 对于 VPC,选择默认

Database Migration Service 会使用您为 VPC 网络(在本例中为默认网络)提供的信息配置 VPC 对等互连。

当您看到指出目标实例创建完成的更新消息后,请继续执行下一步。

更新后的消息告知您目标 Cloud SQL 实例已创建完成。

  1. 点击配置并继续

配置迁移数据库

在此步骤中,您将定义要迁移的源实例。

  1. 对于要迁移的数据库,选择所有数据库

  2. 点击保存并继续

允许从自动分配的 IP 范围访问 postgresql-vm 实例

在此步骤中,您将修改 pg_hba.conf PostgreSQL 配置文件,以允许 Database Migration Service 访问独立 PostgreSQL 数据库。

  1. 获取分配的 IP 地址范围。在控制台的导航菜单 (“导航菜单”图标) 中,找到 VPC 网络,然后右键点击 VPC 网络对等互连,选择在新标签页中打开。

  2. 点击 servicenetworking-googleapis-com 条目,然后点击底部的有效路由视图

  3. 网络下拉菜单中,选择默认;对于区域,选择 。点击查看

  4. 目标 IP 地址范围一栏,找到 peering-route-xxxxx... 对应的 IP 范围(如 10.107.176.0/24)并将其记录下来,以供后续步骤使用。

  5. 在虚拟机实例上的终端会话中,修改 pg_hba.conf 文件,如下所示:

sudo nano /etc/postgresql/14/main/pg_hba.conf
  1. 在文件的最后一行:
#GSP918 - allow access to all hosts host all all 0.0.0.0/0 md5

将“所有 IP 地址”范围 (0.0.0.0/0) 替换为在上一步中记录的范围。

#GSP918 - allow access to all hosts host all all 10.107.176.0/24 md5 注意:上述步骤并非迁移成功的必要条件,但这样可以增强源数据库在迁移过程中的安全性,并且在迁移完成后迁移的数据库成为可信来源时,还能限制访问权限,因此是一种很好的做法。
  1. 依次按 CTRL+O、Enter、CTRL+X 键,以保存文件并退出 nano 编辑器。

  2. 重启 PostgreSQL 服务以使更改生效。在虚拟机实例终端会话中,输入以下命令:

sudo systemctl start postgresql@14-main

测试并启动持续迁移作业

在此步骤中,您将测试并启动迁移作业。

  1. 在您之前打开的 Database Migration Service 标签页中,查看迁移作业的详细信息。

  2. 点击测试作业

  3. 在测试成功后,点击创建并启动作业

  4. 如果系统提示您确认,请点击创建并启动

查看持续迁移作业的状态

在此步骤中,您将确认持续迁移作业是否正在运行。

  1. 在 Google Cloud 控制台的导航菜单 (“导航菜单”图标) 中,依次点击数据库迁移 > 迁移作业

  2. 点击迁移作业 vm-to-cloudsql,查看详情页面。

  3. 查看迁移作业状态。

    • 如果作业尚未启动,其状态会显示为尚未开始。您可以选择启动或删除该作业。
    • 作业启动后,状态将显示为正在启动,然后变为“正在运行”|“正在进行完全转储”,指出正在执行初始数据库转储。
    • 初始数据库转储完成后,状态将变为“正在运行”|“正在进行变更数据捕获 (CDC)”,指出正在进行持续迁移。

当作业状态变为“正在运行”|“正在进行变更数据捕获 (CDC)”时,继续执行下一项任务。

点击检查我的进度以验证是否完成了以下目标: 创建、启动和查看持续迁移作业。

任务 4. 确认 Cloud SQL for PostgreSQL 中的数据

查看 Cloud SQL 中的 PostgreSQL 数据库

  1. 在 Google Cloud 控制台的导航菜单 (“导航菜单”图标) 中,点击 SQL

  2. 展开实例 ID postgresql-cloudsql-master

  3. 点击 postgresql-cloudsql 实例(PostgreSQL 读取副本)。

  4. 副本实例菜单中,点击数据库

可以看到,名为 postgresordersgmemegen_db 的数据库已迁移到 Cloud SQL。

连接到 PostgreSQL 实例

  1. 副本实例菜单中,点击概览

  2. 向下滚动到连接到此实例部分,然后点击打开 Cloud Shell

Cloud Shell 中会预先填充用于连接到 PostgreSQL 的命令:

gcloud sql connect postgresql-cloudsql --user=postgres --quiet
  1. 运行预先填充的命令。

  2. 如果出现提示,请点击授权以使用 API。

  3. 当系统提示输入密码时,请输入您之前设置的密码:

supersecret!

您现在已激活目标实例的 PostgreSQL 交互式控制台。

查看 Cloud SQL for PostgreSQL 实例中的数据

  1. 要在 PostgreSQL 交互式控制台中选择数据库,请运行以下命令:
\c orders;
  1. 当系统提示输入密码时,请输入以下密码:
supersecret!
  1. 查询 distribution_centers 表:
select * from distribution_centers;

(输出)

longitude | latitude | name | id -----------+----------+---------------------------------------------+---- -89.9711 | 35.1174 | Memphis TN | 1 -87.6847 | 41.8369 | Chicago IL | 2 -95.3698 | 29.7604 | Houston TX | 3 -118.25 | 34.05 | Los Angeles CA | 4 -90.0667 | 29.95 | New Orleans LA | 5 -73.7834 | 40.634 | Port Authority of New York/New Jersey NY/NJ | 6 -75.1667 | 39.95 | Philadelphia PA | 7 -88.0431 | 30.6944 | Mobile AL | 8 -79.9333 | 32.7833 | Charleston SC | 9 -81.1167 | 32.0167 | Savannah GA | 10
  1. 输入以下命令,退出 PostgreSQL 交互式控制台:
\q

更新独立源数据,以测试持续迁移

  1. 在 Cloud Shell 中,输入以下命令连接到 PostgreSQL 源实例:
export VM_NAME=postgresql-vm export PROJECT_ID=$(gcloud config list --format 'value(core.project)') export POSTGRESQL_IP=$(gcloud compute instances describe ${VM_NAME} \ --zone={{{ project_0.default_zone|(zone) }}} --format="value(networkInterfaces[0].accessConfigs[0].natIP)") echo $POSTGRESQL_IP psql -h $POSTGRESQL_IP -p 5432 -d orders -U migration_admin 注意:以上是访问虚拟机实例上的独立数据库的另一种方法。
  1. 当系统提示输入密码时,请输入以下密码:
DMS_1s_cool!
  1. 在 psql 中,输入以下命令:
\c orders; insert into distribution_centers values(-80.1918,25.7617,'Miami FL',11);
  1. 关闭交互式 psql 会话:
\q

连接到 Cloud SQL PostgreSQL 数据库,检查更新的数据是否已迁移

  1. 在 Cloud Shell 中,输入以下命令连接到目标 Cloud SQL PostgreSQL 实例:
gcloud sql connect postgresql-cloudsql --user=postgres --quiet
  1. 当系统提示输入密码时,请输入您之前为 Cloud SQL 实例设置的密码:
supersecret!

您现在已激活目标实例的 PostgreSQL 交互式控制台。

查看 Cloud SQL for PostgreSQL 数据库中的数据

  1. 在 Cloud Shell 中,于 PostgreSQL 交互式控制台中选择活跃数据库:
\c orders;
  1. 当系统提示输入密码时,请输入您之前设置的密码:
supersecret!
  1. 查询 distribution_centers 表:
select * from distribution_centers;

(输出)

longitude | latitude | name | id -----------+----------+---------------------------------------------+---- -89.9711 | 35.1174 | Memphis TN | 1 -87.6847 | 41.8369 | Chicago IL | 2 -95.3698 | 29.7604 | Houston TX | 3 -118.25 | 34.05 | Los Angeles CA | 4 -90.0667 | 29.95 | New Orleans LA | 5 -73.7834 | 40.634 | Port Authority of New York/New Jersey NY/NJ | 6 -75.1667 | 39.95 | Philadelphia PA | 7 -88.0431 | 30.6944 | Mobile AL | 8 -79.9333 | 32.7833 | Charleston SC | 9 -81.1167 | 32.0167 | Savannah GA | 10 -80.1918 | 25.7617 | Miami FL | 11

请注意,在独立数据库 orders 中添加的新行现在已出现在迁移后的数据库中。

  1. 退出 PostgreSQL 交互式控制台:
\q

点击检查我的进度以验证是否完成了以下目标: 测试数据是否持续从源数据库迁移到目标数据库。

任务 5. 将 Cloud SQL 提升为独立实例,以便读取和写入数据

  1. 在 Google Cloud 控制台的导航菜单 (“导航菜单”图标) 中,点击查看所有产品。在数据库部分下,依次点击数据库迁移 > 迁移作业

  2. 点击迁移作业名称 vm-to-cloudsql,查看详情页面。

  3. 点击升级

  4. 如果系统提示您确认,请点击升级

提升完毕后,作业的状态将更新为已完成

  1. 在 Google Cloud 控制台的导航菜单 (“导航菜单”图标) 中,点击查看所有产品。在数据库部分中,点击 SQL

可以看到,postgresql-cloudsql 现在已是独立实例,可供读取和写入数据。

点击检查我的进度以验证是否完成了以下目标: 将 Cloud SQL for PostgreSQL 数据库提升为独立实例,以便读取和写入数据。

恭喜!

您已成功配置并完成了 Database Migration Service 的持续迁移作业,将数据库从 PostgreSQL 实例迁移至 Cloud SQL for PostgreSQL。

后续步骤/了解详情

详细了解数据迁移、Cloud SQL 数据库和 Database Migration Service:

Google Cloud 培训和认证

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

上次更新手册的时间:2025 年 12 月 10 日

上次测试实验的时间:2025 年 12 月 10 日

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

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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