在专用网络中创建实例,然后导入数据库

将工作负载从其他平台迁移到 Cloud SQL for SQL Server 通常需要使用 Google Cloud 控制台从您从之前环境中导出的 SQL 转储文件导入数据。

本教程将介绍如何创建所需的 Google Cloud 资源,然后将 SQL 数据库导入到 Cloud SQL for SQL Server 实例。本教程演示了迁移到 Cloud SQL for SQL Server 时的最佳实践,包括使用具有专用服务访问通道的 Virtual Private Cloud (VPC) 网络,以及为 Cloud SQL 实例启用专用 IP。

在完成这些步骤的过程中,除非另有说明,否则请保留设置的默认值。

目标

  1. 下载示例 SQL 转储文件。
  2. 创建具有专用服务访问权限的新 Virtual Private Cloud 网络。
  3. 创建一个 Cloud Storage 存储桶,并将 SQL 转储文件上传到该存储分区。
  4. 创建配置为使用专用 IP 的 Cloud SQL for SQL Server 实例。
  5. 创建目标数据库。
  6. 从转储文件导入到新数据库。
  7. 通过查看结构和运行查询来验证数据库是否已成功导入。

费用

在本文档中,您将使用 Google Cloud的以下收费组件:

如需根据您的预计使用量来估算费用,请使用价格计算器

新 Google Cloud 用户可能有资格申请免费试用

完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理

