此快速入门指南将向您展示如何使用 Database Migration Service 将数据迁移到 Cloud SQL for PostgreSQL。如果您及时完成本快速入门中的步骤(包括清理),那么在此期间所创建资源的费用通常不会超过 1 美元。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- 
    
    
      In the Google Cloud console, on the project selector page, select or create a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
    
    
      In the Google Cloud console, on the project selector page, select or create a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
   
   
    
    
  
   
   
     
   
  
 
  
  
    
      Enable the Database Migration Service API. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
- 确保您已将 Database Migration Admin 角色分配给您的用户账号。
要求
Database Migration Service 提供各种源数据库选项和连接方法。不同源使用某些连接方法的效果比使用其他方法更好。在本快速入门中,我们假设您在将网络配置为添加入站防火墙规则的环境中使用独立的 PostgreSQL 数据库。源数据库可以位于本地,也可以位于云提供商。由于我们无法获知您环境的具体细节,因此我们无法提供网络配置的详细步骤。
在此快速入门中,您将选择 PostgreSQL 作为源数据库引擎,并选择 IP 许可名单作为网络方法。
创建源连接配置文件
创建连接配置文件后,您将创建包含源数据库相关信息的记录。Database Migration Service 会使用连接配置文件中的信息将数据从源数据库迁移到目标 Cloud SQL 数据库实例。- 前往 Google Cloud 控制台中的 Database Migration Service“连接配置文件”页面。 
- 点击创建配置文件。 
- 在创建连接配置文件页面上,从配置文件角色列表中选择来源。 
- 在数据库引擎列表中,选择源数据库的以下分类类型之一: - 独立 PostgreSQL 实例 (PostgreSQL)
- 现有的 Cloud SQL for PostgreSQL 实例 (Cloud SQL for PostgreSQL)
- Amazon RDS for PostgreSQL 实例 (Amazon RDS for PostgreSQL)
 - 在本快速入门中,请选择 PostgreSQL。 
- 提供以下信息:
    - 在连接配置文件名称字段中,为源数据库的连接配置文件输入一个名称,例如 My Connection Profile。
- 保留自动生成的连接配置文件 ID。
- 输入连接信息:
        - 如果您要从自托管数据库复制数据,请输入用于访问主机的主机名或 IP 地址(网域或 IP)和端口。(默认 PostgreSQL 端口为 5432。)
- 如果您要从 Cloud SQL 数据库复制数据,请从下拉列表中选择 Cloud SQL 实例。
 
- 输入用户名和密码,对源实例进行身份验证。
- (可选)如果您计划通过公共网络(使用 IP 许可名单)传输敏感信息,建议对源数据库和目标数据库之间的连接使用 SSL/TLS 加密。否则,请保留默认值 None。
 
- 在连接配置文件名称字段中,为源数据库的连接配置文件输入一个名称,例如 
- 在页面上的连接配置文件区域部分中,选择您要在其中保存连接配置文件的区域。 
- 点击创建。
创建迁移作业
Database Migration Service 会使用迁移作业将数据从源数据库实例迁移到目标 Cloud SQL 数据库实例。创建迁移作业包括:
- 定义作业的设置
- 选择您为源数据库创建的连接配置文件(来源连接配置文件)
- 定义目标 Cloud SQL 数据库实例的设置
- 在源数据库实例和目标数据库实例之间建立连接
- 测试迁移作业,以确保您为作业提供的连接信息有效
定义迁移作业的设置
- 前往 Google Cloud 控制台中的 Database Migration Service“迁移作业”页面。 
- 点击创建迁移作业。 
- 在迁移作业名称字段中,为迁移作业输入名称,例如 - My Migration Job。
- 保留自动生成的迁移作业 ID。 
- 打开源数据库引擎下拉列表,然后选择源数据库的分类类型。 
- 选择要创建目标实例的目标区域。 
- 将迁移作业类型设置为“持续”,因为您希望将源数据库中正在进行的更改迁移到目标 Cloud SQL 数据库实例。 
- 查看自动生成的必要前提条件,以反映如何为迁移作业准备环境。这些前提条件可能包括如何配置源数据库,以及如何将其连接到目标 Cloud SQL 数据库实例。最好在此步骤中完成这些前提条件,但您可以在测试或启动迁移作业之前随时完成。如需详细了解这些前提条件,请参阅配置来源。 
- 点击保存并继续。 
指定有关来源连接配置文件的信息
- 打开选择来源连接配置文件下拉列表,然后选择您创建的连接配置文件。 
- 点击保存并继续。 
定义目标 Cloud SQL 实例的设置
- 为 Cloud SQL 实例提供目标实例 ID。默认情况下,此字段中会预先填充迁移作业 ID。您可以保留此名称,也可以输入其他名称。 
- 为目标 Cloud SQL 实例提供字母数字密码。这将是实例中 - postgres管理员账号的密码。- 您可以手动输入密码,也可以点击生成以让 Database Migration Service 自动为您创建密码。 
- 从指定数据库引擎支持的 Cloud SQL 版本列表中,为目标实例选择数据库版本。 
- 为新的 Cloud SQL 实例选择所需的 Google Cloud 可用区(或保留“不限”)。 
- 选择公共 IP 复选框,因为在本快速入门中,您将使用 IP 许可名单作为网络方法。此方法的工作原理是将源数据库服务器配置为接受来自 Cloud SQL 实例的传出 IP 地址的连接。 
- 为 Cloud SQL 实例选择机器类型。磁盘大小必须等于或大于源数据库的大小。 
- 为 Cloud SQL 实例定义存储类型和存储容量。 
- 点击创建并继续以创建新实例。 
- 在后续对话框中,点击创建目标位置并继续。 创建实例可能需要几分钟才能完成。 
设置连接
- 选择您要在源数据库与目标数据库之间建立连接时使用的网络方法。在本快速入门中,使用连接方法列表选择 IP 许可名单作为网络方法。
-  如果此字段中未预先填充来源 IP 地址,请从控制台中复制 Cloud SQL 实例的传出 IP 地址,并使用该地址为源数据库服务器配置网络防火墙,以接受来自该 IP 地址的连接。
    
 - 更新 pg_hba.conf文件或 Amazon RDS 安全组,以接受来自此 IP 地址的连接。
