工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.51099.com 注册 | 登陆
浏览模式: 标准 | 列表分类:mongodb

mongodb查询大小

 可以通过传参数,比如

db.stats(1024)

得到的是kb单位的

db.stats(1073741824);

-------
  1. var collNames = db.getCollectionNames();  
  2. for (var i = 0; i < collNames.length; i++) {     
  3.   var coll = db.getCollection(collNames[i]);   
  4.   var stats = coll.stats(1024 * 1024);   
  5.   print(stats.ns, stats.storageSize);  
  6. }  

mongodb远程复制数据表

  db.runCommand({cloneCollection:"ball.othermatch",from:"127.0.0.1:27017"})

 
 
https://blog.csdn.net/wulex/article/details/83479516

关闭及主从配置

 安全的关闭/停止mongodb的方法

> use admin

> db.shutdownServer()

 

 

六.改变oplogSize的大小

  变更oplog的大小,这是一个挺大的工程

  首先要停掉主节点,然后删除local数据库.

  rm /data/db/local.*

  接着再以--oplogSize来重新定义大小.

  mongod --master --oplogSize 多少MB

  再以--autoresync的选项重启所有从节点.

 

 

1.配置主节点

创建数据的存放目录与日志的存放目录:

mkdir /mongodb/master

mkdir /mongodb/log

 

接着把主节点的配置写在一个配置文件中,从而来启动的时候能用--config这个参数来指定配置,配置文件内容如下.

dbpath=/mongodb/master

logpath=/mongodb/log/master.log

master=true

fork=true

port=27017

oplogSize=2048

 

 

2.配置从节点

创建数据的存放目录与日志的存放目录:

mkdir /mongodb/slave

mkdir /mongodb/log

 

接着写从节点的配置文件.

dbpath=/mongodb/slave

logpath=/mongodb/log/slave.log

slave=true

source=192.168.1.2:27017

fork=true

port=27017

autoresync=true

 

 

adminmongo

  1123  git clone https://github.com/mrvautin/adminMongo

 1124  cd adminMongo/
 1129  npm install
 1130  npm start
 

对mongodb 的 WiredTiger Storage Engine 的理解

 今天看了mongodb的官方文档中的WiredTiger Storage Engine ,说说我对WiredTiger Storage Engine 的理解!

  在mongodb3.2版本以后,wiredTiger 存储引擎为默认的储存引擎。

Document Level Concurrency

  WiredTiger 的写操作使用了Document 级别的并发控制,因此多个clients可以同时同一个collection 中的不同的document  进行修改。

  为了尽可能多的读和写操作,WiredTiger 使用了optimistic  concurrency control(乐观的并发控制),相当于乐观锁,WiredTiger的全局的专一的锁,仅仅存在于database 和 collections 级别,例如:drop 一个collections,需要一个database级别的锁。当存储引擎在database 和collection的锁之间发生冲突时,其中的一个将会引发数据库写的冲突导致mongdb 去重新进行此操作。

Snapshots and Checkpoints

  WiredTiger 使用 多版本并发控制(MVCC)。再开始的操作中,WiredTiger 为这个事务提供一个数据的时间点的快照(snapshot),一个快照呈现一组在内存中的数据的视图。

  当写进磁盘时,WiredTiger 把所有的在snapshot中的数据通过相同的方法传递到磁盘中的数据文件。把在数据文件中的久经耐用的数据作为一个检查站(checkpoint),这个检查站确保数据文件和上一个检查站的数据是一致的,包括最后一个检查站。eg:检查站可以作为数据的恢复的点。mongodb配置的WiredTiger 去创建的站点是在间隔60秒或者2 GB的日志数据。

  在写一个新的站点期间,如果前面一个站点仍然是有效的,就这点而论,如果mongodb 意外结束或者突然遇到一个错误,再重新开始之前,mongodb 可以从上一个有效的checkpoint恢复数据。

  当WiredTiger 元数据的表被原子性的更新到新的检查站点的说明文档时,这个新的站点变得可用和稳定,一但新的站点变的可用,WiredTiger会释放pages从旧的检查站点。

Journal

  WiredTiger 使用一个write-ahead 处理log, 并且结合检查站点去确保数据的耐久性。

  WiredTiger 日志呈现了所有的数据在检查站点之间的变化,如果mongodb在检查站点之间退出,它使用日志去重新从上一个检查站点更新所有的被修改的数据,信息更新的频率和mongodb把日志数据写到磁盘的频率相同。WiredTiger 的日志是使用了快速压缩库被压缩,如果自己想指定一个混合的压缩运算或者不压缩使用 storage.wiredTiger.engineConfig.journalCompressor 

  WiredTiger的最小的log 记录大小是128 bytes。如果一个log 记录小于等于128 bytes, WiredTiger 不会压缩这个log 记录。

