mongodb 整理 (1)
July 18th, 2011 . by hacderMongoDB的启动和参数
- /usr/local/mongodb/bin/mongodb --dbpath /data/mongodb/db/ --logpath /data/logs/mongodb --logappend --fork
参数说明
–dbpath #指定db文件存放的目录,每个数据库会在其中创建一个子目录。用于防止同一个实例多次运行的mongod.lock也保存在此目录中
–port #指定mongod服务使用的端口,Web管理端口在这个port的基础上+1000
–fork #设置mongo服务为后台(Daemon)运行
–logpath #指定log文件的目录和文件名
–logappend #设置每次log采用追加模式(默认是覆写模式)
–rest #关闭rest api功能
–nohttpinterface #关闭web管理功能
–auth #指定mongo使用身份验证机制
–bindip #用逗号分隔ip地址,用来指定对外服务的绑定ip,一般设置为空,及绑定在本机所有可用ip上,如有需要可以单独指定
–f #将所有前面介绍的参数都可以存放到一个配置文件中,然后用这个参数调用配置文件来启动mongod服务
–journal #开启日志功能,通过保存操作日志来降低单机故障的恢复时间,在1.8版本后正式加入,取代在1.7.5版本中的dur参数。
–syncdelay # 执行sync的间隔,单位为秒。
–directoryperdb # 每个db存放在单独的目录中,建议设置该参数。
–maxConns # 最大连接数
–repairpath # 执行repair时的临时目录。在如果没有开启journal,异常宕机后重启,必须执行repair操作。
另外,mongod也和mysqld一样支持将参数写入到一个配置文本文件中,然后通过config参数来引用此配置文件:
- ./mongod --config /etc/mongo.cnf
MongoDB 安装目录下文件
- mongod:数据库服务端,类似mysqld,每个实例启动一个进程,可以fork为Daemon运行
- mongo:客户端命令行工具,类似sqlplus/mysql,其实也是一个js解释器,支持js语法
- mongodump/mongorestore:将数据导入为bson格式的文件/将bson文件恢复为数据库,类似xtracbackup
- mongoexport/mongoimport:将collection导出为json/csv格式数据/将数据导入数据库,类似mysqldump/mysqlimport
- bsondump:将bson格式的文件转储为json格式的数据
- mongos:分片路由,如果使用了sharding功能,则应用程序连接的是mongos而不是mongod
- mongofiles:GridFS管理工具
- mongostat:实时监控工具
关闭/停止 MongoDB
- a. db.shutdownServer() #推荐优先使用
- b. ctrl + c #在不使用 --fork参数的时候可以使用,可能会造成数据文件损坏
- c. kill / kill -2 #在无法使用 a和b的情况下使用,可能会造成数据文件损坏
- d. kill -9
查看MongoDB状态
- a.db.runCommand({"serverStatus":1})
- b.MONGO_HOME/bin/mongostat
4. 添加用户,切换用户 使 –auth参数起效
- db.addUser("root","123")
- db.addUser("read_only","123",true); #第3个参数表示设置readonly的状态
- db.auth("read_only","123")
数据库备份
有4种方法备份数据库
- a. 关闭mongod服务后,复制--dbpath参数指定的数据文件。优点速度快,缺点需要停止mongo服务。
- b. 使用mongodump 导出数据,并用mongorestore 导入数据。优点不需要停止mongo服务,缺点在mongodump操作时用户插入的数据可能无法备份出来。
- c. fsync and lock锁定数据库的让用户只能使用read功能,再使用方法b导出并导入数据。优点不需要停止mongo服务,缺点在数据库lock期间用户无法执行insert操作。
- d. 使用slaveDB并且 使用方法c锁定slaveDB,再使用方法b导出并导入数据。优点不需要停止mongo服务,不会影响用户insert操作(推荐使用此方法)。
修复数据库
当数据库文件遭到损坏的时候有3种方法修复数据文件
- a. MONGO_HOME/bin/mongod --repair
- b. use test
- db.repairDatabase()
- c. db.runCommand({"repairDatabase":1});
原创文章如转载,请注明:转载自 Hacder's Lab [ http://www.hacder.com ]
本文链接地址:http://www.hacder.com/archives/1035.html