MongoDB 副本集的单服务器实现

生产环境中的单服务器副本集意义不大,所以本文仅供学习使用。

多台服务器可以使用主机名区分不同的副本集成员,但单服务器只能使用端口号进行区分,本文将实现一包含三个 mongod 服务器的副本集 。

说明:文中,我将使用 Cmder 命令行辅助工具,它集成了git bash 与大部分 linux 命令,并支持 Tab 补全,可以打开多个标签页面,会极大的方便我们的操作。

因涉及的参数较多,所以我建议使用配置文件的方式启动 mongod,并且每个 mongod 实例都需要不同的端口,数据库,与日志文件。假设我们的副本集名称是“rs0”,目录结构与其中的一个配置如下:

tree-pane

具体的配置,请前往我的 GitHub 下载( MongoDB-rs-sh-conf )。

目录与配置文件设置好后,就可以启动 mongod 实例了,使用如下命令启动第一个 mongod 实例。

然后切换配置文件,启动剩下的两个 mongod 实例。启动后无任何提示,这是因为log以文件形式保存,不输出在文字界面。

现在有 3 个分别运行于不同端口上的 mongod 实例了,但是每个 mongod 实例都不知道其它 mongod 存在,为了让每个 mongod 能够知道彼此的存在,需要创建一个配置文件,在配置文件中列出第一个成员,并将配置发送给其中一个 mongod 实例(本文中选择端口 30000 的实例),然后这个 mongod 实例会将配置文件广播给其它成员。

操作截图:
operate

基本配置完成后,就可以进行副本集的各种操作了,本文就不一一赘述。

发表评论

电子邮件地址不会被公开。 必填项已用*标注