您的位置:首页 > 数据库 > Mongodb

Mongodb的相关文档整理(一)

2015-10-11 19:40 411 查看

1. 目前的集群环境

Master:192.168.100.103

Slave:192.168.100.104

Slave:192.168.100.105

Arbiter:192.168.100.106

2. 集群启动方法

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. 集群如何进入命令行

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. 集群常见命令

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

}

]

5. Mongodb常用客户端

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 数据的应用程序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: