安装
1. Linux安装
1.1 创建数据目录和日志文件:
mkdir -p /data/node/ touch /data/mongodb.log
1.2 安装:
tar zxf mongodb-linux-x86_64-2.4.9.tgz mv mongodb-linux-x86_64-2.4.9 /opt/mongodb echo "export PATH=$PATH:/opt/mongodb/bin" >>/etc/profile source /etc/profile
1.3 创建新从节点配置文件:
cat >> ~/.mongodb.conf < fork = ture port = 11000 dbpath = /data/node logpath = /data/mongodb.log logappend = true EOF1.4 启动
mongod --config ~/.mongodb.conf
2. 安装
2.1 下载并解压
mongodb-win32-x86_64-2008plus-2.4.9.zip2.2 添加服务
# mongod -f d:\mongodb\mongodb.cfg --serviceName MongoBD --install2.3 启动服务
# net start mongodb2.4 删除服务
# mongod --remove2.5 启动配置文件
mongodb.cfg --> logpath=d:\data\mongo.log dbpath=d:\data logappend=true auth=true #fork=true
管理
管理无论是备份还是带有复制的多节点系统,都有快捷的方式。系统会自动完成各种配置。
(1)是一个普通命令行程序,用调用。
(2)提供了内置的管理接口和监控功能,易与第三方监控包集成。
(3)支持基本的,数据库级别的用户认证,包括只读用户,以及独立的管理员权限。
(4)多种方式备份。
1.启动停止
1.1 命令行启动
命令行启动,可以 --help查看所有选项。
(1)-- 默认值为/data/db/。每个进程都需要独立的数据目录,要有三个实例,必须要有三个独立的数据目录。启动时,会在数据目录喜爱创建.lock文件,防止其他进程使用该数据目录。
(2)--port
指定监听端口,默认为27017,运行多个进程,需要指定不同的端口号。
(3)--fork
以守护进程运行,创建服务器进程。
(4)--
指定日志输出路径,而不是输出命令行,它会覆盖已有文件,清除原来的日记记录。如果要保留,需要使用--选项。
(5)--
指定配置文件,加载命令行未指定的各种选项。
1.2 配置文件
支持从文件获取配置信息。指定配置文件可以用-f或者--选项。例如:
# mongod --config ~/.mongodb.conf cat > ~/.mongodb.conf < port = 10001 fork = true logpath = /data/mongodb.logdbpath = /data/node2 logappend = true EOF
1.3 停止
数据库关闭方法:
(1)kill -2 或者kill -2 ,可以稳妥退出,会等到当前运行的操作或者文件预分配,关闭所有打开的连接,将缓存的数据刷新到磁盘,最后停止。
不能kill -9(),这样会导致数据文件损毁。
(2)使用管理命令{"" : 1}
> use admin > db.shutdownServer();2.监控
2.1 使用管理接口
启动时,会启动一个非常基本的HTTP服务器,该服务器监听的端口比主服务器大1000。呈现的信息可以通过shell查看,也可以通过web页面查看。
要利用好管理接口,需要用--reset选项开启REST支持。也可以在启动时使用--关闭管理接口。
2.2
呈现了内部详细信息,比如服务器的版本,运行时间,当前连接数。
MongoDB shell version: 2.4.9 connecting to: 127.0.0.1:10001/test > db.runCommand({serverStatus : 1})""表示全局写入锁占用了服务器多少时间(微秒)。"mem"包含服务器内存映射了多少数据,服务器进程的虚拟内存和常驻内存占用情况;
(1)""表示B树在磁盘检索和内存检索的次数;
(2)""表示后台做了多少次fsync以及用了多少时间;
(3)""包含了每种主要操作的次数。
2.3
输出提供的重要信息。每秒钟输出新的一行,比之前看到的静态计数实时性更好。分别为/s,/s,vsize和%。
2.4 第三方插件
支持,Munin,,Cacti的插件。
3.安全
支持对单个连接的认证。
3.1 认证的基础知识
每个实例中的数据库都可以有很多用户。开启认证后,只有数据库认证用户才能执行读写操作。
认证后,管理员可以读写所有的数据库,执行特定的管理命令。
开启安全认证前,需要有管理员帐号。
> use admin switched to db admin > db.addUser("root", "root123"); { "user" : "root", "readOnly" : false, "pwd" : "81c5bca573e01b632d18a459c6cec418", "_id" : ObjectId("530bd17622cceb4323a2b500") } > use test switched to db test > db.addUser("test_user", "root123", true); { "user" : "test_user", "readOnly" : true, "pwd" : "d436badec207e3821abbaf337fcbdd06", "_id" : ObjectId("530bd24322cceb4323a2b501")}
在shell中创建只读用户将的第三个参数设为true。调用()必须对数据库有写权限。
不仅可以增加新用户,还能修改用户口令或只读状态。
重启服务器,加入--auth选项,开启安全检查。
> use admin switched to db admin > db.auth("root", "root123"); 13.2 认证的工作原理
数据库用户帐户以文档形式存储在.users集合里面。
> use admin switched to db admin > db.system.users.find(); { "_id" : ObjectId("530bd17622cceb4323a2b500"), "user" : "root", "readOnly" : false, "pwd" : "81c5bca573e01b632d18a459c6cec418" }可以执行
db.system.users.remove({"user":"root"});删除帐号。
用户认证时,服务器将认证和连接绑定来跟踪认证。
3.3 其他安装考虑
除了认证还有许多选项来锁定实例。即便使用认证,传输协议是不加密的。如需加密,需要使用SHH隧道或类似做客户端和服务器之间的加密。
服务器建议布置在防火墙或内网中,但是如果需要被外部访问,使用--选项,可以指定绑定在本机IP地址。
可以用--完全禁止服务器端的执行。
(云端网 )
www.ydw.org