Master:192.168.100.103
Slave:192.168.100.104
Slave:192.168.100.105
Arbiter:192.168.100.106
2.1 Master:192.168.100.103
在/home/bms/mongodb-3.0.5目录下执行以下命令
./mongod –f ../conf/mongodb-master.conf
注意:如果没有启动成功,应该从以下方面进行排查
1) 看下整个集群的网络环境是否已经畅通
2) 查看集群中各个服务器的防火墙是不是已经关闭。
3) 用如下命令进行重新启动:./mongod –f ../conf/mongodb-master.conf --repair
2.2 Slave:192.168.100.104
在/home/bms/mongodb-3.0.5目录下执行以下命令
./mongod –f ../conf/mongodb-slave.conf
注意:如果没有启动成功,应该从以下方面进行排查
4) 看下整个集群的网络环境是否已经畅通
5) 查看集群中各个服务器的防火墙是不是已经关闭。
3)用如下命令进行重新启动:./mongod –f ../conf/mongodb-slave.conf --repair
2.3 Slave:192.168.100.105
在/home/bms/mongodb-3.0.5目录下执行以下命令
./mongod –f ../conf/mongodb-slave.conf
注意:如果没有启动成功,应该从以下方面进行排查
6) 看下整个集群的网络环境是否已经畅通
7) 查看集群中各个服务器的防火墙是不是已经关闭。
3)用如下命令进行重新启动:./mongod –f ../conf/mongodb-slave.conf --repair
2.4 Slave:192.168.100.106
在/home/bms/mongodb-3.0.5目录下执行以下命令
./mongod –f ../conf/mongodb-arbiter.conf
注意:如果没有启动成功,应该从以下方面进行排查
8) 看下整个集群的网络环境是否已经畅通
9) 查看集群中各个服务器的防火墙是不是已经关闭。
3)用如下命令进行重新启动:./mongod –f ../conf/mongodb-arbiter.conf --repair
2.5 Master/Slave/Arbiter:192.168.100.106
2.1~2.4都是在前台启动Mongdb进程,但是这样会存在问题,但当启动MongoDB进程的session窗口不小心关闭时,MongoDB 进程也将随之停止,这无疑是非常不安全的,幸好MongoDB提供了一种后台 Daemon方式启动的选择,只需加上一个“--fork”参数即可,这就使我们可以更方便的操作数据库的启动,但如果用到了“--fork”参数就必须也启用“
--logpath”参数,这是强制的。在后台启动Mongodb的方法是如下:
./mongod –f ../conf/mongodb-arbiter.conf --fork
--logpath=/home/hadoop1/bms/Mongodb-3.0.5/logs/slaver.log
2.6 Mongodb配置文件参数详细说明
l dbpath:
数据文件存放路径,每个数据库会在其中创建一个子目录,用于防止同一个实例多次运行的 mongod.lock 也保存在此目录中。
l logpath
错误日志文件
l logappend
错误日志采用追加模式(默认是覆写模式)
l bind_ip
对外服务的绑定 ip,一般设置为空,及绑定在本机所有可用 ip 上,如有需要可以单独指定
l port
对外服务端口。Web 管理端口在这个 port 的基础上+1000
l fork
以后台 Daemon 形式运行服务
l journal
开启日志功能,通过保存操作日志来降低单机故障的恢复时间,在 1.8 版本后正式加入,
取代在 1.7.5 版本中的 dur 参数。
l syncdelay
系统同步刷新磁盘的时间,单位为秒,默认是 60 秒。
l directoryperdb
每个 db 存放在单独的目录中,建议设置该参数。与 MySQL 的独立表空间类似
l maxConns
最大连接数
l repairpath
执行repair时的临时目录。在如果没有开启journal,异常down机后重启,必须执行repair
操作。
3.1 Master:192.168.100.103
在/home/bms/mongodb-3.0.5目录下执行以下命令
./mongo 192.168.100.103:10111
3.2 Slave:192.168.100.104
在/home/bms/mongodb-3.0.5目录下执行以下命令
./mongo 192.168.100.104:10111
3.3 Slave:192.168.100.105
在/home/bms/mongodb-3.0.5目录下执行以下命令
./mongo 192.168.100.105:10111
3.4 Slave:192.168.100.106
在/home/bms/mongodb-3.0.5目录下执行以下命令
./mongo 192.168.100.105:20111
4.1 查看当前Mongodb中所有的数据库
show dbs
4.2 切换到指定的数据库
use mydb(数据库名字)
注意:如果当前集群中没有mydb数据库,那么use mydb命令会自动创建mydb数据库,但是mydb在没有自己的Collection之前,用show dbs 命令无法看见mydb数据库。
4.3 查看指定数据库下的所有Collection
1)切换到指定的数据库
use mydb
2)查看指定数据库下所有的collection
show collections
4.4 创建Collection
1)切换到指定的数据库
use mydb
2)查看指定数据库下所有的collection
db.createCollection(‘MyCollection’); MyCollection’是要创建的Collection的名字
4.5 向Collection中插入数据
1)切换到指定的数据库
use mydb
2)向指定collection中插入一条记录
db.MyCollection.insert({username:’xuguokun’}
4.6 删除Collection中的数据
1)切换到指定的数据库
use mydb
2)将指定collection中指定的记录删除
db.MyCollection.remove({username:’xuguokun’})
4.7 从物理上删除Collection
1)切换到指定的数据库
use mydb
2)从物理上删除指定的collection
db.MyCollection.drop();
4.8 从物理上删除Collection
1)切换到指定的数据库
use mydb
2)从物理上删除指定的collection
db.MyCollection.drop();
4.9 Mongodb导出数据
1) 进入Mongodb的所在目录
cd /home/bms/mongodb-3.0.5/bin
2)执行导出命令(导出格式为JSON格式)
./mongoexport –h 192.168.100.103 –port 10111 –d MyTestDB –c MyCollection–o /home/bms/MyTestDB.dat
-d 指明使用的库,本例中为“MyTestDB”
-c 指明要导出的表,本例中为“MyCollection”
-o 指明要导出的文件名,本例中为“/home/bms/MyTestDBJSON.datt”
--port 指明mongodb的开放端口
-h 指定Mongodb的主机
3)执行导出命令(导出格式为CSV格式)
./mongoexport -d MyTestDB -cMyCollection –csv –f _id,username,age -o/home/bms/MyTestDBCSV.dat
--csv 指要要导出为csv 格式
-h 指定Mongodb的主机
-f 指明需要导出哪些例(该参数必须指定)
4.10 Mongodb导入数据
1)进入Mongodb的所在目录
cd /home/bms/mongodb-3.0.5/bin
2)执行导出命令(导出格式为JSON格式)
./mongoimport –h192.168.100.103 –port 10111 –d MyTestDB –cMyCollection –o/home/bms/MyTestDBJSON.dat
-d 指明使用的库,本例中为“MyTestDB”
-c 指明要导入的表,本例中为“MyCollection”
-h 指定Mongodb的主机
-o 指明要导入的文件名,本例中为“/home/bms/MyTestDBJSON.datt”
--port 指明mongodb的开放端口
2)执行导入命令(导入格式为CSV格式)
./mongoimport –h 192.168.100.103 –port 10111 –d MyTestDB -c user –type csv --headerline --file/home/bms/MyTestDBCSV.dat
--type 指明要导入的文件格式
--headerline 批明不导入第一行,因为第一行是列名
--file 指明要导入的文件路径
-h 指定Mongodb的主机
4.11 Mongodb数据备份
1)进入Mongodb的所在目录
cd /home/bms/mongodb-3.0.5/bin
2)执行导出备份命令(导出格式为JSON格式)
./mongodump –h 192.168.100.103 --port 10111–d MyTestDB –o/home/bms/MyTestDB_DUMP
-d 指明使用的库,本例中为“MyTestDB”
-o 指明要备份的文件目录,本例中为“/home/bms/MyTestDB_DUMP”
-h 指定Mongodb的主机
--port 指明mongodb的开放端口
4.12 Mongodb数据恢复
1)进入Mongodb的所在目录
cd /home/bms/mongodb-3.0.5/bin
2)执行恢复命令(导出格式为JSON格式)
/mongorestore –h 192.168.100.103 --port10111 –d MyTestDB /home/bms/MyTestDB_DUMP/*
-d 指明使用的库,本例中为“MyTestDB”
-h 指定Mongodb的主机
--port 指明mongodb的开放端口
4.13 查看数据库的当前连接数
db.serverStatus().connections
4.14 查看数据库当前的运作状态
./mongostat -h192.168.100.103 --port 10111
4.15 数据库索引的管理
1) 查看数据库中所有索引
db.system.indexes.find()
2)查看指定数据库的指定Collection的索引
db.system.indexes.find({"ns":"MyTestDB.MyCollection"})
3)创建索引
db.MyCollection.ensureIndex({age:1})//在age字段上创建索引
4)查看某个Collection的所有的索引
db. MyCollection.getIndexes();
[
{
"name" :"_id_",
"ns" :"test.t3",
"key" : {
"_id" : 1
},
"v" : 0
},
{
"_id" :ObjectId("4fb906da0be632163d0839fe"),
"ns" :"test.t3",
"key" : {
"age" : 1
},
"name" :"age_1",
"v" : 0
}
]
l MongoVUE
主页:http://www.mongovue.com/
一个桌面程序,提供了对MongoDB 数据库的基本操作,如查看、查询、更新、删除等,简单易用,但是功能还比较弱,以后发展应该不错。
l RockMongo
主页:http://code.google.com/p/rock-php/
RockMongo 是一个 PHP5 写的 MongoDB 管理工具。
l MongoHub
主页:https://github.com/bububa/MongoHub
MongoHub 是一个针对 Mac 平台的 MongoDB 图形管理客户端,可用来管理 MongoDB 数据的应用程序。