---
title: 如何处理 Store 组件遇到乱码记录检查点停滞不前的问题-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于如何处理 Store 组件遇到乱码记录检查点停滞不前的问题相关的常见问题和使用技巧，帮助您快速解决如何处理 Store 组件遇到乱码记录检查点停滞不前的问题的难题。
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# 如何处理 Store 组件遇到乱码记录检查点停滞不前的问题

更新时间：2026-06-23 06:11

适用版本： V4.2.x、V4.1.x、V4.0.x、V3.4.x、V3.3.x、V3.2.x、V3.1.x、V2.2.x、V2.1.x、V2.0.x、V1.4.x、V1.3.x 内容类型：Troubleshoot  

本文为您介绍 Store 组件遇到乱码记录检查点停滞不前的原因和解决方法。

## 适用版本

适用于 OceanBase 迁移服务（OceanBase Migration Service，OMS）全部版本。

## 问题描述

OMS 源端为 Oracle 数据库，目标端为 OceanBase 数据库。在控制台的数据迁移项目详情页面显示增量同步延迟不断增大，通过查看组件监控信息，发现问题在于 Store 组件的延迟较大，并且检查点一直保持不动。 ​ 经检查发现 `connector.log` 日志量巨大，有大量重复的报错：`ORA-17154: cannot map Oracle character to Unicode`。

日志示例如下：

```sql
[2023-06-21 13:44:10.531] [ERROR] [Record Selector-108] [error code:17154, use flashback query this time:false](OracleBackRecordQueue.java:960)
[2023-06-21 13:44:10.531] [ERROR] [Record Selector-108] [back query update times:0record:{rowid: AABJH5AxxxxAAI , xid: 1.0x00672e.xxx.01b0 , table: NGCRM_JM.PC_PROD_SALE_CUxxx, type: UPDATE , timestamp: 1687270448 , oldPkOrUk: CUSTGRPID=U15447xxxx89 and SERVNUMBER=閳ワ拷367xxx1124 , newPkOrUk: CUSTGRPID=U15447xxxx89 and SERVNUMBER=閳ワ拷3672851124 }
SQLException:](OracleBackRecordQueue.java:816)
java.sql.SQLException: ORA-17154: cannot map Oracle character to Unicode
        at oracle.i18n.text.converter.CharacterConverter12Byte.toUnicode(CharacterConverter12Byte.java:183)
        at oracle.i18n.text.converter.CharacterConverterGBK.toUnicodeString(CharacterConverterGBK.java:92)
        at oracle.sql.converter.I18CharacterConvertersWrapper.toUnicodeString(I18CharacterConvertersWrapper.java:85)
        at oracle.sql.CharacterSetWithConverter.toString(CharacterSetWithConverter.java:188)
        at oracle.sql.CharacterSetUTF.convert(CharacterSetUTF.java:259)
        at oracle.jdbc.driver.OraclePreparedStatement.setCHARInternal(OraclePreparedStatement.java:5972)
        at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:7650)
        at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:7619)
        at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:8374)
        at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:8349)
        at oracle.jdbc.driver.OraclePreparedStatementWrapper.setObject(OraclePreparedStatementWrapper.java:221)
        at com.alibaba.druid.pool.DruidPooledPreparedStatement.setObject(DruidPooledPreparedStatement.java:477)
        at com.taobao.drc.logminer.type.OracleTypeParser$Varchar2Parser.setString(OracleTypeParser.java:1554)
        at com.taobao.drc.logminer.type.OracleTypeParser.setString(OracleTypeParser.java:217)
        at com.taobao.drc.logminer.queue.OracleBackRecordQueue$RecordSelector.selectUpdateRecord(OracleBackRecordQueue.java:765)
        at com.taobao.drc.logminer.queue.OracleBackRecordQueue$RecordSelector.doSelectRecord(OracleBackRecordQueue.java:488)
        at com.taobao.drc.logminer.queue.OracleBackRecordQueue$RecordSelector.selectRecord(OracleBackRecordQueue.java:442)
        at com.taobao.drc.logminer.queue.OracleBackRecordQueue$RecordSelector.run(OracleBackRecordQueue.java:410)

```

## 问题原因

OMS 在数据同步时遇到乱码记录，触发了 `ORA-17154`，无法自行恢复。

## 解决方法

