诊断问题

概览

数据流在运行时可能会出错。

  • 某些错误(例如源数据库上的密码错误)可以恢复,这意味着它们可以得到修复,并且数据流会自动恢复。
  • 一些错误可能会影响单个对象,例如包含不受支持的数据类型的事件。其他错误可能会影响多个对象或整个数据流,例如当 Datastream 无法连接到源数据库时。
  • 根据错误情况,Datastream 界面的数据流数据流详情页面中提供了相关信息。您还可以使用 Datastream 的 API 来检索错误的相关信息。

如需排查错误,请导航到数据流以查看错误,然后按照错误消息中列出的步骤操作。

本页面介绍了连接、Oracle 和 MySQL 错误,以及排查这些错误的步骤。

连接错误

错误 问题排查步骤
未能连接到源数据库(常规)。

造成这种情况的原因有很多。如需排查此错误,请执行以下操作:

  1. 确保源数据库已启动且可以访问。
  2. 数据流连接配置文件页面导航到来源连接配置文件。
  3. 验证连接配置文件连接信息是否正确。
  4. 验证用户名和密码是否匹配。
  5. 验证数据库上是否存在该用户名且是否具有所需权限。
  6. 保存您在连接配置文件页面上所做的任何更改。

数据流会自动恢复。

未能连接到源数据库(IP 许可名单)。 如果所选连接方法为 IP 许可名单,但 Datastream 的一个或多个传出 IP 地址未正确添加到源数据库,则可能会发生此问题。请确保在网络防火墙上配置 Datastream 连接配置文件中显示的传出 IP 地址,以便源数据库服务器可以接受来自这些 IP 地址的连接。解决此问题后,数据流会自动恢复。
未能连接到源数据库(转发 SSH 隧道)。 如果转发 SSH 隧道存在问题,则可能会发生此问题。检查隧道的状态。如果隧道停止,则需要启动它。解决此问题后,数据流会自动恢复。
Datastream 无法通过转发 SSH 隧道连接到堡垒主机。 请验证来源连接配置文件中的转发 SSH 隧道是否配置正确,以及该端口在 SSH 隧道服务器中是否处于开启状态。
由于证书错误,无法连接到源数据库。 如果在定义来源连接配置文件时提供的证书存在问题,则可能会发生此错误。导航到连接配置文件页面,然后选择给定的连接配置文件。验证证书是否已正确设置。进行更改后,保存连接配置文件,随后数据流会自动恢复。
无法连接到使用 SCAN 功能的源 Oracle 数据库。

单个客户端访问名称 (SCAN) 是一项 Oracle Real Application Clusters (Oracle RAC) 功能,可为客户端提供单一名称来访问集群中正在运行的 Oracle 数据库。

SCAN 侦听器会强制重定向到本地侦听器。不过,Datastream 使用点对点连接。这会导致 Datastream 从数据库获取重定向时会失去与 Oracle 数据库的连接。

如需解决此问题,请在为源 Oracle 数据库创建连接配置文件时,在主机名或 IP 字段中输入本地侦听器或节点 IP 地址(而不是 SCAN IP 地址)。

未能使用专用连接来连接到源数据库。
  1. 确保您已满足准备工作中的所有前提条件。
  2. 创建专用连接配置后,请验证 VPC 网络对等互连页面的导出的路由标签页中是否显示了包含数据库的内部 IP 地址的路由

    为此,请转到 VPC 网络对等互连页面,然后搜索已添加的对等互连(名称为 peering-[UUID])。您可以在导出的路由标签页中找到路由。如果此路由不存在,请手动添加它。

  3. 如果您在连接到源数据库时仍然遇到问题,请参阅设置反向代理
组织政策 constraints/datastream.disablePublicConnectivity 开启时,不允许使用连接类型 STATIC_SERVICE_IP_CONNECTIVITY。

您为要创建的连接配置文件选择了公共 IP 许可名单或转发 SSH 隧道网络连接方法。但是,Datastream 的禁止使用公共连接方法组织政策已启用。因此,您无法为连接配置文件选择公共连接方法。

如需解决此问题,请选择专用 VPC 对等互连网络连接方法或停用组织政策。

要停用组织政策,请执行以下操作:

  1. 转到 Google Cloud Console 中的组织政策页面。
  2. 选择 Datastream - 禁止使用公共连接方法组织政策。
  3. 点击修改

  4. 在页面的应用对象部分中,选择自定义
  5. 强制执行部分中,选择关闭

  6. 点击保存
  7. 返回到要创建的 Oracle 连接配置文件,然后点击创建

Oracle 错误

错误 问题排查步骤
补充日志记录在源数据库上配置有误。

如果源数据库上的补充日志记录配置不正确,则提取正在进行的变更数据捕获 (CDC) 数据时可能会出错。验证补充日志记录是否已正确配置。具体来说,确认正在从来源流式传输到目标位置的数据库表已启用补充日志记录功能。数据流会自动恢复。

由于日志位置丢失,无法恢复复制。 当复制过程长时间暂停时,可能会发生此错误,从而导致日志位置丢失。数据流暂停的时长不得接近日志保留期限。重新创建数据流。
日志文件缺失(部分或全部)。

日志文件可能已被删除。Oracle 会尽快完全清除日志文件,除非您指定了最短轮换周期来保留它们。在 Oracle 服务器中,设置日志文件的保留时间。例如,使用 CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS; 将日志文件保留至少 4 天。

对于 RDS 部署,请使用 exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',96);

排除列表中有包含列表。 包含列表完全包含在排除列表中,因此 Datastream 从来源拉取的对象列表为空。请修改所选对象,然后重试。
Oracle 数据库的日志记录模式未设置为 ARCHIVELOG 请更改日志记录模式,然后重试。
无法连接到使用 SCAN 功能的源 Oracle 数据库。 请参阅连接错误
出现意外的内部错误。 如需了解详情,请与 Google 支持团队联系。

MySQL 错误

错误 问题排查步骤
二进制日志在源数据库上配置错误。

如果源数据库的二进制日志配置不正确,则连续 MySQL 数据流可能会发生此错误。如需排查此错误,请执行以下操作:

  1. 验证二进制日志是否配置正确。
  2. 确认 MySQL 数据库的二进制日志格式已设置为 ROW
  3. 重启数据流。
由于二进制日志位置丢失,无法恢复复制。 当复制过程长时间暂停时,可能会发生此错误,从而导致二进制日志位置丢失。数据流暂停的时长不得接近二进制日志保留期限。重新创建数据流。
由于源数据库和目标版本不兼容,无法运行数据流。

当源数据库不符合版本支持矩阵时,可能会发生这种情况。如需排查此错误,请执行以下操作:

  1. 确保源数据库遵循矩阵。
  2. 使用更新后的源数据库重新创建数据流。
AWS RDS MySQL 源二进制日志缺失(部分或全部)。 二进制日志可能已被删除。AWS RDS 会尽快完全清除日志文件,除非您指定了最短轮换周期来保留它们。在源 AWS RDS MySQL 实例中,设置二进制日志的保留时间(以小时为单位)。例如,使用 mysql.rds_set_configuration('binlog retention hours', 168); 将二进制日志保留至少 7 天。
排除列表中有包含列表。 包含列表完全包含在排除列表中,因此 Datastream 从来源拉取的对象列表为空。请修改所选对象,然后重试。
Datastream 无法复制 MySQL 数据库。 确保 Datastream 有权复制数据库。
出现意外的内部错误。 如需了解详情,请与 Google 支持团队联系。