Mongodb集群的配置:
以下测试放于同一台机器进行配置,所以IP地址一样,如果是在不同的服务器上更换IP即可。
一、目录结构
拷贝两份mongodb到/home/scotte.ye/mongo1和/home/scotte.ye/mongo2
二、开启mongodb
1)、主机器:
开启了主服务器就开启。
几个关键参数的说明(可以查看下帮助,./mongod --help):
--master:标识当前开启的mongodb是作为主服务器的
-port:当前服务器的监听服务端口。默认27017
-dbpath:批当前程序运行的日志保存路径。默认/data/db。注这个路径mongodb不人自己创建,所以一定要自己手工来创建,否则程序不能正常启动。
-nohttpinterface:不开启网页接口,也就是不能通过网页的形式查看服务器运行状态。默认是会在28017端口开启一个网页服务提供用户查看服务器状态。因为当前都在同一个机器上,所以如果开启这个两个会产生冲突,所以不能开启。
2)、从机器:
开启一个从服务器,多个从也是按相同的方式来开启。
几个关键的参数说明:
--slave:指明当前开启的为从服务器。
--source:标明当前从服务器要连接的主服务器的端口和IP
其它参数同主,所以不再赘述。
三,集群特点
1、只有主服务器允许写入,其它从服务器只能读取。
2、从服务器启动的时候马上就会和主服务器进行数据同步,所以不要担心后起的从服务器不会和主服务器同步之前的数据,也不要我们自己手动操作。
四,集群的主从切换
1、主机宕机,slave顶替
停止slave的mongod进程
删除slave目录下的local.*文件
以--master的模式启动B
2、切换Master/Slave(原来的master是正常运行的)
在原来的slave,即现在的master上面执行一次写操作,生成oplog,获取第一个同步点,因为slave与master的数据同步是通过oplog来实现的。
说明:这一步很重要,一定要完成。
关闭现master服务,同时slave也会生成新的local.*文件
关闭原master,用现master上面的local.*文件替换原master上面的local.*.因为文件比较大,所以最好是压缩拷贝
再用--master选项重启新master服务
再用--slave的模式重启原master服务,注意还要加一个-fastsync选项。这个和用fsync来暂停master有关。
如果原来的master不是正常的,那么此时可以跳过第一步,拷贝新master的文件到原master机器,重启服务即可。
3、更新主服务器位置
假设原来从主机的启动方式如下:
此时,如果想更换主服务器的地址,可以通过如下方式:
重启mongod服务,不要加-slave 和 -source选项:
启动shell,执行如下操作:
然后,再重启服务器: