配置与自行托管的 Oracle 源的网络连接

本页面介绍了如何配置与自托管 Oracle 来源的网络连接,以便使用 Database Migration Service 将异构 Oracle 迁移到 Cloud SQL for PostgreSQL。

您可以使用三种不同的方法来配置从自托管 Oracle 来源进行迁移所需的网络连接:

配置 IP 许可清单连接

如需使用公共 IP 许可清单连接方法,请按以下步骤操作:

  1. 确保您的源数据库具有可从公共互联网访问的 IP 地址。您无需使用 IP 地址进行连接。 如果您有与该 IP 关联的 DNS 记录,则可以改用该记录。
  2. 在源数据库服务器上创建入站防火墙规则,以接受来自 Database Migration Service 的连接。使用以下配置:
    1. 对于规则类型,请使用 port。
    2. 对于允许的 IP 地址范围,请添加您在其中创建迁移作业的区域的所有 Database Migration Service 公共 IP 地址。
    3. 将协议设置为 TCP。
    4. 将与该规则关联的端口号设置为源数据库监听传入连接的端口。此端口号与您需要在来源连接配置文件中输入的端口号相同。

      Oracle 服务器默认使用 1521 端口。

    配置防火墙规则的步骤因您使用的服务器软件而异。如需了解详情,请参阅防火墙产品的文档。

  3. 在稍后阶段,当您创建源连接配置文件时,请在定义连接方法部分中选择 IP 许可清单。

通过正向 SSH 隧道配置连接

如需使用 Secure Shell (SSH) 隧道连接到源数据库,请按以下步骤操作:

  1. 创建一个虚拟机 (VM),用于在 Database Migration Service 与源数据库之间打开隧道。隧道服务器可以是满足以下条件的任何 Unix/Linux 主机:
    • 可通过 SSH 从公共互联网访问。
    • 可以访问源数据库的专用 IP 地址。
  2. 在 SSH 服务器上,创建一个用户账号,供 Database Migration Service 用于连接到 SSH 隧道。

    例如,在 Ubuntu 系统上,您可以使用以下命令:

    1. 创建用户账号:
      adduser TUNNEL_ACCOUNT_USERNAME
    2. 限制用户账号的 shell 访问权限,以提高安全性:
      usermod -s /usr/sbin/nologin TUNNEL_ACCOUNT_USERNAME
  3. 确定您希望 Database Migration Service 在连接到隧道时使用哪种身份验证方法。

    您可以使用密码,也可以生成 PEM 格式的 SSH 密钥,以便稍后在创建源连接配置文件时将其上传到 Database Migration Service。

    • 如果您想使用密码,则无需进行任何其他配置。记住您为 TUNNEL_ACCOUNT_USERNAME 账号创建的密码。
    • 如果您想使用基于密钥的身份验证,则需要生成私钥/公钥对。例如,您可以使用 ssh-keygen 实用程序:
      1. 生成密钥对:
        ssh-keygen -m PEM -f YOUR_KEY_NAME
      2. 将公钥 (YOUR_KEY_NAME.pub) 复制到隧道服务器上的 ~/.ssh/ 目录。
      3. 保存私钥。稍后,您需要在创建来源连接配置文件时将其上传到 Database Migration Service。
  4. 修改 /etc/ssh/sshd_config 文件,以配置正向 SSH 隧道,使其符合贵组织的要求。 我们建议使用以下设置:
    # Only allow the Database Migration Service user to connect.
    AllowUsers TUNNEL_ACCOUNT_USERNAME
    
    # Send keep-alive packets every 60 seconds to ensure that
    # the tunnel doesn't close during the migration
    ServerAliveInterval=60
    
    # Optional: Force key-based authentication
    PasswordAuthentication no
    
    # Enables Database Migration Service to connect from a different host
    PermitTunnel yes
    GatewayPorts yes
  5. 运行 ssh 命令以启动隧道。

    在使用下面的命令数据之前,请先进行以下替换:

    • 将 TUNNEL_SERVER_SSH_PORT 替换为服务器监听 SSH 连接的端口号。
    • 将 SOURCE_DATABASE_PRIVATE_IP 替换为源数据库的专用 IP 地址。SSH 服务器需要能够访问该 IP。
    • SOURCE_DATABASE_PORT 替换为源数据库监听连接的端口号。Oracle 上 TCP 连接的默认端口号为 1433。
    • 将 USERNAME 替换为将运行隧道的用户账号的名称。此账号与 TUNNEL_ACCOUNT_USERNAME 是两个不同的账号。
    • 将 TUNNEL_SERVER_PUBLIC_IP 替换为 SSH 隧道服务器的公共 IP。
    ssh -N -L \
    TUNNEL_SERVER_SSH_PORT:SOURCE_DATABASE_PRIVATE_IP:SOURCE_DATABASE_PORT \
    USERNAME@TUNNEL_SERVER_PUBLIC_IP
  6. 在 SSH 隧道上创建入站防火墙规则,以接受来自您创建迁移作业的区域的 Database Migration Service 公共 IP 地址的连接。
  7. 在后续阶段,当您创建来源连接配置文件时,请执行以下操作:
    1. 在定义连接详情部分中,输入源 Oracle 实例的专用 IP。
    2. 在确定连接方法部分中,选择转发 SSH 隧道。
    3. 提供 SSH 服务器的公共 IP 地址或主机名。
    4. 提供您在隧道服务器上为 SSH 连接指定的端口。
    5. 输入您为 Database Migration Service 创建的用户的用户名(即 TUNNEL_ACCOUNT_USERNAME 的值)。
    6. 从身份验证方法下拉菜单中,选择要与 TUNNEL_ACCOUNT_USERNAME 用户搭配使用的身份验证方法:
      • 如果您想使用用户密码,请选择密码,然后在表单中输入 TUNNEL_ACCOUNT_USERNAME 密码。
      • 如果您将 SSH 服务器配置为使用基于密钥的身份验证,请选择私钥/公钥对,然后上传 您使用 ssh-keygen 命令生成的私钥。