Compression

  在mongodb中,使用WiredTiger ,mongodb 支持压缩为所有的collection 和index ,压缩是使用额外CPU的开支减少存储空间。默认的情况下,WiredTiger使用块级别的压缩,所有的collections 被使用快速压缩库,所有的索引(index)被使用前缀压缩。在压缩collections 的时候 ,块级别的压缩用 zlib  也是可用的,去指定一个轮流的压缩运算或者不压缩,使用storage.wiredTiger.collectionConfig.blockCompressor ,假如你不想去压缩index,你可以看下storage.wiredTiger.indexConfig.prefixCompression 

  对于大多数工作的负载,默认的压缩设置平衡了存储效率和处理要求。

Memory Use

  mongodb 使用WiredTiger,mongodb 利用WiredTiger内部的cache和文件系统的cache。

  在mongdb 3.4 的版本以后,WiredTiger 内部的cache将变得更大:50%内存减去1GB 或者是256MG,通过文件系统的cache ,mongodb 自动的使用所有的空闲的内存,这些内存是不被WiredTiger cache 或者其他进程使用的。数据是在文件系统的cache里被压缩的。去调整WiredTiger内部cache 的大小可以看storage.wiredTiger.engineConfig.cacheSizeGB

切记 ,不要调整WiredTiger内部cache的大小超过默认值。

如何检查当前MONGODB是否启用了WIREDTIGER存储引擎?

 如何检查当前mongodb是否启用了WiredTiger存储引擎?

可以至少通过以下2种方法 验证:

1、在Linux/OSX上执行如下的命令

WIREDTIGER_CONFIGURED=`ps -ef|grep mongod|grep -i storageengine|grep -ic wiredtiger`
echo ${WIREDTIGER_CONFIGURED}

如果返回为1则说明当前系统中运行着一个以WiredTiger为存储引擎的mongod

2、在Linux/OSX上执行如下的命令

echo "db.serverStatus()"| mongo|grep wiredTiger

若返回信息中有wiredTiger,则说明该mongo连接到了一个启用了wiredTiger存储引擎的mongod.

注意对于启用了wiredTiger的文件路径–dbpath,无法再使用默认mmapv1存储引擎打开,例如:

ac:mongodata maclean$ mongod --storageEngine wiredTiger --dbpath  /Users/maclean/mongodata

mongodb注意点-存储引擎

 1.MongoDB 3.2之后默认启动的是wiredTiger 引擎这个引擎和原来的引擎访问方式不一样。你用命令mongod  --storageEngine mmapv1 --dbpath 数据目录 这样启动的是原来的数据引擎在用MongoVE连接就可以了

 
2.WiredTiger
 
MongoDB自身拥有MMAPv1引擎,在3.0版本中加入了之前收购的WiredTiger的存储引擎技术。
 
通过 WiredTiger,MongoDB 3.0 实现了文档级别的并发控制(Concurrency Control),因此大幅提升了大并发下的写负载。
 
用户可以自己选择储存数据的压缩比例,MongoDB 3.0提供最高达80%的压缩率,不过压缩率越高数据处理的时间成本也越多,用户可以自行权衡应用。
MMAPv1
增强了集合(collection)级别的并发控制
启动WiredTiger
mongod --storageEngine wiredTiger
--------------------- 
作者:风灵使 
来源:CSDN 
原文:https://blog.csdn.net/wulex/article/details/51800612?utm_source=copy 
版权声明:本文为博主原创文章,转载请附上博文链接!

Mongo3.4 Storage Engines存储引擎(将MongoDB实例更改为WiredTiger存储引擎)

 教程提供了改变独立MongoDB实例的存储引擎为wiredtiger存储引擎的概述。

 
注意:
 
本教程使用mongodump和mongorestore工具导出和导入数据,确保MongoDB组件安装在你的系统之中,另外,确保使用WiredTiger运行的MongoDB实例有足够的存储空间供mongodump导出文件和数据文件。
 
1.启动将要使用WiredTiger存储引擎的mongo实例
 
2.使用mongodump导出数据
 
mongodump --out <exportDataDestination>
适当的指定其他的参数选项,如果开启了authorization认证加上username和password
3.为使用WiredTiger存储引擎运行的mongod实例创建一个目录,mongod必须对这个目录拥有读和写的权限
 
4.启动mongod实例并且指定存储引擎为WiredTiger和数据存储目录
 
mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath>
5.使用mongorestore导入数据文件
mongorestore <exportDataDestination>
--------------------- 
作者:随风yy 
来源:CSDN 
原文:https://blog.csdn.net/yaomingyang/article/details/74913707?utm_source=copy 
版权声明:本文为博主原创文章,转载请附上博文链接!
Records:912