创建副本集
复制简介
之前我们使用的一直是单台服务器,一个 mongod 服务器进程。
如果只是用作学习和开发,这是可以的,但是如果用到生产环境中,风险会很高: 如果服务器崩溃了或者不可访问了怎么办?
数据库至少会有一段时间不可用。
如果是硬件出了问题,可能需要将数据转移到另一个机器上。
在最坏的情况下,磁盘或者网络问题可能会导致数据损坏或者数据不可访问。
使用复制可以将数据副本保存到多台服务器上,建议在所有的生产环境中都要使用。
使用 MongoDB 的复制功能,即使一台或多台服务器出错,也可以保证应用程序正常运行和数据安全。
在 MongoDB 中,创建一个副本集之后就可以使用复制功能了。
副本集是一组服务器,其中有一个主服务器(primary),用于处理客户端请求;还有多个备份服务器(secondary),用于保存主服务器的数据副本。
如果主服务器崩溃了,备份服务器会自动将其中一个成员升级为新的主服务器。
使用复制功能时,如果有一台服务器宕机了,仍然可以从副本集的其他服务器上访问数据。
如果服务器上的数据损坏或者不可访问,可以从副本集的某个成员中创建一份新的数据副本。
建立副本集
使用 --nodb
选项启动一个 mongo shell,这样可以启动 shell 但是不连接到任何 mongod,这里不使用这个:
1 2 3 |
|
通过执行下面的命令就可以创建一个副本集
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
这行代码可以创建一个包含三个服务器的副本集: 一个主服务器和两个备份服务器。
但是,在执行下面两个命令之前 mongod 服务器不会真正启动
1 |
|