准备工作

  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.
  2. 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 role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. 如果您要使用现有项目来完成本指南,请验证您是否拥有完成本指南所需的权限。如果您创建了新项目,则您已拥有所需的权限。

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Cloud SQL, Cloud SQL Admin, Compute Engine, Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  6. 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 role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. 如果您要使用现有项目来完成本指南,请验证您是否拥有完成本指南所需的权限。如果您创建了新项目,则您已拥有所需的权限。

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Cloud SQL, Cloud SQL Admin, Compute Engine, Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  10. 所需的角色

    如需获得完成本教程所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:

    如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

    您也可以通过自定义角色或其他预定义角色来获取所需的权限。

    获取示例数据库转储文件

    在本教程中,您将使用一个包含国家/地区代码和世界首都的小型示例数据库。

    countries 数据库的 SQL 文件下载到本地环境:countries-sqlserver.sql

    创建具有专用服务访问权限的网络

    在创建其余资源之前,请先创建一个 VPC 网络来运行您的服务。借助专用服务访问通道,您可以使用内部 IPv4 地址在外部网络与 Cloud SQL for SQL Server 之间建立专用连接,从而限制对 Cloud SQL 数据库的访问。

    1. 在 Google Cloud 控制台中,前往 VPC 网络页面。

      转到“VPC 网络”页面

    2. 点击创建 VPC 网络

    3. 在名称字段中,输入 tutorial-network

    4. 对于子网创建模式,选择自定义

    5. 在名称字段中,输入 tutorial-subnet

    6. 选择您附近的区域。

    7. 对于 IPv4 范围,输入 10.0.0.0/24

    8. 对于专用 Google 访问通道,选择开启

    9. 点击完成

    10. 点击页面底部的创建

    VPC 网络创建过程完成后,您可以为该网络配置专用服务访问通道。

    1. 在“VPC 网络”界面上,点击 tutorial-network
    2. tutorial-network 的菜单栏中,点击专用服务访问通道
    3. 点击为服务分配的 IP 范围
    4. 点击分配 IP 范围
    5. 对于名称,请输入 tutorial-range
    6. 对于 IP 地址范围,选择自定义
    7. 范围字段中,输入 192.168.0.0/20
    8. 点击分配
    9. 在子菜单中,点击连到服务的专用连接
    10. 点击创建连接
    11. 指定的分配范围下拉菜单中,选择 tutorial-range
    12. 点击连接。一两分钟后, Google Cloud 控制台会显示一条消息,告知您已成功创建专用连接。

    创建 Cloud Storage 存储桶

    接下来,创建一个 Cloud Storage 存储桶来存储您之前下载的 SQL 转储文件。Cloud SQL 导入工具要求转储文件位于存储桶中。Cloud Storage 存储桶必须具有全局唯一的名称。

    1. 在 Google Cloud 控制台中,转到 Cloud Storage 存储桶页面。

      进入“存储桶”

    2. 点击创建
    3. 对于存储桶名称,请创建一个由小写字母、数字和连字符组成的全局唯一名称。您可能需要使用随机字符串生成器(例如 random.org/strings)来生成名称。记下您选择的名称。
    4. 点击继续
    5. 位置类型下,选择区域。这是费用最低的选项。
    6. 选择与子网相同的区域。将Google Cloud 资源放置在同一区域中可缩短延迟时间、提高速度、降低数据传输费用并简化网络。
    7. 点击继续
    8. 点击创建
    9. 如果系统显示对话框,请保持禁止公开访问此存储桶处于选中状态,然后点击确认

    系统会打开新存储桶的存储桶详情页面,其中“对象”窗格处于选中状态。

    将转储文件上传到存储桶

    将您之前下载的示例 SQL 转储文件上传到您的存储桶。

    1. 对象标签页中,点击上传,然后点击上传文件
    2. 找到并选择 countries-sqlserver.sql 文件。
    3. 点击打开。Cloud Storage 会将转储文件上传到相应存储桶。

    创建 Cloud SQL 实例

    在 Google Cloud 控制台中使用以下设置创建 Cloud SQL 实例。对于所有其他设置,请保留默认设置。虽然您无需为导入流程启用专用 IP,但最好为生产工作负载使用专用 IP。

    1. 在 Google Cloud 控制台中前往“Cloud SQL 实例”页面。
      前往“Cloud SQL 实例”页面
    2. 点击创建实例
    3. 点击 Choose SQL Server(选择 SQL Server)。
    4. 对于选择 Cloud SQL 版本,选择企业版
    5. 对于版本预设,选择沙盒
    6. 实例 ID 部分,输入 tutorial-instance
    7. 为默认用户账号选择并输入密码,并保存以备将来使用。
    8. 选择与子网和存储桶相同的区域。
    9. 对于可用区级可用性,选择单个可用区
    10. 展开显示配置选项
    11. 展开连接
    12. 清除公共 IP
    13. 选择专用 IP
    14. 网络下拉菜单中,选择 tutorial-network。这会将新的 Cloud SQL 实例放置在您之前创建的专用网络中。
    15. 点击创建实例,然后等待实例初始化并启动。初始化过程可能需要五分钟以上。

    创建目标数据库

    导入工作流要求您选择要导入到的目标数据库,因此您需要创建一个空数据库。

    1. 在 SQL 导航菜单中,点击数据库
    2. 点击创建数据库
    3. 对于数据库名称,请键入 countries
    4. 点击创建

    从转储文件导入

    现在,您可以使用上传到 Cloud Storage 存储桶的 countries-sqlserver.sql 转储文件导入 countries 数据库了。

    1. 在 SQL 导航菜单中,点击概览
    2. 在概览页面上,点击导入
    3. 文件格式下,选择 SQL
    4. 选择源文件下,选择从 Google Cloud Storage 中选择文件
    5. 点击浏览
    6. 展开您之前创建的存储桶。
    7. 点击 countries-sqlserver.sql
    8. 点击选择
    9. 目标部分,点击数据库下拉菜单,然后选择国家/地区
    10. 点击导入

    当导入过程完成且 countries 数据库已导入到 Cloud SQL for SQL Server 时,系统会显示一条成功消息。

    验证 Cloud SQL for SQL Server 中的导入数据

    导入操作完成后,您可以使用 Cloud SQL Studio 连接到数据库,检查表列表,并针对数据运行测试查询,以验证数据库是否已导入。

    向 Cloud SQL Studio 进行身份验证

    使用您之前创建的用户账号,通过 Cloud SQL Studio 连接到新数据库。

    1. 在 SQL 导航菜单中,点击 Cloud SQL Studio。系统会显示一个登录对话框。
    2. 数据库下拉列表中,选择 countries
    3. 选择内置数据库身份验证
    4. 用户下拉列表中,选择 sqlserver
    5. 密码字段中,输入您在创建实例时指定的密码。
    6. 点击身份验证。 系统会打开 Cloud SQL Studio。

    查看和查询表格

    1. 探索器窗格中,检查 countries 数据库,并确认该数据库包含两个表:capitalscountry_codes
    2. 点击未命名的查询以打开查询编辑器。
    3. 将以下代码粘贴到查询编辑器中:

      SELECT
        [capitals].[country_capital],
        [country_codes].[country_name]
      FROM
        [capitals]
      JOIN
        [country_codes]
      ON
        [capitals].[alpha_2_code] = [country_codes].[alpha_2_code]
      ORDER BY
        [capitals].[country_capital];
      
    4. 点击运行

    结果窗格会显示世界各国首都及其所在国家/地区的列表(按字母顺序排列)。

    清理

    为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请执行以下操作之一:

    • 删除包含这些资源的项目
    • 保留项目,但删除各个资源。

    删除项目

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    删除各个资源

    如果您想保留项目但避免产生费用,请删除您在教程中创建的 Cloud SQL 实例、Cloud Storage 存储桶和 VPC 网络。

    删除 Cloud SQL 实例

    首先,停用防删除保护,然后删除教程 Cloud SQL 实例:

    1. 在 SQL 导航菜单中,点击概览
    2. 点击修改
    3. 展开数据保护部分。
    4. 实例防删除保护中,取消选择所有选项。
    5. 点击保存。操作完成后,删除即可选择。
    6. 点击删除。随即会出现一个对话框。
    7. 实例 ID 字段中,输入 tutorial-instance
    8. 点击删除

    删除 Cloud Storage 存储桶

    接下来,删除存储桶及其内容。

    1. 在主 Google Cloud 控制台导航菜单中,前往 Cloud Storage > 存储分区
    2. 选中您之前创建的存储桶的名称旁边的复选框。
    3. 点击 删除
    4. 在对话框中,输入 DELETE 以确认删除,然后点击删除

    删除 VPC 网络

    现在,您已删除 VPC 网络中的资源,可以删除该网络了。在删除 VPC 网络之前,您必须删除在创建 VPC 网络时自动创建的对等互连连接。

    1. 在主导航菜单中,依次前往 VPC 网络 > VPC 网络对等互连
    2. 选中 VPC 网络 tutorial-network 的对等互连旁边的方框。
    3. 点击删除
    4. 在对话框中,点击删除进行确认。

    对等互连连接已移除,现在您可以删除 VPC 网络。

    1. VPC 网络菜单中,点击 VPC 网络
    2. 点击 tutorial-network 以打开详情页面。
    3. 点击 删除 VPC 网络
    4. 在对话框中,输入 tutorial-network 以确认删除,然后点击删除

    后续步骤