当前位置: 首页 > news >正文

KFS同步服务离线提示ORA-00972: 标识符过长

问题描述
巡检过程中发现KES V8R6 到Oracle11g 目标端同步服务离线 state=OFFLINE:ERROR,
[kfs@xzsbk ~]$ fsrepctl services
Processing services command…
NAME VALUE


appliedLastSeqno: -1
appliedLatency : -1.0
role : slave
serviceName : target_oracle_3112
serviceType : unknown
started : true
state : OFFLINE:ERROR
Finished services command…
分析过程
查看详细状态
重点看: pendingErrorSeqno : 385598
pendingError
pendingExceptionMessage
state: OFFLINE:ERROR
[kfs@xzsbk ~]$ fsrepctl -service target_oracle_3112 status
Processing status command…
NAME VALUE


appliedLastEventId : NONE
appliedLastSeqno : -1
appliedLatency : -1.0
autoRecoveryEnabled : true
autoRecoveryTotal : 100
channels : -1
clusterName : target_oracle_3112
currentEventId : NONE
currentTimeMillis : 1753422083939
dataServerHost : xzsbk
extensions :
host : xzsbk
latestEpochNumber : -1
masterConnectUri : kufl://kfs:4112/
masterListenUri : kufl://xzsbk:3112/
maximumStoredSeqNo : -1
minimumStoredSeqNo : -1
offlineRequests : NONE
pendingError : Event application failed: seqno=385598 fragno=0 message=com.kingbase.flysync.replicator.applier.ApplierException: java.sql.BatchUpdateException: 批处理中出现错误: ORA-00972: 标识符过长
pendingErrorCode : NONE
pendingErrorEventId : kb:1804442737704:1804547877560
pendingErrorSeqno : 385598
pendingExceptionMessage: com.kingbase.flysync.replicator.applier.ApplierException: java.sql.BatchUpdateException: 批处理中出现错误: ORA-00972: 标识符过长
pipelineSource : UNKNOWN
relativeLatency : -1.0
resourcePrecedence : 99
rmiPort : 11000
role : slave
seqnoType : java.lang.Long
serviceName : target_oracle_3112
serviceType : unknown
simpleServiceName : target_oracle_3112
siteName : default
sourceId : xzsbk
state : OFFLINE:ERROR
timeInStateSeconds : 65376.814
timezone : GMT+08:00
transitioningTo :
uptimeSeconds : 5626972.117
useSSLConnection : false
version : Kingbase FlySync V002R002C004PS002
Finished status command…
查看日志
重点看 Event application failed: seqno=385598 fragno=0 message= 部分信息,定位到报错的序号
2025-07-24 19:31:47 | | [target_oracle_3112 - pool-2-thread-1-q-to-dbms-0] ERROR pipeline.SingleThreadStageTask Event application failed: seqno=385598 fragno=0 message=com.kingbase.flysync.replicator.applier.ApplierException: java.sql.BatchUpdateException: 批处理中出现错误: ORA-00972: 标识符过长

com.kingbase.flysync.replicator.applier.ApplierException: com.kingbase.flysync.replicator.applier.ApplierException: java.sql.BatchUpdateException: 批处理中出现错误: ORA-00972: 标识符过长

at com.kingbase.flysync.replicator.applier.JdbcApplier.apply(JdbcApplier.java:2847)
at com.kingbase.flysync.replicator.applier.ApplierWrapper.apply(ApplierWrapper.java:99)
at com.kingbase.flysync.replicator.pipeline.SingleThreadStageTask.apply(SingleThreadStageTask.java:963)
at com.kingbase.flysync.replicator.pipeline.SingleThreadStageTask.runTask(SingleThreadStageTask.java:646)
at com.kingbase.flysync.replicator.pipeline.SingleThreadStageTask.run(SingleThreadStageTask.java:206)
at java.lang.Thread.run(Thread.java:750)

Caused by: com.kingbase.flysync.replicator.applier.ApplierException: java.sql.BatchUpdateException: 批处理中出现错误: ORA-00972: 标识符过长