使用 Private Service Connect 接口配置专用连接

通过此连接方法,您可以连接到源数据库的专用 IP,而无需消耗 VPC 对等互连配额。Private Service Connect 接口是专用 IP 连接的推荐方法。

所需的角色

如需获得配置 Private Service Connect 接口所需的权限,请让管理员针对您的项目向迁移过程中涉及的以下账号授予所需的 IAM 角色

  • 执行迁移的用户账号:
  • 如果您需要在与 Database Migration Service 不同的项目中创建网络连接或其底层子网(例如,如果您使用共享 VPC 宿主项目),则需要向 Database Migration Service 服务账号 (service-PROJECT_NUMBER@gcp-sa-datamigration.) 授予以下角色: Compute Network Viewer (roles/compute.networkViewer)

如需详细了解如何授予角色,请参阅 管理访问权限。

这些预定义角色包含使用 Database Migration Service 执行同构 SQL Server 迁移所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需使用 Database Migration Service 执行同构 SQL Server 迁移,您需要拥有以下权限:

  • 执行迁移的用户账号:
    • datamigration.*
    • compute.networkAttachments.create
    • compute.networkAttachments.get
    • compute.networkAttachments.list
    • compute.networkAttachments.update
    • compute.networkAttachments.delete
  • Database Migration Service 服务账号:
    • compute.networkAttachments.get
    • compute.networkAttachments.update
    • compute.subnetworks.get
    • compute.subnetworks.list

您也可以使用 自定义角色或其他 预定义角色来获取这些权限。

对于 Google Cloud中的自托管来源

如需为托管在 Compute Engine 虚拟机上的源 Oracle 数据库使用 Private Service Connect 接口的专用连接,请按照以下步骤操作:

  1. 在自托管来源所在的 VPC 中创建网络连接。 请按以下步骤操作:
    1. 在 Google Cloud 控制台中,前往网络连接页面。

      前往“网络连接”

    2. 点击创建网络连接。
    3. 输入连接名称。
    4. 从网络菜单中,选择自托管来源所在的 VPC。
    5. 对于区域,请使用您计划创建目标数据库的同一区域。

      Database Migration Service 是一款完全区域性的产品,这意味着与迁移相关的所有实体(源和目标连接配置文件、迁移作业、目标数据库、转换工作区)都必须保存在单个区域中。

    6. 在连接偏好设置中,选择接受选定项目的连接。

      当您稍后 创建专用连接配置时,Database Migration Service 会自动将提供方项目添加到接受的项目列表中。

    7. 请勿添加接受的项目或拒绝的项目。
    8. 点击创建网络连接。
  2. 在 Database Migration Service 中,为 Private Service Connect 接口创建专用连接配置。
  3. 在后续阶段,当您创建来源连接配置文件时,请执行以下操作:
    1. 在定义连接详情部分中,输入托管 Oracle 数据库的 Compute Engine 虚拟机的 IP 地址。

      您可以在 Google Cloud 控制台中 查看虚拟机的 IP 地址。

    2. 在确定连接方法部分中,选择专用连接。
    3. 从下拉菜单中,选择您在上一步中创建的专用连接配置。

对于 Google Cloud之外的自托管来源

