KingbaseFlySync delete语句WHERE条件缺失的解析出错问题处理思路

关键字:

KingbaseFlySync、Linux、x86_64、mips64el、aarch64、Java

kes到Oracle同城灾备场景

源:kesv8r6c5b0023一主一备
目标端:Oracle rac 11g (4个实例)

注意本操作比较危险,需要核实源生产库归档是否存在,如果可以的话,考虑采用别的方式,比如跳过报错事务,通过数据比对方式修复等等

1、目标端KFS后台日志报错ORA-00936:缺失表达式

从上图报错可知:delete from "USERTMP"."AFFIX_INFO" WHERE 解析存在问题。
根据报错的日志号,查找该日志号解析,发现where条件部分确实缺失。

2、 检查源端kfs配置文件

从以上KFS源端配置中,源端过滤器存在custompkey存在无主键过滤器和无主键配置文件custompkey.json。

3、 检查表是否有配置无主键解析

\d AFFIX_INFO检查是否有配置identity full。
如果没有的话,无法解析delete和update业务。
登录源生产库执行以下命令:
alter table AFFIX_INFO REPLICA IDENTITY FULL;

4、 检查无主键配置文件custompkey.json

在custompkey.json存在"affix_info":"",配置,这意味着把affix_info所有列过滤了,解决办法一:在custompkey.json删除"affix_info":"";解决办法二:把那个表affix_info的配置改对,比如"affix_info":"id",表示将id列作为表的主键。
此步我们采用解决办法一。

5、 在源端生产库确认最旧归档日志时间

从归档日志的日期看,最旧的归档是在13号,目前delete解析的业务是15号,如下图红框。

6、 在KFS源端清除解析错误日志号

fsrepctl -service kesoracle offline
kufl -service kesoracle purge -low 29623
选择y

7、 在KFS目标端清除解析错误日志号

kufl -service kesoracle purge -low 29623
选择y

8、 验证KFS源端kufl解析正常

replicator restart
fsrepctl service 看看解析日志号是否有往前走,确定解析正常后,执行如下命令验证kufl解析正常:
kufl -service kesoracle list -seqno 29623

最新文章

  1. Linux内存管理之bootmem分配器
  2. linux部署不同版本mysql
  3. 红黑树(四)之 C++的实现
  4. C#部分---利用arraylist集合做滚动抽奖;
  5. 关于Qt5 UI设计的一些小知识
  6. 一致性哈希算法原理及Java实现
  7. JavaEE(1) - Weblogic 服务器管理的数据源
  8. Trade-----HDU3401----单调队列优化的DP
  9. javascript高级程序设计 重读系列
  10. Tomcat access log配置
  11. 【shell脚本实例】一个恶作剧—— kill掉占用CPU较高的matlab进程
  12. 快速上手virtualenv
  13. Docker简介/安装/使用
  14. Android中处理大图片时图片压缩
  15. fastdfsDemo
  16. ES--06
  17. Jmeter连接数据库方式
  18. 安装kubelet报错 : Depends: init-system-helpers (>= 1.18~) but 1.14ubuntu1 is to be installed
  19. 使用HDTune规避硬盘上损坏的扇区
  20. Webhook 实践 —— 自动部署

热门文章

  1. sql-DCL用户及权限管理及其他常用命令-mysql
  2. 使用navicat连接远程linux mysql数据库出现10061
  3. 聊聊 Netty 那些事儿之 Reactor 在 Netty 中的实现(创建篇)
  4. IDEA快捷键-03
  5. Solution -「基环树」做题记录
  6. Kubernetes v1.24 基于containerd部署
  7. 吐泡泡_via牛客网
  8. range函数的使用
  9. Nginx 认证模块
  10. Geometrics类定义