数据流故障排除
| 症状 | 可能的原因 | 操作 |
|---|---|---|
| REST 返回 401 | 缺少身份证明或身份证明无效;代理验证不匹配。 | 验证验证模式、密钥、时钟(如果相关)和代理路由。请勿在 URL 中嵌入凭据。 |
| REST 返回 403 | 账户缺少必需的用户、操作员或管理员角色。 | 使用 Prerequisites for Data Streams Configuration 中的角色表,并仅授予所需的权限。 |
| WebSocket 返回 404 或握手失败 | 硬编码的通道路径;代理没有路由或升级;流名称错误。 | 检索生成的 YAML 并使用其主机和通道地址。验证 WebSocket 升级标头。 |
| TLS 验证失败 | 未知的 CA、过期证书、主机不匹配或缺少客户机证书。 | 安装正确的 CA 链,确认 DNS 和证书 SAN,并在需要时配置双向 TLS。 |
| 连接成功,但没有记录到达 | begin=now 没有新的提交;过滤器排除数据;错误的线索/路径;提取未写入。 |
生成已知事务处理、检查源线索、临时简化筛选器并验证流源。 |
| 第一个对象不是 DML | 方案和元数据记录应早于数据。 | 对每个对象分类;高速缓存方案和元数据,而不是将其视为错误。 |
| JSON 解析器需要对象,但接收数组 | WebSocket 消息是批处理。 | 对顶级数组进行语法分析并迭代其记录。 |
客户端无法与 pos 重新连接 |
未进行百分比编码、已更改、属于其他流或线索历史记录的标记已清除。 | 使用精确保存的令牌,对其进行百分比编码,验证范围,并遵循不可用位置恢复过程。 |
| 显示重复项 | atLeastOnce;sink 写入和检查点之间崩溃;两个使用者共享检查点;非幂等重试。 |
使用原子检查点或幂等性并验证服务质量和消费者所有权。 |
| 恢复后缺少记录 | atMostOnce 跳过不可用位置;检查点在业务提交之前已保存;筛选器已更改。 |
审计恢复事件,协调数据差距,并使用 exactlyOnce 加上正确的检查点事务处理来处理持久性工作负载。 |
| 图像之前或之后缺少列 | 源日志记录或提取捕获了部分映像;省略了空值;选择了行模型。 | 检查线索捕获、omitNullColumnValues、模型和运行时方案。请勿将缺勤字段推断为 NULL。 |
| 缺少 DDL | 未捕获 DDL,过滤器排除 DDL,或者源配置不支持预期的事件。 | 验证源 DDL 捕获并在操作筛选器中包含 DDL。 |
| 使用者在 DDL 之后失败 | 缓存模式已过时,或下游无法接受更改。 | 在新记录到达时替换缓存的方案/元数据,并执行受监管的方案迁移策略。 |
| 大记录被截断或分割 | maxLobSize、maxDDLTextSize、maxRecordSize、代理限制或客户机限制。 |
增加验证的限制,在受支持时选择块处理,并提高代理/客户端消息限制。 |
| 数字精度更改 | JSON 编号解析为二进制浮点。 | 使用可识别十进制的语法分析或 treatAllColumnsAsStrings。 |
| 消费者内存增长 | 减慢下游处理、无限制队列、超大批处理或重新连接循环。 | 绑定队列,从处理中分离接收,调整批处理大小,以及缩放或调节下游工作。 |
| CloudEvents 使用者找不到字段 | GoldenGate 记录位于 data 下,或者运行时信封值与复制的示例不同。 |
取消包装 data 并使用运行时 YAML 和实际事件属性。 |
要收集的支持信息
-
Oracle GoldenGate 发行版和部署类型。
-
清理数据流配置并生成 AsyncAPI YAML。
-
流名称、源线索和路径、服务质量、筛选器和 JSON 设置。
-
精确的 UTC 时间戳、HTTP 状态或 WebSocket 关闭代码以及 GoldenGate 消息代码。
-
最后一个已知良好的检查点,以及它是否经过百分比编码;在需要时保护或散列它。
-
相关的分发服务、提取、代理和使用者日志。
-
一个经过清理的方案/元数据记录和一个失败的有效负载。
-
线索保留状态以及请求的位置仍然可用的证据。