本页介绍了如何配置与 Amazon RDS for Oracle 来源的网络连接,以便使用 Database Migration Service 将异构 Oracle 迁移到 Cloud SQL for PostgreSQL。
您可以使用以下三种不同的方法来配置从 Amazon RDS for Oracle 源进行迁移所需的网络连接:
- 公共 IP 许可名单
- 正向 SSH 隧道
- 需要 Cloud VPN 或 Cloud Interconnect: 使用虚拟私有云对等连接的专用 IP 连接
如需详细了解来源数据库网络连接,请参阅 来源网络连接方法概览。
配置 IP 许可名单连接
如需使用公共 IP 许可名单连接方法,请按以下步骤操作:
- 在 AWS 管理控制台中,执行以下步骤:
- 确保您的源 Amazon RDS 数据库已配置为支持公共 IP 连接。
- 确定端点名称和端口号。您需要在创建连接配置文件时输入这些值。
如需详细了解如何准备 Amazon RDS for Oracle 实例,请参阅 Amazon RDS 文档中的 连接到 Oracle DB 实例。
创建一个安全组,允许从 Database Migration Service 到 Amazon RDS VPC 的流量。请参阅 通过创建安全群组向 VPC 中的数据库实例授予访问权限。
请务必为您创建迁移作业的区域允许所有 Database Migration Service 公共 IP 地址。
- 在后续阶段,当您
创建来源连接配置文件时,请执行以下操作:
- 在指定连接详情部分,为源数据库 IP 使用实例的端点名称。
- 在定义连接方法部分中,选择 IP 许可名单。
配置通过正向 SSH 隧道的连接
如需使用安全外壳 (SSH) 隧道连接到源数据库,请按以下步骤操作:
-
启动一个 Amazon EC2 实例,将其用作专用正向 SSH 隧道。 请确保您在源 Amazon RDS for Oracle 所在的 Amazon VPC 中进行配置。
如需了解详情,请参阅 Amazon 文档中的 Amazon EC2 使用入门。
-
连接到您的 EC2 实例并设置 SSH 隧道。
请按以下步骤操作:
- 为 Database Migration Service 创建一个单独的专用用户账号,以便其以以下身份进行连接:
adduser
TUNNEL_ACCOUNT_USERNAME - 限制 Database Migration Service 账号的 shell 访问权限,以提高安全性:
usermod -s /usr/sbin/nologin
TUNNEL_ACCOUNT_USERNAME 确定您希望 Database Migration Service 在连接到隧道时使用哪种身份验证方法。
您可以使用简单的密码,也可以生成
PEM
格式的 SSH 密钥,以便在创建源连接配置文件时将其上传到 Database Migration Service。- 如果您想使用密码,则无需额外配置任何内容。记住您为 TUNNEL_ACCOUNT_USERNAME 账号创建的密码。
- 如果您想使用基于密钥的身份验证,则需要生成一个公钥/私钥对。例如,您可以使用
ssh-keygen
实用程序:- 生成密钥对:
ssh-keygen -m PEM -f
YOUR_KEY_NAME - 将公钥 (
YOUR_KEY_NAME.pub
) 复制到隧道服务器上的~/.ssh/
目录。 - 保存私钥。您稍后需要在创建源连接配置文件时将其上传到 Database Migration Service。
- 生成密钥对:
- 修改
/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 - 运行
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 - 将
- 为 Database Migration Service 创建一个单独的专用用户账号,以便其以以下身份进行连接:
- 在后续阶段,当您
创建来源连接配置文件时,请执行以下操作:
- 在指定连接详情部分,为源数据库 IP 使用实例的端点名称。
- 在定义连接方法部分中,选择转发 SSH 隧道。
- 提供 SSH 服务器的公共 IP 地址或主机名。
- 提供您在隧道服务器上为 SSH 连接指定的端口。
- 输入您为数据库迁移服务创建的用户的用户名(即 TUNNEL_ACCOUNT_USERNAME 的值),以便以该用户名进行连接。
- 从 Authentication method(身份验证方法)下拉菜单中,选择要与 TUNNEL_ACCOUNT_USERNAME 搭配使用的身份验证方法:
- 如果您想使用用户密码,请选择密码,然后在表单中输入 TUNNEL_ACCOUNT_USERNAME 密码。
- 如果您已将 SSH 服务器配置为使用基于密钥的身份验证,请选择私钥/公钥对,然后上传
您使用
ssh-keygen
命令生成的私钥。
使用 VPC 对等互连配置专用连接
如需将专用连接与 Amazon RDS for 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 与专用连接搭配使用,请按以下步骤操作:
-
使用 Cloud VPN 设置与 Amazon RDS for PostgreSQL 实例的直接连接。
如需了解详情,请参阅 Cloud VPN 文档中的 在 Google Cloud 和 AWS 之间创建高可用性 VPN 连接。
- 可选:如果您无法在包含 Cloud VPN 的 VPC 网络中创建专用连接配置,请 在 Compute Engine 上创建反向代理虚拟机 (VM),以转发 VPC 之间的连接。
- 在 Database Migration Service 中, 创建专用连接配置,以与您部署 Cloud VPN 的 VPC 网络建立对等互连。
- 在后续阶段,当您
创建来源连接配置文件时,请执行以下操作:
- 在定义连接详情部分中,输入源 Amazon RDS 实例的专用 IP。
- 在定义连接方法部分中,选择专用连接(VPC 对等互连)。
- 从下拉菜单中,选择您在上一步中创建的专用连接配置。