canal和ES同步失败维护步骤

ES同步失败维护步骤:

  1. 登录到ES服务器:xx.xx.xx.xx。

  2. 停止 Canal 和 Canal-Adapter 服务:

    复制代码
    cd /root/canal/bin
    ./stop.sh
    
    cd /root/canal-adapter/bin
    ./stop.sh
  3. 确定一下是哪个表修改了主键的值,例如 tbl_sparking,使用 Logstash 手动同步数据:

    shell 复制代码
    cd /root/canal-adapter/elk
    sudo /usr/share/logstash/bin/logstash -f 2-tbl_video_device_info.conf
    #如果遇上内存不足的可以执行
    export LS_JAVA_OPTS="-Xms5g -Xmx5g"
    #如果想要重新同步,不建议
    #查看所有索引
    GET /_cat/indices?v
    #单独删除es索引数据
    DELETE /tbl_video_device_info
  4. 同步完成后,启动 Canal 服务,查看日志以确保启动成功:

    复制代码
    cd /root/canal/bin
    ./startup.sh
    tail -f /root/canal/logs/example/example.log

    如果出现错误,需要先停止 Canal,然后删除 /root/canal/conf/example 下的 meta.dat 文件,再启动 Canal。

  5. Canal 服务正常后,再启动 Canal-Adapter 服务,并查看日志:

    复制代码
    cd /root/canal-adapter/bin
    ./startup.sh
    tail -f /root/canal-adapter/logs/adapter/adapter.log
  6. 此时数据仍不完整,需要使用 Logstash 手动同步全部数据:

    复制代码
    cd /root/canal-adapter/elk
    sudo /usr/share/logstash/bin/logstash -f 1-tbl_ps_device_info.conf 
    sudo /usr/share/logstash/bin/logstash -f 2-tbl_video_device_info.conf 
    sudo /usr/share/logstash/bin/logstash -f 3-tbl_ps_order_in.conf 
    sudo /usr/share/logstash/bin/logstash -f 4-tbl_ps_order_out.conf
    sudo /usr/share/logstash/bin/logstash -f 5-tbl_user_info.conf 
    sudo /usr/share/logstash/bin/logstash -f 6-tbl_order_in_pay_log.conf 
    sudo /usr/share/logstash/bin/logstash -f 7-tbl_order_out_pay_log.conf
    sudo /usr/share/logstash/bin/logstash -f 8-tbl_sparking.conf 
    sudo /usr/share/logstash/bin/logstash -f 9-tbl_account_payment_log.conf 
    sudo /usr/share/logstash/bin/logstash -f 10-tbl_parking_manager.conf 
    sudo /usr/share/logstash/bin/logstash -f 11-tbl_bat_txn.conf
    sudo /usr/share/logstash/bin/logstash -f 12-tbl_bat_pay_txn.conf 
    sudo /usr/share/logstash/bin/logstash -f 13-tbl_bse_info_mchnt.conf
    sudo /usr/share/logstash/bin/logstash -f 14-tbl_online_carinfo.conf
    sudo /usr/share/logstash/bin/logstash -f 15-tbl_trans_order.conf

确保 Canal 和 Canal-Adapter 服务正常运行,并手动同步数据以确保数据完整性。

最后启动监控:

复制代码
   cd /root/canal-adapter/logs/adapter/
   nohup ./monitor.sh &

分页增加:

复制代码
FROM tbl_ps_order_out AS a"
    lowercase_column_names => false
    jdbc_paging_enabled => true
    jdbc_page_size => 10000  # 增加分页大小,以减少总页数
    last_run_metadata_path => "/root/logstash_last_run_metadata"
    clean_run => false
  }

如果更改了ID

也可以通过直接logstash全量同步,这样新的数据就会增加上去,但是原来的还在,需要通过es直接删除之前id的数据,前提是需要知道原来的id是多少。如果不删除,那么就造成了脏数据。

yaml 复制代码
GET tbl_ps_order_out/_search
{
  "query": {
    "match_all": {}
  }
}


DELETE /tbl_trans_order

DELETE /tbl_ps_order_out/_doc/555555555555555555555555555555

但是始终需要停canal-adapter 停canal,起canal,起canal-adapter

相关推荐
十年Java程序媛3 分钟前
JVM 基础与 GC 垃圾回收详解|可达性分析、分代模型、垃圾收集器、STW
java·开发语言·jvm·spring boot·后端·面试
Crayon Lin10 分钟前
Milvus向量数据库入门
数据库·milvus
cspttty10 分钟前
2027校招准备:数学与应用数学专业如何补齐管理咨询的业务、分析与表达能力
大数据·数据库
曹牧14 分钟前
C#:字符串占位符与值数量不一致
开发语言·数据库·c#
2301_322414280416 分钟前
基于SSM框架的在线考试管理系统的设计与实现14750-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·redis·mysql·tomcat·maven·mybatis·ssm
小马不起床20 分钟前
Django 后端实战指南_14:门店、省份、用户门店关系查询接口
数据库·django·sqlite
clz131452122 分钟前
RuoYi-Cloud 新建微服务并实现服务间调用(OpenFeign 实战)
java·ruoyi
我星期八休息23 分钟前
Redis 的原理和使用(2)
前端·数据库·redis·python·mysql·缓存·bootstrap
const_qiu25 分钟前
第四章 06:4.6 统一入口 —— analyze() 能力收束
java·人工智能
betazhou27 分钟前
Apache Seatunnel 抽取SQL server实时同步到Oracle(四)
数据库·oracle·apache·sql server·seatunnel