本页面介绍了如何配置与 Amazon RDS for Oracle 来源的网络连接,以便使用 Database Migration Service 将 Oracle 异构迁移到 Cloud SQL for PostgreSQL。
您可以使用三种不同的方法来配置必要的网络连接,以便从 Amazon RDS for Oracle 来源进行迁移:
- 公共 IP 许可清单
- 正向 SSH 隧道
- 专用 IP 连接。以下方法需要 Cloud VPN 或 Cloud Interconnect:
如需详细了解源数据库网络连接,请参阅 源端网络连接方式概览。
配置 IP 许可清单连接
如需使用公共 IP 许可清单连接方法,请按以下步骤操作:
- 在 AWS 管理控制台中,执行以下步骤:
- 确保您的源 Amazon RDS 数据库已配置为使用公共 IP 连接。
- 确定端点名称和端口号。您需要在创建连接配置文件时输入这些值。
如需详细了解如何准备 Amazon RDS for Oracle 实例,请参阅 Amazon RDS 文档中的 连接到 Oracle 数据库实例。
创建一个安全组,以允许从 Database Migration Service 到 Amazon RDS VPC 的流量。请参阅 通过创建安全组来提供对 VPC 中数据库实例的访问权限。
请务必允许您在其中创建迁移作业的区域的所有 Database Migration Service 公共 IP 地址。
- 在稍后阶段,当您
创建来源连接配置文件时,请执行以下操作:
- 在定义连接详细信息部分中,将实例的端点名称用作源数据库 IP。
- 在确定连接方法部分中,选择 IP 许可清单。
通过正向 SSH 隧道配置连接
如需使用 Secure Shell (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 连接指定的端口。
- 输入您为 Database Migration Service 创建的用户的用户名(即 TUNNEL_ACCOUNT_USERNAME 的值)。
- 从身份验证方法下拉菜单中,选择要与 TUNNEL_ACCOUNT_USERNAME 搭配使用的身份验证方法:
- 如果您想使用用户密码,请选择密码,然后在表单中输入 TUNNEL_ACCOUNT_USERNAME 密码。
- 如果您将 SSH 服务器配置为使用基于密钥的身份验证,请选择私钥/公钥对,然后上传
您使用
ssh-keygen命令生成的私钥。
使用 Private Service Connect 接口配置专用连接
通过此连接方法,您可以连接到源数据库的专用 IP,而无需消耗 VPC 对等互连配额。Private Service Connect 接口是专用 IP 连接的推荐方法。
如需使用此方法,您需要在要创建网络连接的同一 VPC 网络中配置 Cloud VPN 或 Cloud Interconnect。如果您无法在 Cloud VPN 或 Cloud Interconnect 所在的 VPC 网络中创建网络连接,则还需要在 Compute Engine 上创建反向代理虚拟机 (VM) 来建立连接。
如果您无法使用 Cloud VPN 或 Cloud Interconnect,我们建议您改用 转发 SSH 隧道或 IP 许可清单连接方法。
如需获得配置 Private Service Connect 接口所需的权限,请让管理员针对您的项目向 迁移过程中涉及的以下账号授予所需的 IAM 角色
- 执行迁移的用户账号:
- 创建和管理网络连接:
Compute Network Admin (
roles/compute.networkAdmin) - 创建和管理专用连接配置:
Database Migration Admin (
roles/datamigration.admin)
- 创建和管理网络连接:
Compute Network Admin (
如果您需要在与 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.createcompute.networkAttachments.getcompute.networkAttachments.listcompute.networkAttachments.updatecompute.networkAttachments.delete
- Database Migration Service 服务账号:
compute.networkAttachments.getcompute.networkAttachments.updatecompute.subnetworks.getcompute.subnetworks.list
如需使用 Private Service Connect 接口连接,请执行以下操作:
-
使用 Cloud VPN 设置与 Amazon RDS for PostgreSQL 实例的直接连接。
如需了解详情,请参阅 Cloud VPN 文档中的 在 Google Cloud 和 AWS 之间创建高可用性 VPN 连接。
- 可选:如果您无法在 Cloud VPN 所在的同一 VPC 网络中创建网络连接,请 在 Compute Engine 上创建反向代理虚拟机 (VM),以在 VPC 之间转发连接。
- 在 Cloud VPN 所在的 VPC 中创建网络连接。请按以下步骤操作:
- 在 Google Cloud 控制台中,前往网络连接页面。
- 点击创建网络连接。
- 输入连接名称。
- 从网络菜单中,选择来源所在的 VPC。
-
对于区域,请使用您计划创建目标数据库的同一区域。
Database Migration Service 是一款完全区域性的产品,这意味着与迁移相关的所有实体(源和目标连接配置文件、迁移作业、目标数据库、转换工作区)都必须保存在单个区域中。
- 从子网菜单中,选择一个子网,其中至少有 6 个可供 Database Migration Service 使用的空闲 IP 地址(即
/29范围)。 -
在连接偏好设置中,选择接受选定项目的连接。
当您稍后 创建专用连接配置时,Database Migration Service 会自动将提供方项目添加到接受的项目列表中。
- 请勿添加接受的项目或拒绝的项目。
- 点击创建网络连接。
- 在 Database Migration Service 中, 为 Private Service Connect 接口创建专用连接配置。
- 在稍后阶段,当您
创建来源连接配置文件时,请执行以下操作:
- 在定义连接详情部分中,输入源 Amazon RDS 实例的专用 IP。
- 在定义连接方法部分中,选择专用连接。
- 从下拉菜单中,选择您在上一步中创建的专用连接配置。
使用 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。
- 在定义连接方法部分中,选择专用连接。
- 从下拉菜单中,选择您在上一步中创建的专用连接配置。