1.主从复制
运行mongod --master启动主服务器
运行mongod --slave --source master_address 启动从服务器 其中master_address就是上面主节点的地址
所有从节点都从主节点复制内容,从节点是不能插入数据的。建议一个集群中不超过12个从节点。
主从复制的选项:
--only 在从节点上指定只复制特定某个数据库(默认复制所有数据库)
--slavedelay 用在从节点上,当应用主机节点的操作时增加延时(单位是秒)。
--fastsync 以主节点的数据快照为基础启动从节点。如果数据目录一开始是主节点的数据快照,从节点用这个选项启动要比做完整同步快很多。
--autoresync 如果从节点与主节点不同步了,则自动重新同步。
--oplogSize 主节点的oplog的大小。
启动从节点时可以用--source指定主节点,也可以使用shell配置这个源。
use local
db.sources.insert({"host":""localhost:27017})
2.副本集
简单地说,副本集就是有自动故障恢复功能的主从集群。主从集群和副本集最为明显的区别是副本集没有固定的“主节点”:整个集群会选举出一个“主节点”,当其不能工作时则变更到其他机节点,然而,二者看上去非常相似,副本集总会有一个活跃点和一个或多个备份节点。副本集最美妙的地方就是所有东西都是自动化的,首先,它为你做了很多管理工作,自动提升备份节点为活跃节点,以确保运转正常。
副本集配置
mongod --dbpah 数据文件夹 --port 端口 --replSet blort/morton:10002
mongod --dbpath 数据文件夹 --port 端口 --replSet blort/motton:10001
mongod --dbpath 数据文件夹 --port 端口 --repSet blort/morton:10001,motton:10002
其中--replSet作用是让服务器知晓在这个blort副本集中还有别的同伴.
在shell中初始化副本集
启动了服务器后还得初始化副本集
mongo morton:10001/admin
db.runCommand({"replSetInitiate":{
"_id":"blort",//指定副本集名称
"members":[//副本集服务器列表,之后还能添加,每个服务器文档至少有2个键
{
"_id":1,//每个服务器唯一的ID
"host":"morton:10001"//服务器主机
},
{
"_id":2,
"host":"morton:10002"
}
]
}})
有关故障切换和活跃节点选取将在后面博文中讲述。