如果在flush操作进行时执行kill -9则会造成文件混乱,可能导致数据全丢了,启动时加了repair也无法恢复。
避免方法
第一种 使用正确的关闭方法
官方文档说明要使用 kill -15,killall mongod或者在client的shell里,use admin,执行db.shutdownServer()即可!
第二种
通过replication 使用 一个slave,或者用replica set 来避免单结点数据丢失。
第三种 1.7以后出现类似于binlog的功能
在 MongoDB 1.7 版本的最新分支上,就出现了一个新的数据可靠性选项(–dur)的支持。并且在数据文件修复工具上也有了一些改进。
如果在启动MongoDB时加上–dur 则MongoDB 会在进行写操作前记一份日志,这和在其他一些数据库中的binlog 类似,在MongoDB 数据文件损坏的情况下,可以使用此日志来进行恢复。据说其对性能的影响不大。
1.服务器管理功能添加服务器,删除服务器
2.服务器,数据库,表,列,索引,树形显示和状态信息查看
3.查询分析器功能.
支持select,insert,Delete,update
支持自定义分页函 数 $rowid(1,5) 查询第一条到第五条,需放在select后面.
4.索引管理功能
支持列名的显示,索引的创建,查看,删除.
5.数据库Profile管理.
可以设置Profile开关,查看Profile信息.自定义分页大小.
6.master/slave信息显示!
1、下载MongoDB数据库;2、将安装文件解压到C盘(注意:安装路径中不能出现空格),配置“环境变量”,将 %MONGODB_HOME%in 添加到“Path”中;
3、进入DOS窗口,设置数据保存目录(与端口)和日志输出目录。
DOS命令:
mongod --port --dbpath --logpath --logappend --directoryperdb
参数说明:
--port 表示数据库端口,默认27017;
--dbpath 表示数据文件存储路径,一般设置为%MONGODB_HOME%data;
--logpath 表示日志文件存储路径,一般设置为%MONGODB_HOME%logsmongodb.log;
--logappend 表示日志追加,默认是覆盖;
--directoryperdb 表示每个db一个目录;
4、完成以上设置,MongoDB已经启动,新开启DOS窗口,执行“mongo.exe”,出现“MongoDB shell version: 1.8.1”表示安装成功了。
5、目前是以无权限限制的方式启动的,你可以做任何操作。那么我们先切换到admin下,创建一个root用户吧。执行命令:
"use admin" ->"db.addUser("root","root")" ->"db.auth("root","root")",如下图所示:
6、把MongoDB注册为Windows Service,让它开机自动启动;执行命令:
mongod --bind_ip 127.0.0.1 --logpath %MONGODB_HOME%logsmongodb.log --logappend --dbpath %MONGODB_HOME%data --directoryperdb --auth --install
注意:
a.必须切换到bin目录下执行该条指令。
b.必须添加--auth用户权限才会生效。
c.除了“--auth”和“--install”两个参数,别的参数要跟你设置用户时启动服务的参数一致,尤其是“--directoryperdb”。
第一次配置完成后,一定要重启才会有效果 重启mongo客户端,不输入-u-p可以直接进入,但是不具有任何权限。正确的访问方式为:mongo 数据库名 -u 用户名 -p。另外设置用户
7、服务安装成功后的界面:
8、如果安装失败:
删除MongoDB服务,执行命令:
sc delete MongoDB
启动MongoDB服务,执行命令:
net start "MongoDB"
9、在cmd下可有两种方法打开,net和sc,net用于打开没有被禁用的服务,语法是:
启动:net/sc start 服务名
停止:net/sc stop 服务名
10、另外,sc可用于打开被禁用的服务,语法是:
sc config 服务名 start= demand //手动
sc condig 服务名 start= auto //自动
sc config 服务名 start= disabled //禁用
注意:以上三个命令“=”号后面必须有一个空格
Mongo(也译芒果)名字来自humongous,意思是巨大无比的,极大的。它是一个高性能,开源,无模式的文档型NOSQL数据库。Mongo使用C++开发,提供了以下功能:
面向集合的存储:适合存储对象及JSON形式的数据。
动态查询:Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
完整的索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。
查询监视:Mongo包含一个监视工具用于分析数据库操作的性能。
复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。
高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)。
自动分片以支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器。
MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用,在32位模式运行时支持的最大文件尺寸为2GB。
常用启动参数:
–dbpath 指定特定存储目录启动,若目录不存在则创建。默认目录为/data/db。例:./mongod –dbpath /var/data/mongo
–port 指定端口启动。默认端口为27017。例:./mongod –port 12345
windows 下使用方法
直接启动:
$ bin/mongod.exe #启动服务器
$ bin/mongo.exe #启动客户端连接
注册为服务,这样以后开机就可以自动启动
$ bin/mongod.exe --logpath c:\data\log.log --logappend --dbpath "c:\data\db" --install #主要是install 参数,要新建c:\data\log.log文件和c:\data\db目录
删除服务
$ bin/mongod.exe --remove
当注册为服务时可以Win+R打开运行,输入services.msc来查看服务状态
常见错误
1、monge.exe客户端连接时报错:couldn’t connect to server 127.0.0.1 shell/mongo.js:79
这是因为monged.exe启动失败
2、多次尝试后monged.exe启动失败,始终没找到原因
这个错误困扰了我一段时间,后来发现c:\data\db下有个mongod.lock锁文件,把这个文件删除后,重新启动服务器就可以了。
服务启动报错: error2: system can not find the file specified.
solution:
安装服务的时候, 你需要用 mongod.exe的 full path
C:\mongodb-win32-i386-1.8.2\bin\mongod.exe --logpath c:\mongo
db\logs\mongo.log --dbpath c:\mongodb\data\db --directoryperdb --install
to remove service
C:\mongodb-win32-i386-1.8.2\bin\mongod.exe --logpath c:\mongo
db\logs\mongo.log --dbpath c:\mongodb\data\db --directoryperdb --remove
and re open windows service windows, the original service will gone.
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)