全部产品
阿里云办公

各数据源测试连通性支持情况

更新时间:2017-11-23 20:01:35

数据源数据源类型网络类型是否支持测试连通性是否添加自定义资源组
MySQL 云数据库 经典网络 支持 -
专有网络 支持 -
有公网IP 支持 -
无公网IP 不支持 添加自定义资源组
ECS自建 经典网络 支持 -
专有网络 不支持 添加自定义资源组
SQL Server 云数据库 经典网络 支持 -
专有网络 支持 -
有公网IP 支持 -
无公网IP 不支持 添加自定义资源组
ECS自建 经典网络 支持 -
专有网络 不支持 添加自定义资源组
PostgreSQL 云数据库 经典网络 支持 -
专有网络 支持 -
有公网IP 支持 -
无公网IP 不支持 添加自定义资源组
ECS自建 经典网络 支持 -
专有网络 不支持 添加自定义资源组
Oracle
有公网IP 支持 -
无公网IP 不支持 添加自定义资源组
ECS自建 经典网络 支持 -
专有网络 不支持 添加自定义资源组
DRDS 云数据库 经典网络 支持 -
专有网络 排期中 添加自定义资源组
HybridDB for MySQL 云数据库 经典网络 支持 -
专有网络 排期中 添加自定义资源组
HybridDB for PostgreSQL 云数据库 经典网络 支持 -
专有网络 排期中 添加自定义资源组
MaxCompute(对应数据源名称是 odps) 云数据库 经典网络 支持 -
专有网络 支持 -
AnalyticDB(对应数据源名称ADS) 云数据库 经典网络 支持 -
专有网络 排期中 添加自定义资源组
OSS 云数据库 经典网络 支持 -
专有网络 支持 -
Hdfs
有公网IP 支持 -
ECS自建 经典网络 支持 -
专有网络 不支持 添加自定义资源组
FTP
有公网IP 支持 -
无公网IP 不支持 添加自定义资源组
ECS自建 经典网络 支持 -
专有网络 不支持 添加自定义资源组
MongoDB 云数据库 经典网络 支持 -
专有网络 排期中 添加自定义资源组
有公网IP 支持 -
ECS自建 经典网络 支持 -
专有网络 不支持 添加自定义资源组
Memcache 云数据库 经典网络 支持 -
专有网络 排期中 添加自定义资源组
Redis 云数据库 经典网络 支持 -
专有网络 排期中 添加自定义资源组
有公网IP 支持 -
ECS自建 经典网络 支持 -
专有网络 不支持 添加自定义资源组
Table Store(对应数据源名称是OTS) 云数据库 经典网络 支持 -
专有网络 排期中 添加自定义资源组

对上面的几种情况进行说明:

上述表格中的 - 表示没有此种说法,不支持 并不代表不能配置同步任务,只是 单击测试连通性无效,需要添加自定义资源组。

VPC 环境数据源:

  • VPC 环境的 RDS 数据源支持测试连通性。

  • 其他数据源 VPC 网络正在排期。

  • 金融云网络暂时不支持测试连通性。

ECS 自建数据源:

  • 经典网络支持 JDBC 的格式测试连通性,一般是走公网。

  • VPC 环境暂时不支持测试连通性。

  • 跨区域暂时不支持测试连通性。

  • 金融云网络暂时不支持测试连通性。

目前要实现数据同步都是添加自定义资源组的方法,详情请参见 VPC 环境数据同步配置(金融云)

关于 ECS 自建的数据源,需要特别注意安全组的添加,在 ECS 安全组中入/出方向添加调度集群的 IP(公网和经典网络都要在对应的入/出方向添加),如果没有添加相应的安全组同步会出现相应的连接不上的问题。详情请参见 如何添加安全组。大的端口范围无法在 ECS 安全组界面添加,请使用 ECS 的安全组 API 进行添加,详情请参见 AuthorizeSecurityGroup

没有公网 IP 本地 IDC 机房或 ECS 搭建的数据源:

有公网 IP 本地 IDC 机房或 ECS 搭建的数据源:

一律走公网 JDBC 格式,如果测试连通性失败,则检查您本地网络的限制或者数据库本身的限制。

