配置与自行托管的 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. 使用 Cloud VPN 设置与 Oracle 来源的直接连接。

    根据您的网络架构,您可能需要在系统中设置其他 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 地址的虚拟私有云网络已配置为使用专用服务访问通道。如需了解详情,请参阅 配置专用服务访问通道。
  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. 使用 Cloud VPN 设置与 Oracle 来源的直接连接。

    根据您的网络架构,您可能需要在系统中设置其他 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. 从下拉菜单中,选择您在上一步中创建的专用连接配置。

后续步骤