公司最近两个平台都用到的是NOSQL数据库(mongo),由于网络上资料都是英文的,而且比较有限,所以根据前辈的指导,先将理解的记录下来,以防我忘记。。毕竟好记性不如烂笔头嘛~~~
一、对应关系:
         其实数据库来说,我真是很不熟悉,但是通过工作又确实接触过几个普遍使用的(如:oracle、mysql、sqlserver),但是mongo完全是摒弃了以往所有数据库的概念:行——》文档,表——》集合;虽然可以这么想象,但是最好还是不要用以前学数据库的概念来学习mongo,要不然会很晕的!!
二、搭建库:
         我这里是测试部署了9个实例;虽说是9个,不过它是各司其职的:分别有mongos、mongod、mongo-config!
 
1、定义好数据存储路径;
2、定义好日志文件存储路径;
3、创建配置文件及存放路径;
 
4、启动数据库;(启动后看是否正常使用数据库,进入数据库后请查看当前状态:rs.status)
5、初始化副本集;
注意:初始化副本集的时候一定要连接mongod上去操作:/usr/local/webserver/mongo/bin/mongo 192.168.1.244:27021
use admin;
config_rs1={_id:'S1',members:[{_id:0,host:'192.168.1.244:27021',priority:1},{_id:1,host:'192.168.1.244:27024'},{_id:2,host:'192.168.1.244:27027'}]}
初始化:
rs.initiate(config_rs1)
config_rs2={_id:'S2',members:[{_id:0,host:'192.168.1.244:27025',priority:1},{_id:1,host:'192.168.1.244:27022'},{_id:2,host:'192.168.1.244:27028'}]}
rs.initiate(config_rs2)
配置完副本集后,查看状态是否相对应:rs.conf()
6、查看shanding状态;
db.runCommand({listshards:1}) db.printShardingStatus()
7、添加sharding;
注意:此操作一定要到mongos上去添加;(mongo内部结构)
db.runCommand({addshard:"S1/192.168.1.238:27021,192.168.1.238:27024,192.168.1.238:27027",name:"shard1"});
db.runCommand({addshard:"S2/192.168.1.238:27022,192.168.1.238:27025,192.168.1.238:27028",name:"shard2"});
 
 
三、基础命令:
show dbs;
show collections;
db;
db.find();
db.insert("":"");
df.find(one);
db.find({"address.city":"bj"})
`````````````
四、主从:
mongo的主从充分体现了它的特性:模式自由,简易方便;
 
当你的配置文件及数据库都表示正常时,在启动的时候加上参数--master即可:
如:/usr/local/mongo/bin/mongod --dbpath=/home/mongodb/www --logpath=/data1/logs/mongolog --master --oplogSize 64
 
如果是从服务器的话,同理,加上--slave选项启动并指定 master 的地址
如:/usr/local/mongo/bin/mongod --dbpath=/home/mongodb/www --logpath=/data1/logs/mongolog  --slave --source 192.168.1.238
 
后续······