# 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/