关于调度集群情况

  • 调度集群目前在华东 2、华南 1、香港、新加坡均有部署,目前根据经验,以调度集群在 华东 2 为准和用户数据源做对比。假设用户的 MongoDB 数据源在华北经典网络以我们调度集群在华东 2 经典网络为准,跨区域是不通的。

  • OXS 集群和 ECS 集群,内网不通。

    RDS 的调度集群是 OXS,OXS 集群是和内网大陆所有区域的 RDS 是互通的。其他数据源的调度集群是另外一套 ECS 经典网络的调度集群。

    比如 RDS 同步到自建数据库测试的时候,RDS 和自建数据库数据源测试连通性都能成功。但实际调度的时候,RDS 会下发到 OXS 调度集群,自建的会跑到 ECS 集群,RDS 和 ECS 集群不通,所以会失败。一般建议您将 RDS 改为 MySQL > JDBC 方式,这样都会跑到 ECS 集群上连接是可以通的。

怎么查看任务下发执行集群

  • 出现 RDS 作为数据源的时候,任务会到 OXS 集群同步。日志如下图所示:

    1

  • 当数据源为其他数据源在是 ECS 调度集群,如下图所示:

    1

  • 当调度集群为自定义调度资源时,日志如下图所示(非常重要,用于判断用户是否是自定义资源组):

    1

  • 进入数据集成测试页面,直接单击 运行,统一走的是 ECS 调度集群,所以会有用户反馈,RDS 相关任务手动运行成功,调度失败。因为 RDS 作为数据源跨区域时候,需要在 OXS 调度集群执行。所以需要您进行 调度运维 > 测试运行

注意

关于数据源的测试连通性,可能大家最想了解的走公网的收费情况。下面以 RDS 同步到 MaxCompute 收费问题为例:

数据集成目前是不收费的,但有可能涉及一些收费的产品,这个可以参考涉及的收费产品来判断,DataWorks 配置关于 MaxCompute 的数据同步,都是不收费的。除非您自己在脚本模式自己加参数配置 MaxCompute 的 Tunnel 的公网地址,会收费(实际上我们在脚本模式生成的模板中没有提供这个参数)。

总结

  • 当遇到测试连通性失败,一般有下面两种情况:

    • 常见错误实例,填写信息错误,核实数据源数据库名称,用户名、密码是否正确:

      1

    • 没有连接上数据库,核实数据源区域,网络类型,白名单是否添加完整,实例 ID 等相关信息:

      5.jpg | center

  • 同步过程中出现网络断开等。

    首先要完整日志,看下调度资源是哪个,是否是自定义资源。

    如果是自定义资源,核实自定义资源组的 IP 是否添加到数据源比如 RDS 白名单(MongoDB也是有白名单限制的,也需要添加)。

    核实两端数据源连通性是否通过,核实 RDS,MongoDB 白名单是否会添加完整(如果不完整,有时候会成功有的时候会失败,如果任务下发到已添加的调度服务器上会成功,没添加的会失败)。

  • 任务显示成功,但是日志出现 8000 断开报错。

    出现上述报错,是因为用户使用的自定义调度资源组,没有对 10.116.134.123,访问 8000 端口在安全组内网入方向放行,添加后重新运行即可。

关于测试连通性失败的示例

示例一

问题现象

测试连接失败,测试数据源连通性失败。连接数据库失败,数据库连接串:jdbc:mysql://xx.xx.xx.x:xxxx/t_uoer_bradef, 用户名:xxxx_test,异常消息:Access denied for user ‘xxxx_test’@’%’ to database ‘yyyy_demo’。

排查思路:

  1. 确认其添加的信息有没有问题。

  2. 密码、白名单或者用户的账号有没有对应数据库的权限,RDS 管控台可以添加授权的。

示例二

问题现象

测试连接失败,测试数据源连通性失败。报错如下:

  1. error message: Timed out after 5000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[(xxxxxxxxxx), type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Prematurely reached end of stream}}]

排查思路:
非 VPC 的 Mongodb,添加 Mongodb 数据源测试连通性要添加相应的白名单,详情请参见 如何添加白名单