当前位置: 首页 > 工具软件 > Mongo Search > 使用案例 >

mongo-connector实现MongoDB与elasticsearch实时同步

孙经艺
2023-12-01

安装elasticsearch

注意:mongo-connector只支持到es5.X,可选择5.6.7版本
参考博文:http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html

tips:

  • 安装包下载慢:在华为镜像站中下载
  • 中文分词组件ik下载慢:安装github加速油猴脚本,选择香港节点
  • 设置绑定IP后启动失败:https://blog.csdn.net/chinoukin/article/details/94720970
  • 设置内存:https://blog.csdn.net/jiangshuanshuan/article/details/105764332

安装kibana

  1. 下载:https://mirrors.huaweicloud.com/kibana/,版本和es的一致
  2. 解压
  3. 修改config/kibana.yml中的server.host
  4. 运行bin/kibana,默认开运行在5601端口上

连接mongodb和elasticsearch

  • 如果mongodb待同步的记录数较多,为防止日志循环最早的时间戳超过同步的时间戳,则需调大oplog的size:https://www.cnblogs.com/lijiaman/p/13215564.html
  • mongo-connector项目地址:https://github.com/yougov/mongo-connector
  • 连接es详解:https://github.com/yougov/mongo-connector/wiki/Usage%20with%20ElasticSearch
  • 配置文件详解:https://github.com/yougov/mongo-connector/wiki/Configuration-Options
  • 配置文件示例:https://github.com/yougov/mongo-connector/blob/master/mongo_connector/service/config.json
  • 要指定分词器为ik,需预先定义好mapping:见http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html第4章

编辑好配置文件后运行mongo-connector -c config.json

  • 生成的oplog.timestamp用于记录上次同步到的时间
  • 出现timeout错误:配置文件中增加timeout,https://github.com/yougov/mongo-connector/wiki/Usage%20with%20ElasticSearch#customizing-behavior-of-the-elastic-client
  • mongodb同步过程中出现故障,rs0副本集无法启动:在原机器上新开一个mongodb实例,从原数据库传输数据到新数据库,并读取新数据库的oplog,因为同步的量很大,要注意调大oplog的size上限
  • 要删除mongo的一个集合时,如果不想es中的数据被删除,可以先对集合改名,再删除改名后的集合
 类似资料: