原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。
http://navyaijm.blog.51cto.com/4647068/1685347
1
2
3
|
10.10.17.26:27000 (primary)
10.10.17.27:27000 (secondary)
10.10.2.74:27000 (arbiter)
|
1
2
|
mongdb :2.6.11
系统:centos 6.6
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
vi
/etc/mongod_27000
.conf
logpath=
/data/mongodb/navy_db/log/mongod
.log
#mongodb日志文件
logappend=
true
#追加方式写日志文件
fork=
true
#后台运行
port=27000
#mongodb端口
dbpath=
/data/mongodb/navy_db/db
pidfilepath=
/data/mongodb/navy_db/log/mongod
.pid
bind_ip=0.0.0.0
rest =
true
#开启web访问
journal =
true
#启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里
oplogSize=2048
#同步操作记录文件大小(MB)
replSet=dbset
#副本集名称,同一个副本集,名称必须一致
auth=
true
#开启验证
keyFile=
/data/mongodb/navy_db/password
.key
#key认证
|
1
|
echo
"c57a012cf2f8a8e20dd4b21a7fae48b3"
>
/data/mongodb/navy_db/password
.key
|
1
|
chmod
600
/data/mongodb/navy_db/password
.key
|
1
|
ulimit
-s 4096 &&
ulimit
-m 16777216 & numactl --interleave=all
/usr/bin/mongod
-f
/etc/mongod_27000
.conf
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#use到admin
use admin
创建配置(dbset是集群名称,必须和配置文件中replSet的值一样)
config = { _id:
"dbset"
, members:[
... ... {_id:1,host:
"10.10.11.34:27000"
},
... ... {_id:2,host:
"10.10.16.6:27000"
}
]
... ... }
#初始化集群
rs.initiate(config);
#添加仲裁节点
rs.addArb(
"10.10.2.74:27000"
)
#查看集群状态
rs.status()
|
1
2
3
4
5
6
7
8
9
10
|
#删除一个节点
rs.remove(
"10.10.2.74:27000"
)
#查看集群配置信息
rs.conf()
#查看当前谁是primary
rs.isMaster()
#查看主从延时
rs.printSlaveReplicationInfo()
#查看rs相关命令
rs.help()
|
1
2
3
4
5
6
7
8
9
10
11
|
1. STARTUP:刚加入到复制集中,配置还未加载
2. STARTUP2:配置已加载完,初始化状态
3. RECOVERING:正在恢复,不适用读
4. ARBITER: 仲裁者
5. DOWN:节点不可到达
6. UNKNOWN:未获取其他节点状态而不知是什么状态,一般发生在只有两个成员的架构,脑裂
7. REMOVED:移除复制集
8. ROLLBACK:数据回滚,在回滚结束时,转移到RECOVERING或SECONDARY状态
9. FATAL:出错。查看日志
grep
“replSet FATAL”找出错原因,重新做同步
10. PRIMARY:主节点
11. SECONDARY:备份节点
|
1
2
3
4
5
|
use admin
db.addUser(
'admin'
,
'123456'
)
#建立管理员账号
use navy_db
#如果navy_db存在就进入库,如果不存在就建立navy_db库,空库show dbs是看不到的
db.addUser(
'navy_db_pro'
,
'123456'
)
#建立navy_db的读写账号
db.addUser(
'navy_db_sel'
,
'123456'
,
true
)
#建立navy_db的只读账号
|
1
|
rs.status() 查看集群状态是否ok
|
1
|
client=MongoClient(“mongdb:
//navy_db_pro
:123456@10.10.17.26:27000,10.10.17.27:27000
/navy_db
”
|