at com.kingbase.flysync.replicator.applier.JdbcApplier.applyStatementData(JdbcApplier.java:982)
at com.kingbase.flysync.replicator.applier.OracleApplier.applyStatementData(OracleApplier.java:1319)
at com.kingbase.flysync.replicator.applier.JdbcApplier.apply(JdbcApplier.java:2604)
... 5 more

Caused by: java.sql.BatchUpdateException: 批处理中出现错误: ORA-00972: 标识符过长

at oracle.jdbc.driver.OracleStatement.executeLargeBatch(OracleStatement.java:4659)
at oracle.jdbc.driver.OracleStatement.executeBatch(OracleStatement.java:4527)
at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:237)
at com.kingbase.flysync.replicator.applier.JdbcApplier.applyStatementData(JdbcApplier.java:908)
... 7 more

查看序号为385598对应的SQL文件

[kfs@xzsbk ~]$ kufl list -seqno 385598
SEQ# = 385598 / FRAG# = 0 (last frag)

  • TIME = 2025-07-24 18:48:01.413
  • EPOCH# = 324138
  • EVENTID = kb:1804442737704:1804547877560
  • SOURCEID = kesbzk
  • METADATA = [tz_aware=true;dbms_type=kingbase;client_id;all_tables=#UNKNOWN;bidi_unsafe=true;service=source_kesv8r6_3112;shard=#UNKNOWN]
  • TYPE = com.kingbase.flysync.replicator.event.ReplDBMSEvent
  • OPTIONS = []
  • OPTIONS = [TG_TAG = CREATE INDEX, TABLE = NULL]
  • SQL(0) =
  • SCHEMA = SJTBK
  • DDL = CREATE UNIQUE INDEX idx_unique_e_lic_ncertificate_xs1_licid
    ON e_lic_ncertificate_xs1(licid);
    数据库中查索引名称长度:
    bzk=# select length(‘idx_unique_e_lic_ncertificate_xs1_licid’);
    length

 39

(1 row)
解决办法
由于e_lic_ncertificate_xs1 表不在该链路同步列表中,所以准备跳过该SQL对应的序号进行同步
–停止同步服务
fsrepctl -service target_oracle_3112 offline

–状态ONLINE前跳过指定的seqno
fsrepctl -service target_oracle_3112 online -skip-seqno 385598
必须先将同步服务offline不然启动同步服务报以下错误:
[kfs@xzsbk ~]$ fsrepctl -service target_oracle_3112 online -skip-seqno 385598

Operation failed: Online operation failed (Operation irrelevant in current state)
在这里插入图片描述

http://www.dtcms.com/a/298593.html

相关文章:

  • Chrome插件学习笔记(三)
  • 【7 周速成通关】单片机从理论到实操速学路径(附知识图谱)
  • kettle 8.2 ETL项目【三、加载数据】
  • MEMS 定向短节在振动环境下精度有保障吗?
  • 中国航天集团实习第一周总结
  • 利用Trae将原型图转换为可执行的html文件,感受AI编程的魅力
  • 企业微信H5应用OAuth2登录,企业微信授权登录
  • RocketMQ 做成服务启动
  • FastGPT:重新定义企业专属知识库的灵活部署
  • Linux进程信号——信号产生
  • 【LeetCode 热题 100】22. 括号生成——(解法一)选左括号还是选有括号
  • Linux嵌入式工程师学习路线
  • Linux系统基本配置以及认识文件作用
  • 执行测试时测试数据准备困难如何处理?
  • 汪小菲食通达公司成立新零售公司,布局餐饮零售新赛道
  • 【算法】动态规划 · 上篇
  • Python day24
  • CRM 系统:实现商机全流程管理的关键
  • Qt XML 与 JSON 数据处理方法
  • 文搜图/图搜图
  • OSPF 协议(多区域)
  • Inception网络架构:深度学习视觉模型的里程碑
  • 去甲基化药物联合DLI治疗AML1-ETO阳性
  • 图书推荐-由浅入深的大模型构建《从零构建大模型》
  • 【C++避坑指南】vector迭代器失效的八大场景与解决方案
  • 管理系统模板
  • 应用程序无法正常启动(0xc000007b)怎么办 解决方法详解
  • Matlab学习笔记:结构基础
  • 数仓规范体系的构建
  • SVM多分类实战:从理论到应用的完整指南