配置与受管理 Oracle 源的网络连接

本页面介绍了如何配置与云托管 Oracle 数据库产品的网络连接,以便使用 Database Migration Service 执行从 Oracle 到 Cloud SQL for PostgreSQL 的异构迁移。

许多不同的云服务提供商都以代管式服务的形式提供 Oracle 数据库。Database Migration Service 不针对任何特定云服务商提供专门支持 (Amazon RDS for Oracle 来源除外),但只要您能建立必要的网络连接,就可以从任何代管式 Oracle 数据库服务进行迁移。

您可以使用三种不同的方法来管理 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 命令生成的私钥。

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

如需将专用连接与云代管式 Oracle 来源搭配使用,您需要在要为 Database Migration Service 创建专用连接配置的同一 VPC 网络中配置 Cloud VPN 或 Cloud Interconnect。如果您无法在具有 Cloud VPN 或 Cloud Interconnect 的 VPC 网络中创建专用连接配置,则还需要在 Compute Engine 上使用反向代理虚拟机 (VM) 来建立连接。

如果您无法使用 Cloud VPN 或 Cloud Interconnect,我们建议您改用 转发 SSH 隧道或 IP 许可清单连接方法。

如需将专用连接与 VPC 对等互连和 Cloud VPN 搭配使用,请按以下步骤操作:

  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. 从下拉菜单中,选择您在上一步中创建的专用连接配置。