1. 修改 Store 组件的参数，添加 `"deliver2store.logminer.ignore_error_code":string"17154"` 配置来忽略报错。参数 `ignore_error_code` 的含义为：查询 `record` 时，指定忽略哪些 Oracle 错误码，多个错误码之间使用 "|" 分隔。

   #### 说明

   通过该方式会忽略此种类型的变更，您需要手动在目标端订正数据。

      1. 进入 **查看组件监控** 对话框。

             1. 登录 OMS 控制台。
             2. 在左侧导航栏，单击 **数据迁移**。
             3. 在 **迁移项目列表** 页面，单击目标项目的名称进入详情页面。
             4. 在项目详情页面，单击右上角的 **查看组件监控**。
      2. 在 **查看组件监控** 对话框，单击 Store 组件后的 **更新**。
      3. 在 **更新配置** 对话框，鼠标悬停至 `root` 参数旁边的空白处，单击添加图标。
      4. 输入需要添加的 Key Name 为 `deliver2store.logminer.ignore_error_code`，单击对号。
      5. 在 `更新配置` 对话框，找到新增的 Key Name，其默认值为 NULL。
      6. 鼠标悬停至新增参数，单击显示的编辑图标，修改参数值为 `17154`。修改参数值后，单击确认图标。
      7. 在 **更新配置** 对话框，单击 **确定**。
 2. 对于被忽略的记录，您可以在 `connector.log` 日志中查找。

   ```sql
   [2023-06-21 13:56:56.065] [WARN] [Record Selector-65] [skip record by config ignore_error_code. record:{rowid: AABJH5ABxxxxxAAI , xid: 1.0x00672e.000xxxx.01b0 , table: NGCRM_XX.PC_PROD_SALE_CUxxxxxNO , type: UPDATE , timestamp: 1687270448 , oldPkOrUk: CUSTGRPID=U15447xxxxx89 and SERVNUMBER=閳ワ拷3672xxxx4 , newPkOrUk: CUSTGRPID=U1544xxxxxx689 and SERVNUMBER=閳ワ拷36728xxxxx4 }](OracleBackRecordQueue.java:450)
   [2023-06-21 14:18:00.024] [WARN] [Record Selector-17] [skip record by config ignore_error_code. record:{rowid: AABJH5AxxxxkkpABi , xid: 1.0x006752.00xxxxxb.01c0 , table: NGCRM_XX.PC_PROD_SALE_CUxxxxO , type: UPDATE , timestamp: 1687272302 , oldPkOrUk: CUSTGRPID=201702xxxx25 and SERVNUMBER=閳ワ拷367xxxx124 , newPkOrUk: CUSTGRPID=201702xxxx025 and SERVNUMBER=閳ワ拷3672xxxx1124 }](OracleBackRecordQueue.java:450)
   [2023-06-21 14:31:37.843] [WARN] [Record Selector-59] [skip record by config ignore_error_code. record:{rowid: AABJH5xxxxxsAAI , xid: 1.0x006769.0xxxxfc.0174 , table: NGCRM_XX.PC_PROD_SALE_CUxxxxO , type: UPDATE , timestamp: 1687273350 , oldPkOrUk: CUSTGRPID=U1544758xxxxx9 and SERVNUMBER=閳ワ拷322xxxxx17 , newPkOrUk: CUSTGRPID=U15xxxx5x8413689 and SERVNUMBER=閳ワ拷3226xx11717 }](OracleBackRecordQueue.java:450)
   [2023-06-21 14:36:42.430] [WARN] [Record Selector-72] [skip record by config ignore_error_code. record:{rowid: AABJH5Axxxx845ABi , xid: 1.0x006770.0xxxxac1f.00d8 , table: NGCRM_XX.PC_PROD_SALE_CUSxxxxNO , type: UPDATE , timestamp: 1687273728 , oldPkOrUk: CUSTGRPID=2022xxxxx94 and SERVNUMBER=660xxx3(閸忥拷), newPkOrUk: CUSTGRPID=2022xxxx709x394 and SERVNUMBER=6607293(閸忥拷) }](OracleBackRecordQueue.java:450)

   ```
 3. 根据 `connector.log` 日志中的 `rowid` 进入 Oracle 数据库订正数据，或者通过离线迁移的方法同步问题记录至 OceanBase 数据库。

   #### 说明

   乱码可能引发的 `ORA-` 报错很多，本文仅为一个示例，其它报错也适用。

Previous

[Oracle 数据库 OMS 增量同步的 Store 组件性能优化](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000266015)

Next

[OMS 不支持以 ROWID 作为行过滤条件](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000298699) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
