MongoDB数据库和架构管理

来源:互联网 发布:windows ftp命令用法 编辑:程序博客网 时间:2024/06/04 23:35
mongodb导入和导出
[root@localhost bin]# ./mongoexport -d test -c c1 -o /tmp/c1.out
[root@localhost bin]# ./mongoimport -d test -c c1 /tmp.c1.out
[root@localhost bin]# ./mongodump -d test -o /tmp/test
[root@localhost bin]# ./mongorestore -d test /tmp/test/test/


用户授权
./mongod --auth --dbpath=/usr/local/mongodb/data/  --logpath=/usr/local/mongodb/dblogs --fork


[root@localhost bin]# pkill mongod
[root@localhost bin]# pstree | grep mongod
[root@localhost bin]# ./mongod --auth --dbpath=/usr/local/mongodb/data/  --logpath=/usr/local/mongodb/dblogs --fork


> use admin;
switched to db admin
> show tables;
> db.addUser("root", "xiaobai");
[root@localhost bin]# ./mongo -uroot -pxiaobai localhost:27017/admin
>db.auth("root", "xiaobai");


超级管理员的用户信息存放在admin数据库里面
针对某个数据的用户信息存放在这个数据库里面




主从复制与副本集
MongoDB的主从群分为两种:
Master-Slave 复制(主从)    主服务器坏了,从服务器不会自动变成主服务器
Replica Sets 复制(副本集)  主服务器坏了,会从从服务器中选举出一台作为主服务器


主从复制配置
./mongod --master --dbpath=/usr/local/mongodb/data1/ --logpath=/usr/local/mongodb/dblogs1 --fork --port 20001
./mongod --slave --source 127.0.0.1:20001 --dbpath=/usr/local/mongodb/data2/ --logpath=/usr/local/mongodb/dblogs2 --fork --port 20002




Replica Sets复制(副本集)
Mogodb在1.6版本开发了replica set,主要增加了故障自动切换和自动修复成员节点。各个db之间数据完全一致,最为
显著的区别在于,副本集没有固定的主节点,它是整个集群选举出得一个主节点,当其不工作时变更为其他节点,强烈推荐使用。


[root@localhost key]# touch key1
[root@localhost key]# touch key2
[root@localhost key]# echo "123456" > key1
[root@localhost key]# echo "123456" > key2
[root@localhost key]# chmod 600 *


[root@localhost bin]# ./mongod --replSet rsl --keyFile=/usr/local/mongodb/key/key1 --port 20001 -dbpath=/usr/local/mongodb/data/data1/ --logpath=/usr/local/mongodb/log/dblog1 --fork


[root@localhost bin]# ./mongod --replSet rsl --keyFile=/usr/local/mongodb/key/key2 --port 20002 -dbpath=/usr/local/mongodb/data/data2/ --logpath=/usr/local/mongodb/log/dblog2 --fork
> config_rsl={
... _id:"rsl",
... members:[
... {_id:0,host:"localhost:20001",priority:1},
... {_id:1,host:"localhost:20002",priority:2}
... ]}
rs.initiate(config_rsl);


在从服务器上面
SECONDARY> rs.slaveOk();
SECONDARY> rs.status();
PRIMARY> rs.status();