如需将专用连接与 Private Service Connect 接口搭配使用,以连接到位于Google Cloud外部网络中的自托管 Oracle 源数据库,请按照以下步骤操作:

  1. 设置与 Oracle 来源的 Cloud VPN 直接连接。

    根据您的网络架构,您可能需要在系统中设置其他 VPN 网关。如需了解详情,请参阅 Cloud VPN 文档中的 创建连接到对等 VPN 网关的高可用性 VPN 网关。

  2. 可选:如果您无法在 Cloud VPN 所在的同一 VPC 网络中创建专用连接配置,请 在 Compute Engine 上创建反向代理虚拟机 (VM),以在 VPC 之间转发连接。
  3. 在 Cloud VPN 所在的 VPC 中创建网络连接。 请按以下步骤操作:
    1. 在 Google Cloud 控制台中,前往网络连接页面。

      前往“网络连接”

    2. 点击创建网络连接。
    3. 输入连接名称。
    4. 从网络菜单中,选择自托管来源所在的 VPC。
    5. 对于区域,请使用您计划创建目标数据库的同一区域。

      Database Migration Service 是一款完全区域性的产品,这意味着与迁移相关的所有实体(源和目标连接配置文件、迁移作业、目标数据库、转换工作区)都必须保存在单个区域中。

    6. 从子网菜单中,选择一个子网,其中至少有 6 个可供 Database Migration Service 使用的空闲 IP 地址(即 /29 范围)。
    7. 在连接偏好设置中,选择接受选定项目的连接。

      当您稍后 创建专用连接配置时,Database Migration Service 会自动将提供方项目添加到接受的项目列表中。

    8. 请勿添加接受的项目或拒绝的项目。
    9. 点击创建网络连接。
  4. 在 Database Migration Service 中,为 Private Service Connect 接口创建专用连接配置。
  5. 在后续阶段,当您创建来源连接配置文件时,请执行以下操作:
    1. 在定义连接详情部分中,输入 Oracle 来源的专用 IP。
    2. 在确定连接方法部分中,选择专用连接。
    3. 从下拉菜单中,选择您在上一步中创建的专用连接配置。

使用 VPC 对等互连配置专用连接

此连接方法要求可以从 Google Cloud VPC 访问源数据库 IP 地址或主机名。位于 Google Cloud外部网络中的自托管来源可能需要您使用其他网络组件,例如 Cloud VPN 或 Cloud Interconnect。

对于 Google Cloud中的自托管来源

如需将专用连接与虚拟私有云对等互连搭配使用,以便连接到 Compute Engine 虚拟机上托管的源 Oracle 数据库,请按照以下步骤操作:

  1. 确保为您的虚拟机分配了 IP 地址的 Virtual Private Cloud 网络已配置为使用专用服务访问通道。如需了解详情,请参阅 配置专用服务访问通道。
  2. 在 Database Migration Service 中, 创建专用连接配置,以便与在 Compute Engine 虚拟机上托管 Oracle 数据库的 VPC 网络建立对等互连。
  3. 在稍后阶段,当您创建来源连接配置文件时,请执行以下操作:
    1. 在定义连接详情部分中,输入托管 Oracle 数据库的 Compute Engine 虚拟机的 IP 地址。

      您可以在 Google Cloud 控制台中 查看虚拟机的 IP 地址。

    2. 在确定连接方法部分中,选择专用连接(VPC 对等互连)。
    3. 从下拉菜单中,选择您在上一步中创建的专用连接配置。

对于 Google Cloud之外的自托管来源

如需将专用连接与虚拟私有云对等互连搭配使用,以连接到位于Google Cloud外部网络中的自托管 Oracle 源数据库,请按以下步骤操作:

  1. 设置与 Oracle 来源的 Cloud VPN 直接连接。

    根据您的网络架构,您可能需要在系统中设置其他 VPN 网关。如需了解详情,请参阅 Cloud VPN 文档中的 创建连接到对等 VPN 网关的高可用性 VPN 网关。

  2. 可选:如果您无法在 Cloud VPN 所在的同一 VPC 网络中创建专用连接配置,请 在 Compute Engine 上创建反向代理虚拟机 (VM),以在 VPC 之间转发连接。
  3. 在 Database Migration Service 中, 创建专用连接配置,以便与您拥有 Cloud VPN 的 VPC 网络建立对等互连。
  4. 在后续阶段,当您创建来源连接配置文件时,请执行以下操作:
    1. 在定义连接详情部分中,输入 Oracle 来源的专用 IP。
    2. 在确定连接方法部分中,选择专用连接(VPC 对等互连)。
    3. 从下拉菜单中,选择您在上一步中创建的专用连接配置。

后续步骤