您需要指定一个文档管理器,它还没有做任何事情。似乎连接正在工作,因此您应该查看以下附加选项以设置特别注意,-d
或者--docManager
因为输出显示当前配置中缺少这些选项。这可能有效(为了方便起见,我删除了反斜杠并简单地在多行上显示)
python mongo_connector.py
--oplog-ts /var/log/oplog.log
-m 127.0.0.1:27017
-d /doc_managers/solr_doc_manager.py
-t http://localhost:8080/solr4
Mongo 连接器选项
要启动系统,只需运行“python mongo_connector.py”。但是,您可能需要指定一些命令行选项才能使用您的设置。它们描述如下:
-m
或者--mongos
是指定主地址,这是一个主机:端口对。对于分片集群,这应该是 mongos 地址。对于单个副本集,请提供主副本的地址。例如,-m localhost:27217
将是 -m 的有效参数。不要在地址周围使用引号。
-t
或者--target-url
是指定正在使用的目标系统的 URL。例如,如果您使用的是开箱即用-t http://localhost:8080/solr
的 Solr,您可以使用 SolrDocManager 来建立正确的连接。不要在地址周围使用引号。如果目标系统不需要 URL,则不要指定。
-o
或者--oplog-ts
是指定存储oplog进度时间戳的文件名。系统使用此文件来存储在特定 oplog 上读取的最后一个时间戳。这允许从故障中快速恢复。默认情况下,这是 config.txt,一开始是空的。空文件会导致系统遍历所有 mongo oplog 并同步所有文档。每当集群重新启动时,必须清空 oplog-timestamp 配置文件 - 否则连接器将丢失一些文档并出现错误行为。
-n
or--namespace-set
用于指定我们要考虑的命名空间。例如,如果我们希望存储来自 test.test 和 alpha.foo 命名空间的所有文档,我们可以使用 -n test.test,alpha.foo。默认情况下考虑所有命名空间,不包括系统和配置数据库,并且忽略任何数据库中的“system.indexes”集合。
-u
or--unique-key
用于指定将作为目标系统唯一键的 mongoDB 字段。默认为“_id”,可通过“-u _id”记下
-f
是指定一个包含验证密码的文件。mongos 使用此文件来验证与分片的连接,我们将在 oplog 线程中使用它。此选项的主要用途是指定密码,而不是在命令行上以明文形式输入。
-p
是指定用于认证的密码。如果此选项与 -f 一起指定,则无论密码文件的内容如何,都将使用此处指定的密码。对于分片集群,管理员用户名/密码必须存在于每个分片的管理员数据库中,否则系统将无法验证。这是因为连接器如何针对分片进行身份验证,这在下面的系统内部部分中进行了深入描述。
-a
或--admin-username
用于指定要进行身份验证的管理员用户的用户名。要对系统使用身份验证,用户必须同时指定此选项和密码或密码文件选项,该选项存储用户的密码。默认用户名是'__system',不推荐用于生产。如果在分片环境中使用此选项和其中一个密码选项,则用户名/密码必须存在于集群中每个分片的管理数据库中。否则,身份验证将失败。
-d
或--docManager
用于指定将要使用的文档管理器文件。您应该发送要使用的文件的路径。默认情况下,它将使用 doc_manager_simulator.py 文件。建议将所有 doc manager 文件保存在 mongo-connector 的 doc_managers 文件夹中。有关制作您自己的文档管理器的更多信息,请参阅文档管理器部分。
附加信息
由于连接器进行实时同步,因此有必要让 MongoDB 运行副本集设置。我将假设是这种情况,您只需要一个文档管理器,就像它说的那样。
有关更多信息,请参阅此网址