Mongo-Connector 安装及使用文档

时间:2023-03-09 15:36:17
Mongo-Connector 安装及使用文档

# Mongo-Connector 安装及使用文档

------

> * 工具介绍
> * 安装前准备
> * 安装步骤
> * 命令详解
> * 有可能的坑
> * 其他文档

------

###工具介绍
mongo-connector工具创建一个从MongoDB簇到一个或多个目标系统的管道,目标系统包括:Solr,Elasticsearch,或MongoDB簇。
该工具在MongoDB与目标系统间同步数据,并跟踪MongoDB的oplog,保持操作与MongoDB的实时同步。

>项目源码:
https://github.com/mongodb-labs/mongo-connector

elastic2-doc-manager是Elastic2.x版本的文档管理器

------

###安装前准备
1.MongoDB 必须开启副本集
2.确保副本集运行正常

------

###安装步骤
1.pip install mongo-connector
2.pip install elastic2-doc-manager

------

###命令详解

运行如下命令开启同步操作:
>mongo-connector -m 127.0.0.1:27017 -t 127.0.0.1:9200 -d elastic2_doc_manager -n text.XXX

命令详解:
>-m mongodb的地址与端口,端口默认为27017
>-t ES的地址与端口,端口默认为9200
>-d doc manager的名称,2.x版本为: elastic2-doc-manager
>-n text.XXX 表示同步text库中的XXX表 默认表示同步全部库的全部表
>-i filed_name 待同步的字段。默认同步所有字段。

------

###有可能的坑

1. 数据库A中有多个集合(A1, A2, A3),且已开启了副本集(Replica Set),但是集合A1可以同步,集合A2不能同步.
原因:oplog中有A1的操作记录,没有A2的操作记录。
结论:开启副本集(Replica Set)并不能保证一定能同步,oplog中必须包含待同步集合的操作记录,才能通过mongo-connector同步到Elasticsearch集群。

2. mongodb3.x版本加强了安全机制,导致了在只拥有某个库的权限时不能同步数据的问题。
原因:拥有某个库的权限,并不能拥有oplog的读取权限,而mongo-connector需要读取oplog的权限。
结论:同步数据至少需要能够读取oplog的权限,确保当前mongodb用户的权限能够操作oplog,或者直接使用mongodb的管理员权限。

------

###其他文档

1.Mongo与ES同步的5种方式:
>https://www.linkedin.com/pulse/5-way-sync-data-from-mongodb-es-kai-hao

2.mongodb 详细文档:
>https://docs.mongodb.com/manual/tutorial/deploy-replica-set/