今天把mongodb升级到2.0.2了 ,另外iteye的在线编辑器真不怎么好用
#mongodb数据库管理篇
#mongodb的部署
*一个或者多个分片(shard),每个分片持有全部数据的一部分(自动管理的),读写操作被自动路由到合适的分片上,每一个分片都有一个副本。
副本是一个或者多个服务器,每个服务器都持有相同的数据拷贝。在任何指定的时间里,只有一个作为主服务器,其他的作为辅助服务器。
所有最终一致的的读取都分布在这些辅助服务器上。
*多个配置服务器(config server),每一个配置服务器拥有的元数据的拷贝指明了哪些数据寄存在哪些分片上。
*一个或者多个路由器(routers),每一个路扮演作客户端的服务器的角色。客户端发送查询/更新请求到一个路由器,然后路由器通过咨询配置服务器
为它们指定一个合适的分片(或者说路由器通过查询配置服务器,把这些请求路由到某个合适的分片)。
*客户端(clients),客户端是用户应用(或者应用的部分),客户端通过mongodb为它提供的相应语音的驱动程序向路由器发送命令,mongod是服务器
程序(数据或者配置),mongos是路由器程序。
#mongo的数据模型
*mongo系统保存一系列数据库
*数据库保存一系列集合(网上大多翻译为聚集)
*集合保存一系列文档
*文档是一系列域
*域是一个键值对
*键是值的名字
*值是
*基本类型,如string, integer, float, timestamp, binary, 等
*或者文档,
*或者数组
#mongodb的架构域组件
#一下是mongodbserver包中的组件(进程)列表
*mongod 数据库核心进程
*mongos 分片控制器
*mongo 数据库shell(交互的javascript)
*导入到处工具
*mongoimport
*mongoexport
*mongodump
*mongorestore
*bsondump
*mongofiles GridFS实用工具
*mongostat
mongodb数据库服务器有两个主要的组件。第一个是mongod进程,它是数据库服务器的核心进程。许多请求下mongod被当作一个自给自足的系统,类似如何
在服务器上使用Mysql。独立的mongod实例在不同的机器上(还有数据中心)能够从一个到另一个进行复制。另一个是mongos进程,它辅助自动分片。mongos进程
可以被认为是一个数据库路由器,它使得一个mongod进程集群看上去向一个单个的数据库。
#日志
*mongodb v1.7.5以后支持操作的写前(write-ahead)日志,从而帮助数据库从崩溃中快速恢复和存储引擎的持久化。
#禁用/启用
*在版本1.9.2以后日志在64位平台上默认启用,你可以通过mongod --nojournal命令行选项来禁用日志。
*1.9.2之前的版本或者32位平台上,你可以通过mongod --journal命令来启用日志。
在开启日志运行数据库时,简单的关闭数据库,并使用 --nojournal选项重启数据库来禁用日志是没有问题的,同样相反的操作也是可以的。
mongodb认为为日志文件预分配文件,要比在需要是创建文件更加快。mongodb决定预分配文件,mongodb不回监听27017端口知道这个进程完成,这个需要话费几分钟。
这意味着你的应用程序和shell在数据库启动时都无法立即连接到数据库,检测日志看mongodb是否正忙于预创建文件,完成时会打印"waiting for connections on port whatever"的信息。
#日志文件
当日志启用时,日志文件会被创建在数据库目录下的journal子目录下,这些文件是写前重做日志。另外,一个最后序列号文件--journal/lsn也会被创建。清除式的关闭会删除journal下的所有文件。
mongo的数据文件(如,databasename.ns,databasename.0,databasename.1,。。。)与以以前的发现版本有相同的格式,因此,升级和回滚都是无缝的。
#恢复
在一次崩溃重新启动是,日志文件在服务启动之前重放一次,这会在日志输出中显示。你不需要运行修复。
#journal子目录
你可能希望在启动mongod符号连接到journal/目录到一个特定的硬盘驱动器来加速发送在当前日志文件上的频繁的顺序写入。
#组提交
mongodb在使用日志时执行组提交(批量提交),这意味着在若干毫秒里的一系列操作会被一次性同时提交,这样做是为了实现高性能。
#mongodb监听服务
mongodb监听服务是一个免费的SaaS解决方案,它可以主动监听你的mongodb集群。
#数据库与缓存
在关系数据库中对象缓存通常是一个独立的设备(例如Memcached),这使得关系数据库中例如RAM page cache(内存分页缓存)命中是一个相当昂贵的操作(这可能需要使用连接操作,并且数据必须被转换成对象的表现形式)。
此外,Memcached类型的解决方案相较于关系型数据库具有更优越的扩展性。
mogodb消除了对独立对象缓存层的需求。
在文件系统RAM cache中查询非常快,如同数据库中的对象表现非常接近应用程序内存中的对象表现。mongodb也能扩展到任意层,提供对象缓存与数据库集成,这将很有帮助,因为不会从缓存取到旧数据。另外,复杂的sql查询也是可能的。
简单测试主从式服务器:
主服务器:
>mongod -master -dbpath=F:/data/db/master -port=10000
Fri Dec 16 15:35:25 [initandlisten] MongoDB starting : pid=4372 port=10000 dbpath=F:/data/db/master master=1 64-bit host=shenbaise-PC
Fri Dec 16 15:35:25 [initandlisten] db version v2.0.2, pdfile version 4.5
Fri Dec 16 15:35:25 [initandlisten] git version: 514b122d308928517f5841888ceaa4246a7f18e3
Fri Dec 16 15:35:25 [initandlisten] build info: windows (6, 1, 7601, 2, 'Service Pack 1') BOOST_LIB_VERSION=1_42
Fri Dec 16 15:35:25 [initandlisten] options: { dbpath: "F:/data/db/master", master: true, port: 10000 }
Fri Dec 16 15:35:26 [initandlisten] journal dir=F:/data/db/master/journal
Fri Dec 16 15:35:26 [initandlisten] recover : no journal files present, no recovery needed
Fri Dec 16 15:35:26 [initandlisten] waiting for connections on port 10000
Fri Dec 16 15:35:26 [websvr] admin web console waiting for connections on port 11000
从服务器:
mongod -slave -source=192.168.0.182:10000 -dbpath=F:/data/db/slave -port=20000 --autoresync
Fri Dec 16 14:40:41 [initandlisten] MongoDB starting : pid=5240 port=20000 dbpath=F:/data/db/slave slave=1 64-bit host=shenbaise-PC
Fri Dec 16 14:40:41 [initandlisten] db version v2.0.2, pdfile version 4.5
Fri Dec 16 14:40:41 [initandlisten] git version: 514b122d308928517f5841888ceaa4246a7f18e3
Fri Dec 16 14:40:41 [initandlisten] build info: windows (6, 1, 7601, 2, 'Service Pack 1') BOOST_LIB_VERSION=1_42
Fri Dec 16 14:40:41 [initandlisten] options: { autoresync: true, dbpath: "F:/data/db/slave", port: 20000, slave: true, source: "192.168.0.182:10000" }
Fri Dec 16 14:40:41 [initandlisten] journal dir=F:/data/db/slave/journal
Fri Dec 16 14:40:41 [initandlisten] recover : no journal files present, no recovery needed
Fri Dec 16 14:40:41 [initandlisten] waiting for connections on port 20000
Fri Dec 16 14:40:41 [websvr] admin web console waiting for connections on port 21000
Fri Dec 16 14:40:42 [replslave] build index local.sources { _id: 1 }
Fri Dec 16 14:40:42 [replslave] build index done 0 records 0.008 secs
Fri Dec 16 14:40:42 [replslave] repl: from host:192.168.0.182:10000
Fri Dec 16 14:40:42 [replslave] build index local.me { _id: 1 }
Fri Dec 16 14:40:42 [replslave] build index done 0 records 0.001 secs
Fri Dec 16 14:40:46 [replslave] repl: applied 0 operations
Fri Dec 16 14:40:46 [replslave] repl: end sync_pullOpLog syncedTo: Dec 16 14:40:38 4eeae7e6:1
Fri Dec 16 14:40:46 [replslave] repl: sleep 2 sec before next pass
Fri Dec 16 14:40:48 [replslave] repl: from host:192.168.0.182:10000
Fri Dec 16 14:40:52 [replslave] repl: applied 1 operations
--autoresync选项会使得主从服务器自动同步数据。也可以自行设置同步时间如,–slavedelay 10
连接到数据库:
>mongo 192.168.0.182:20000
MongoDB shell version: 2.0.2
connecting to: 192.168.0.182:20000/test
> db.printSlaveReplicationInfo();
source: 192.168.0.182:10000
syncedTo: Fri Dec 16 2011 15:41:23 GMT+0800
= 5 secs ago (0hrs)
分享到:
相关推荐
5. MongoDB的优势: MongoDB不需要额外的缓存,支持丰富的查询和数据类型,同时商业公司10gen提供支持。它内置了replication(复制)和sharding(分片),可以实现水平扩展。 6. MongoDB的设计理念: MongoDB的设计...
springboot整合mongodb实践操作
Mongodb是主流的NOSQL数据库之一,Mongodb最佳实践,详细介绍了Mongodb使用以及底层原理,和运维管理; 1.Mongodb数据结构,以及存储方式 2.增删改查使用,分页,排序,投影,以及多种扩展使用 3.丰富查询语句,比如...
MongoDB最佳实践是指一系列用于部署和管理MongoDB数据库的高级策略和技术,旨在确保数据库的高效运行、数据安全、以及系统的稳定性和可扩展性。MongoDB是一种高性能、可扩展的分布式文档数据库,广泛用于现代应用...
### 视觉中国的MongoDB应用实践 #### 一、背景介绍 随着业务需求的变化和技术的发展,视觉中国在2011年的QCon北京会议上分享了其采用MongoDB作为数据库解决方案的过程与实践经验。这一转变旨在应对多数据源的需求、...
网易游戏MongoDB数据备份与恢复实践 本文将详细介绍网易游戏MongoDB数据备份与恢复实践,涵盖了MongoDB在网易游戏端游数据中心的应用、扩展性、业务需求、priority=0资源情况等多方面的内容,并对MongoDB在网易游戏...
【关系型数据库迁移MongoDB实践】的PPT涵盖了从规划到实施的整个迁移过程,重点关注Schema设计、应用迁移和数据迁移。以下是对这些关键知识点的详细说明: 1. **迁移规划**:在进行数据库迁移时,规划是至关重要的...
-涵盖了将数据从RDBMS移至MongoDB时的最佳实践和注意事项 MongoDB现代化记分卡 -使用它来确定哪些现有的旧版应用程序适合迁移到MongoDB 实践Medical_Claims_RDBMS_ERD和Medical_Claims_MongoDB -此方案适用于...
知识点5: 解决 MongoDB 误解 当前国内对 MongoDB 的误解包括丢数据、不安全、难维护等。解决这些误解需要了解 MongoDB 的原理和实现机制。 知识点6: MongoDB 机房多活方案 MongoDB 机房多活方案包括同城三机房多...
在使用 MongoDB 构建高性能应用时,了解并实践性能优化策略至关重要。本篇文章将深入探讨 MongoDB 的性能最佳实践,旨在帮助你充分利用其潜力。 1. **数据模型设计** - **合适的文档结构**:设计紧凑且逻辑清晰的...
day3:MongoDB增删改查操作实践 day4:教你学会MongoDB聚合操作 day5:索引的特性及应用 day6:MongoDB实例搭建仓位管理API day7:数据模型优化及设计 day8:复制集介绍及演练 day9:海量数据分片 day10:数据库认证与授权...
记住,实践是掌握任何技术的关键,尤其是像MongoDB这样的数据库管理系统。 总的来说,“mongodb-测试数据”这个压缩包为MongoDB的学习和测试提供了一个宝贵的资源库。通过深入研究和操作这些数据,你可以增强对...
5. 安装 MongoDB VUE 在 Windows 环境下安装 MongoDB 需要下载 MongoDB Windows 版,设置数据文件和日志文件的存放目录,启动 MongoDB 服务,并将其作为 Windows 服务随机启动。同时,还需要安装 MongoDB VUE,以便...
#### 四、MongoDB实践效果 ##### 选择MongoDB的原因: - **读写性能适中**:虽然不如Redis出色,但足够满足需求。 - **文档模型**:MongoDB的文档模型非常适合处理复杂的、变化的数据结构。 - **集群机制**:...
### MongoDB简介与实践 #### MongoDB概述 MongoDB是一款先进的、基于分布式文件存储的数据库系统,其核心编程语言为C++。这款数据库系统的设计初衷是为了满足Web应用对高性能、可扩展数据存储方案的需求。MongoDB...
5. 启动MongoDB服务:在命令行中执行`mongod`命令启动服务。如果希望作为Windows服务自动启动,可以使用`--install`参数。 **MongoDB 4.0.7 安装** 1. 下载:与4.2.0版本相同,访问官网下载4.0.7的安装包。 2. ...