- 在防火墙规则中,创建入站(或入站流量)规则,以允许从目标 Cloud SQL 实例的连接 IP 地址建立端口 5432 上的连接。
 
- 更新 
- 点击配置并继续以完成连接配置文件配置。
配置迁移数据库
您可以选择要迁移的数据库。
- 在要迁移的数据库列表中,选择所有数据库。
源中的所有数据库都已选择进行迁移。 
- 点击保存并继续。
测试并创建迁移作业
- 查看您为迁移作业选择的设置。 
- 点击测试作业,验证源实例是否已正确配置,源实例和目标实例是否能够相互通信,以及迁移作业是否有效。 
- 验证您是否看到“已成功通过测试!”状态。 - 如果测试失败,您可以在流的适当部分解决问题,然后返回重新测试。 
- 点击创建并启动作业以创建迁移作业并立即启动。 
- 在后续对话框中,点击开始。 
- 在迁移作业页面中,验证迁移作业的状态是否为“正在开始”。几分钟后,确认状态变为“正在运行”。 
验证迁移作业
在本部分中,您将确认 Database Migration Service 使用迁移作业将数据从源数据库实例迁移到目标 Cloud SQL 数据库实例。
- 前往 Google Cloud console中的 SQL 实例页面。
- 点击迁移作业的读取副本条目。
- 点击页面右上角显示的激活 Cloud Shell 图标。
- 在 Google Cloud Shell 提示符处,按 Enter 键。
- 可选:如果看到为 Cloud Shell 提供授权 对话框,请点击授权。
- 连接到目标 Cloud SQL 数据库实例。
- 在输入密码提示符处,输入您在定义目标 Cloud SQL 实例的设置中提供的密码或 Database Migration Service 为您生成的密码。
- 在 postgres 提示符处,输入 \list以列出数据库,并验证您是否看到源数据库实例。
- 在 postgres 提示符下,输入 \connect SOURCE_DB_NAME,因为您要查看与此数据库实例关联的表。提示的名称从postgres更改为 SOURCE_DB_NAME。
- 在 SOURCE_DB_NAME 提示符处,输入 \dt以查看此实例的表。
- 在 SOURCE_DB_NAME 提示符处,输入 GRANT cloudsqlexternalsync to USER;,因为您要向此用户授予访问此实例表中数据的权限。
- 在 SOURCE_DB_NAME 提示符处,输入 SELECT * from TABLE_NAME;以查看从源数据库实例中的表复制的信息。
- 验证您是否在表中看到正确的信息。
这会确认 Database Migration Service 已迁移数据。
提升迁移作业
您已准备好提升迁移作业。这样一来,目标 Cloud SQL 数据库实例就会取代源数据库实例成为主数据库。
- 返回迁移作业页面。 
- 点击要提升的迁移作业。系统会显示迁移作业详情页面。 
- 等待复制延迟时间趋近于零。 
- 停止对源数据库的所有写入操作。 
- 等待复制延迟时间变为零。 
- 点击要提升的迁移作业。此作业的状态应为“正在运行”。 
- 点击提升以提升迁移作业。 
- 在后续对话框中,再次点击提升。 
- 验证迁移作业的状态是否为“正在升级”。几分钟后,确认状态变为“已完成”。 
新的 Cloud SQL 数据库实例已可供使用。
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
- 使用 Google Cloud 控制台删除您不需要的迁移作业、连接配置文件、Cloud SQL 实例和项目。
后续步骤
- 详细了解如何管理连接配置文件。
- 详细了解迁移作业状态。
- 详细了解迁移作业指标。