`
bigboy
  • 浏览: 169257 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

MongoDB 管理

 
阅读更多

 

1.MongoDB的启动和停止

启动部分

:\mysoft\mongo\bin>mongod.exe --help

 

** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data

 

** see http://blog.mongodb.org/post/137788967/32-bit-limitations

** with --dur, the limit is lower

 

Allowed options:

 

General options:

-h [ --help ] show this usage information

--version show version information

-f [ --config ] arg configuration file specifying additional options

-v [ --verbose ] be more verbose (include multiple times for more

verbosity e.g. -vvvvv)

--quiet quieter output

--port arg specify port number

--bind_ip arg comma separated list of ip addresses to listen on - all

local ips by default

--maxConns arg max number of simultaneous connections

--logpath arg log file to send write to instead of stdout - has to be

a file, not directory

--logappend append to logpath instead of over-writing

--pidfilepath arg full path to pidfile (if not set, no pidfile is

created)

--keyFile arg private key for cluster authentication (only for

replica sets)

--auth run with security

--cpu periodically show cpu and iowait utilization

--dbpath arg directory for datafiles

--diaglog arg 0=off 1=W 2=R 3=both 7=W+some reads

--directoryperdb each database will be stored in a separate directory

--journal enable journaling

--journalOptions arg journal diagnostic options

--ipv6 enable IPv6 support (disabled by default)

--jsonp allow JSONP access via http (has security implications)

--noauth run without security

--nohttpinterface disable http interface

--noprealloc disable data file preallocation - will often hurt

performance

--noscripting disable scripting engine

--notablescan do not allow table scans

--nssize arg (=16) .ns file size (in MB) for new databases

--objcheck inspect client data for validity on receipt

--profile arg 0=off 1=slow, 2=all

--quota limits each database to a certain number of files (8

default)

--quotaFiles arg number of files allower per db, requires --quota

--rest turn on simple rest api

--repair run repair on all dbs

--repairpath arg root directory for repair files - defaults to dbpath

--slowms arg (=100) value of slow for profile and console log

--smallfiles use a smaller default file size

--syncdelay arg (=60) seconds between disk syncs (0=never, but not

recommended)

--sysinfo print some diagnostic system information

--upgrade upgrade db if needed

 

Windows Service Control Manager options:

--install install mongodb service

--remove remove mongodb service

--reinstall reinstall mongodb service (equivilant of mongod

--remove followed by mongod --install)

--serviceName arg windows service name

--serviceDisplayName arg windows service display name

--serviceDescription arg windows service description

--serviceUser arg user name service executes as

--servicePassword arg password used to authenticate serviceUser

 

Replication options:

--fastsync indicate that this instance is starting from a dbpath

snapshot of the repl peer

--autoresync automatically resync if slave data is stale

--oplogSize arg size limit (in MB) for op log

 

Master/slave options:

--master master mode

--slave slave mode

--source arg when slave: specify master as <server:port>

--only arg when slave: specify a single database to replicate

--slavedelay arg specify delay (in seconds) to be used when applying

master ops to slave

 

Replica set options:

--replSet arg arg is <setname>[/<optionalseedhostlist>]

 

Sharding options:

--configsvr declare this is a config db of a cluster; default port

27019; default dir /data/configdb

--shardsvr declare this is a shard db of a cluster; default port

27018

--noMoveParanoia turn off paranoid saving of data for moveChunk. this

is on by default for now, but default will switch

停止方式有多种,可以以杀死进程的方式,也可以使用如下的命令

>use admin

>db.shutdownServer();

2.监控

2.1使用WEB管理接接口,在浏览器中输入http://ip:28017(默认的端口)


2.2使用serverStatus命令

 

> db.runCommand({"serverStatus":1})

{

"host" : "mongo_server",

"version" : "1.8.5",

"process" : "mongod",

"uptime" : 29336,

"uptimeEstimate" : 29130,

"localTime" : ISODate("2012-06-01T09:14:55.863Z"),

"globalLock" : {//表示全局写入锁占用了服务器多少时间

"totalTime" : 29336506453,

"lockTime" : 646417,

"ratio" : 0.000022034559603599163,

"currentQueue" : {

"total" : 0,

"readers" : 0,

"writers" : 0

},

"activeClients" : {

"total" : 0,

"readers" : 0,

"writers" : 0

}

},

"mem" : {//包含了服务器内存映射了多少数据,服务器进程的虚拟内存和常驻内存的占情况单位为MB

"bits" : 32,

"resident" : 15,

"virtual" : 72,

"supported" : true,

"mapped" : 32

},

"connections" : {

"current" : 1,

"available" : 19999

},

"extra_info" : {

"note" : "fields vary by platform"

},

"indexCounters" : {/表示B树在磁盘检索和内存检索的次数,如果这个比值开始上升就要考虑添加内存了

"note" : "not supported on this platform"

},

"backgroundFlushing" : {//表示后台做了多少次fsync以及用了多少时间

"flushes" : 488,

"total_ms" : 4850,

"average_ms" : 9.938524590163935,

"last_ms" : 12,

"last_finished" : ISODate("2012-06-01T09:14:00.629Z")

},

"cursors" : {

"totalOpen" : 0,

"clientCursors_size" : 0,

"timedOut" : 0

},

"network" : {

"bytesIn" : 10681,

"bytesOut" : 38570,

"numRequests" : 97

},

"opcounters" : {

"insert" : 30,

"query" : 17,

"update" : 0,

"delete" : 2,

"getmore" : 0,

"command" : 51

},

"asserts" : {//统计了断言的次数

"regular" : 0,

"warning" : 0,

"msg" : 0,

"user" : 0,

"rollovers" : 0

},

"writeBacksQueued" : false,

"ok" : 1

}

也可以使用http的方式获得此Json数据


 

2.3使用mongostat



它采用了实时计数。

2.4第三方插件

如Nagios、Munin、Ganglia、Cacti。

3.安全和认证

可以使用--auth启动数据库这样就需要验证,但在添加之前至少先创建一个管理员。

 

> db

test

> db.addUser("test_root","root")

{

"user" : "test_root",

"readOnly" : false,

"pwd" : "34070e45e4dfae82a29b99492394677d"

}

> db.addUser("read_only","1234",true)//指定为只读用户

{

"user" : "read_only",

"readOnly" : true,

"pwd" : "999ead64210fea33bfcff18fa5d5e5e2"

}

> db.auth("test_root","root") //鉴权

 

> db.system.users.find()//查看所有的用户,用户存储在system.users集合中

{ "_id" : ObjectId("4fc88f839e2a3bef89321b6a"), "user" : "test_root", "readOnly"

: false, "pwd" : "34070e45e4dfae82a29b99492394677d" }

{ "_id" : ObjectId("4fc88fb29e2a3bef89321b6b"), "user" : "read_only", "readOnly"

: true, "pwd" : "999ead64210fea33bfcff18fa5d5e5e2" }

>

4.其他安全策略

建议将MongoDB服务器布置在防火墙后或者布置在只有应用服务器能访问的网络中

如:只能从本机应用服务器访问可以运行“mongod --bindip localhost”

可以使用--nohttpinter-face 将HTTP的管理接口关闭。

使用--noscripting完全禁止服务端JavaScript的执行。

5.备份和修复

1.备份数据库文件,将数据库存储文件备份即可,此情况下要关闭服务器。

2.使用mongodump和mongorestore

C:\mongodb\bin>mongodump.exe --help
options:
--help produce help message
-v [ --verbose ] be more verbose (include multiple times for more
verbosity e.g. -vvvvv)
-h [ --host ] arg mongo host to connect to ( <set name>/s1,s2 for
sets)
--port arg server port. Can also use --host hostname:port
--ipv6 enable IPv6 support (disabled by default)
-u [ --username ] arg username
-p [ --password ] arg password
--dbpath arg directly access mongod database files in the given
path, instead of connecting to a mongod server -
needs to lock the data directory, so cannot be used
if a mongod is currently accessing the same path
--directoryperdb if dbpath specified, each db is in a separate
directory
-d [ --db ] arg database to use
-c [ --collection ] arg collection to use (some commands)
-o [ --out ] arg (=dump) output directory or "-" for stdout
-q [ --query ] arg json query
--oplog Use oplog for point-in-time snapshotting
--repair try to recover a crashed database

 

C:\mongodb\bin>mongorestore.exe --help
usage: mongorestore.exe [options] [directory or filename to restore from]
options:
--help produce help message
-v [ --verbose ] be more verbose (include multiple times for more
verbosity e.g. -vvvvv)
-h [ --host ] arg mongo host to connect to ( <set name>/s1,s2 for sets)
--port arg server port. Can also use --host hostname:port
--ipv6 enable IPv6 support (disabled by default)
-u [ --username ] arg username
-p [ --password ] arg password
--dbpath arg directly access mongod database files in the given
path, instead of connecting to a mongod server -
needs to lock the data directory, so cannot be used
if a mongod is currently accessing the same path
--directoryperdb if dbpath specified, each db is in a separate
directory
-d [ --db ] arg database to use
-c [ --collection ] arg collection to use (some commands)
--objcheck validate object before inserting
--filter arg filter to apply before inserting
--drop drop each collection before import
--oplogReplay replay oplog for point-in-time restore

 

示例

C:\mongodb\bin>mongodump.exe -d blog -o ../backup
connected to: 127.0.0.1
DATABASE: blog to ../backup/blog
blog.users to ../backup/blog/users.bson
10 objects
blog.system.indexes to ../backup/blog/system.indexes.bson
2 objects
blog.result.txt to ../backup/blog/result.txt.bson
5 objects

C:\mongodb\bin>mongorestore.exe -d test --drop ../backup/blog
connected to: 127.0.0.1
Fri Jun 01 23:41:03 ../backup/blog/result.txt.bson
Fri Jun 01 23:41:03 going into namespace [test.result.txt]
Fri Jun 01 23:41:03 dropping
Fri Jun 01 23:41:03 5 objects found
Fri Jun 01 23:41:03 ../backup/blog/users.bson
Fri Jun 01 23:41:03 going into namespace [test.users]
Fri Jun 01 23:41:03 dropping
Fri Jun 01 23:41:03 10 objects found
Fri Jun 01 23:41:03 ../backup/blog/system.indexes.bson
Fri Jun 01 23:41:03 going into namespace [test.system.indexes]
Fri Jun 01 23:41:03 dropping
Fri Jun 01 23:41:03 { name: "_id_", ns: "test.users", key: { _id: 1 }, v: 0 }
Fri Jun 01 23:41:03 { name: "_id_", ns: "test.result.txt", key: { _id: 1 }, v: 0
}
Fri Jun 01 23:41:03 2 objects found

 

3.fsync和锁

虽然用mongodump和mongorestore能不停机备份,但是我们却失去了获取实时数据视图的能力。MongDB的fsync命令能在MongoDB运行时复制数据目录还不回损毁数据。

fsync命令会强制服务器将所有缓冲区写入磁盘,还可以选择上锁阻止对数据库进一步写入,直至释放锁为止。写入锁是让fsync在备份时发挥作用的关键。下面的例子展示了如何在shell中操作,强制执行了fsync并获得了写入锁。

> db.runCommand({"fsync":1,"lock":1})
{
"info" : "now locked against writes, use db.$cmd.sys.unlock.findOne() to
unlock",
"ok" : 1
}

备份好了就要解锁

> db.$cmd.sys.unlock.findOne();
{ "ok" : 1, "info" : "unlock requested" }
> db.currentOp()
{ "inprog" : [ ] }

6.修复

1.mongod --repair

2,db.repairDatabase()

  • 大小: 146.2 KB
  • 大小: 122 KB
  • 大小: 34.7 KB
分享到:
评论

相关推荐

    mongodb管理工具

    MongoDB管理工具是数据库管理员和开发人员用于交互式操作MongoDB数据库的重要软件。在这个压缩包中,我们有两个主要的管理工具:RoboMongo和RockMongo,它们都是针对MongoDB的跨平台图形用户界面(GUI)工具。让我们...

    mongoDB管理软件

    MongoDB管理软件是数据库管理员和开发者的利器,尤其在处理非结构化数据时,MongoDB因其灵活性和高性能而备受青睐。MongoVUE.v1.5.3是专门为MongoDB设计的一款图形用户界面(GUI)工具,它使得管理和操作MongoDB...

    深入云计算:MongoDB管理与开发实战详解 源代码

    本资源“深入云计算:MongoDB管理与开发实战详解 源代码”旨在为开发者和管理员提供全面的MongoDB知识,通过源代码实例帮助读者深入理解其核心概念和实践技巧。 在云计算领域,MongoDB常作为NoSQL数据库解决方案,...

    记录MongoDB管理操作

    ### MongoDB管理操作详解 #### 一、概述 随着NoSQL技术的发展,MongoDB因其灵活性、扩展性和高性能成为了众多企业的首选数据库之一。对于大型系统来说,MongoDB的管理和维护至关重要。本文将详细介绍在过去一年多...

    MongoDB管理工具RockMongo-1.17源代码

    总结来说,RockMongo是一款强大的MongoDB管理工具,它的存在极大地简化了数据库的管理工作,无论对于初学者还是经验丰富的开发者,都是一个不可或缺的辅助工具。通过源代码的学习,开发者可以深入理解MongoDB的交互...

    详解MongoDB管理命令

    MongoDB 是一种流行的开源文档...在日常操作中,MongoDB 的管理命令是管理员进行数据管理、备份、恢复、性能优化以及问题排查的关键工具。熟练掌握这些命令,能够有效地管理和维护 MongoDB 集群,确保系统的稳定运行。

    MongoDB管理工具NoSQL Manager for MongoDB

    NoSQL Manager for MongoDB是一款专业的MongoDB管理工具,旨在帮助用户更高效地管理和操作MongoDB数据库,提升开发和运维效率。 NoSQL Manager for MongoDB提供了许多实用的功能,包括: 1. **图形化界面**:它...

    MongoDB管理控制台 Genghis.zip

    使用Genghis,你可以执行以下常见的MongoDB管理任务: 1. **连接到MongoDB实例**:Genghis允许你输入MongoDB服务器的地址和端口,以便连接到本地或远程数据库服务器。 2. **浏览数据库**:列出所有数据库,并查看每...

    mongodb管理工具安装包mongodb-compass

    mongodb-compass-1.13.1-win32-x64.exe 作为mongodb管理工具的安装包,对于管理mongodb很方便实用

    MongoDB管理工具robo3t

    在管理MongoDB数据库时,有一款强大的可视化工具是至关重要的,这就是我们今天要讨论的"MongoDB管理工具robo3t",它是robomongo的升级版。 robo3t(原名robomongo)是一款免费的MongoDB管理工具,专为Windows 64位...

    rockmongo-mongodb管理工具

    标题中的"rockmongo-mongodb管理工具"明确指出了我们讨论的主题,即RockMongo,它是专门针对MongoDB设计的管理工具。这个工具是开发者和数据库管理员的得力助手,尤其对于那些习惯于通过图形界面操作数据库的用户来...

    深入云计算 MongoDB管理与开发实战详解pdf.part1

    《深入云计算(MongoDB管理与开发实战详解)》系统全面的介绍了MongoDB开发、管理、维护和性能优化等方方面面。详细而深入,对MongoDB的开发和管理方法进行了详细的讲解,也对MongoDB的工作机制进行了深入的探讨。注重...

    Python-mongoadmin使用Django和Bootstrap构建的MongoDB管理界面

    Python-mongoadmin是一个基于Django Web框架和Bootstrap前端库构建的MongoDB管理界面工具。这个项目旨在提供一个用户友好的界面,使开发者和管理员能够更方便地管理和操作MongoDB数据库,而无需直接通过命令行或者...

    我的django专栏用的Mongodb管理软件,Windows端

    【标题】"我的django专栏用的Mongodb管理软件,Windows端"揭示了这个压缩包包含的是用于在Windows操作系统上管理MongoDB的工具,特别适用于与Django Web框架集成的环境。MongoDB是一种流行的NoSQL数据库系统,而...

    《MongoDB管理与开发精要》下载地址

    根据提供的文件信息,我们可以从以下几个方面来探讨与《MongoDB管理与开发精要》相关的知识点: ### MongoDB简介 MongoDB是一种非关系型数据库(NoSQL),它采用了文档数据模型进行数据存储,支持灵活的数据结构,...

    基于PHP的RockMongo php MongoDB管理工具.zip

    在这个场景中,RockMongo是一个基于PHP的MongoDB管理工具,它为开发人员提供了方便的界面来管理和操作MongoDB数据库。 RockMongo的主要特点包括: 1. **用户友好的界面**:RockMongo提供了一个简洁且直观的Web界面...

    mongoDB管理工具

    MongoDB管理工具是数据库管理员和开发人员用于操作和管理MongoDB数据库系统的重要工具。MongoDB是一种流行的NoSQL数据库,以其灵活性、高性能和易扩展性而备受赞誉。在没有合适的管理工具的情况下,直接通过命令行...

Global site tag (gtag.js) - Google Analytics