4 Mongodb 学习
文章平均质量分 62
Mongodb 学习
雅冰石
DBA
展开
-
mongo库起不来,日志显示一直在build index
启动mongod时加上--noIndexBuildRetry参数来跳过索引重建转载 2022-09-01 08:57:59 · 386 阅读 · 0 评论 -
用mongoshake实现mongo分片集群到单实例和分片集群的数据同步
一 实验环境这里演示只同步源端ccc库下的t1,t2表,ddd库下的所有表到两个目标端。二 实验步骤2.1 创建专用账号2.1.1 在源端创建账号2.1.1.1 登录其中一个mongos节点创建用户#这里创建一个mongoshake用户,密码是123456use admin;db.createUser({user:"mongoshake",pwd:"123456",roles:[{role:"readWrite",db:"admin"}]});db.grantR.原创 2021-12-30 17:22:27 · 1819 阅读 · 2 评论 -
使用mongo shake实现从一个单实例mongo往多个mongo单实例进行数据同步
一 实验环境二 实验步骤2.1 确保源端mongo已开启oplog可参考单实例MongoDB 如何开启Oplog_雅冰石的专栏-CSDN博客2.2 安装mongoshake在每个目标端都安装mongoshake。2.2.1 下载安装Mongo shake下载地址:Releases · alibaba/MongoShake · GitHubcd /opttar -xvf mongo-shake-v2.4.16.tar.gzmv mongo-shake-v2.4.原创 2021-12-28 15:31:58 · 1004 阅读 · 0 评论 -
使用mongo shake实现单实例mongo之间的数据同步
一 实验环境二 实验步骤2.1 确保源端mongo已开启oplog可参考单实例MongoDB 如何开启Oplog_雅冰石的专栏-CSDN博客2.2 安装mongoshake2.2.1 下载安装Mongo shake下载地址:Releases · alibaba/MongoShake · GitHubcd /opttar -xvf mongo-shake-v2.4.16.tar.gzmv mongo-shake-v2.4.16mongoshakecd..原创 2021-12-28 14:54:00 · 1900 阅读 · 0 评论 -
ERROR: child process failed, exited with error number 14
一 问题描述之前做的用systemctl方式启动mongo,有一次节点被异常终止,同事手动启动mongo的时候没用systemctl方式起,而是用mongod -f 配置文件这种方式启动的。数据库起来了,但是后来想用systemctl方式起,却起不来了,报错:ERROR: child process failed, exited with error number 14我手动用mongo用户执行mongod -f 配置文件也无法启动mongo,也是报一样的错误。二 出错原因同事是用roo原创 2021-12-02 14:00:21 · 3634 阅读 · 0 评论 -
mongod_shard2.service: main process exited, code=killed, status=9/KILL
一 问题描述11月19日中午同事反馈,河南mongo(192.168.192.82-84)业务受影响,当时排查,发现shard3被宕掉了两个进程,shard2被宕掉了一个进程。当时通过启动进程恢复了业务。后听同事说11月20日上午mongo又发生了异常宕机的问题,通过临时启动mongo进程恢复了业务。二 排查思路2.1 查看11月20日哪个mongo进程宕机了#这里通过mongo的启动日期判断发现11月20日宕掉了两个shard2,1个shard3。2.2 .原创 2021-11-26 16:50:58 · 6056 阅读 · 0 评论 -
用systemctl方式启动mongo
之前是这样启动mongo的:/usr/local/mongo/bin/mongod -f /data/mongo/conf/mongod_shard1.conf想将其设置成systemctl方式启动,如systemctl start mongod_shard1。cd/usr/lib/systemd/systemvimongod_shard1.service #注意,service前面的名字可以自定义,如也可以叫mongod或者mongo,这里叫mongod_shard1添加如下内容...原创 2021-03-24 14:38:38 · 2873 阅读 · 2 评论 -
mongo分片集群忘记了管理员密码怎么办
① 注释掉所有config节点,mongos节点,分片节点的密码认证相关信息,示例:#security:# keyFile: /var/lib/mongo/keyFile #authorization: enabled② 重启所有mongo节点③ 新建一个管理员用户:use admin;db.createUser({user:"用户名",pwd:"密码",roles:[{role:"root",db:"admin"}]});④ 取消注释密码认证信息备注:mongos节点需..原创 2021-02-18 14:42:03 · 607 阅读 · 0 评论 -
[initandlisten] Detected unclean shutdown - /var/lib/mongo/mongod.lock is not empty
一 问题描述mongo起不来,日志里有如下报错:2020-12-29T09:31:29.933+0800 W - [initandlisten] Detected unclean shutdown - /var/lib/mongo/mongod.lock is not empty.2020-12-29T09:31:29.933+0800 E NETWORK [initandlisten] Failed to unlink socket file /tmp/mongodb-27017....转载 2020-12-29 09:57:14 · 1472 阅读 · 0 评论 -
nginx怎样代理mongo
在nginx服务器上进行配置:cd /opt/nginx/mkdir tcp.dcd tcp.dvi mongo.server.27017.conf添加:stream {upstream stream_mongo_backend { server 192.168.191.105:27017; server 192.168.191.106:27017; server 192.168.191.107:27017; }server...转载 2020-11-16 10:56:21 · 1272 阅读 · 4 评论 -
mongodb 3.0.4 shell安装卸载脚本
[root@PC download]# cat install_mongo.sh #请记得先将安装包放到/download文件夹下Dir='/download'BaseDir='/usr/local/mongodb'DataDir='/data/mongo'#声明创建用户的sqlsql='db.createUser(\n {\n user: "admin",\n原创 2016-10-25 11:57:37 · 1831 阅读 · 0 评论 -
linux下安装配置mongodb
一:下载下载地址:https://www.mongodb.org/ 二:安装2.1 解压[root@ser6-51 download]# ls -ltrtotal 71552-rw-r--r-- 1 root root 32979820 Jun 15 10:01 mysql-5.6.20.tar.gzdrwxr-xr-x 4 root root 4096原创 2015-06-25 17:54:09 · 4295 阅读 · 1 评论 -
Mongodb副本集配置
一:概念 通俗的讲副本集就是用多台机器进行同一数据的异步同步,从而使多台机器拥有同一数据的多个副本,并且当主库当掉时在不需要用户干预的情况下自动切换其他备份服务器做主库。而且还可以利用副本服务器做只读服务器,实现读写分离,提高负载。二:实验环境 三:实验步骤3.1 下载下载地址:https://www.mongodb.or原创 2015-07-16 11:52:59 · 3170 阅读 · 0 评论 -
"errmsg" : "Our replica set config is invalid or we are not a member of it"
查看副本集状态,报错:> rs.status();{"state" : 10,"stateStr" : "REMOVED","uptime" : 93,"optime" : Timestamp(1478239977, 594),"optimeDate" : ISODate("2016-11-04T06:12:57Z"),"ok" : 0,"errmsg" : "原创 2016-11-07 14:58:21 · 7320 阅读 · 1 评论 -
MongoDB数据文件内部结构
有人在Quora上提问:MongoDB数据文件内部的组织结构是什么样的。随后10gen的工程师Jared Rosoff出来做了简短的回答。每一个数据库都有自己独立的文件。如果你开启了directoryperdb选项,那你每个库的文件会单独放在一个文件夹里。数据库文件在内部会被切分成单个的块,每个块只保存一个名字空间的数据。在MongoDB中,名字空间用于区分不同的存储类别。比如转载 2016-07-08 11:36:29 · 649 阅读 · 0 评论 -
Mongodb分片搭建(单实例)
一:分片介绍这是一种将海量的数据水平扩展的数据库集群系统,数据分表存储在sharding的各个节点上,使用者通过简单的配置就可以很方便地构建一个分布式MongoDB集群。MongoDB 的数据分块称为 chunk。每个 chunk 都是 Collection 中一段连续的数据记录,通常最大尺寸是 200MB,超出则生成新的数据块。要构建一个 MongoDB Sharding C原创 2015-07-17 17:58:35 · 2261 阅读 · 1 评论 -
mongodb模糊查询
LIKE模糊查询userName包含A字母的数据(%A%) SQL:SELECT * FROM UserInfo WHERE userName LIKE "%A%" MongoDB:db.UserInfo.find({userName :/A/}) LIKE模糊查询userName以字母A开头的数据(A%)。 SQL:SELE转载 2016-11-23 16:13:12 · 2389 阅读 · 0 评论 -
Mongodb 副本集
摘要:近年来,NoSQL数据库已得到了长足的发展,更成为了许多机构追求性能的第一选择,而在这些技术堆栈中,MongoDB无疑是人气最高的一个,这里为大家分享高可用MongoDB集群的搭建。【编者按】传统的关系数据库具有不错的性能及稳定性,同时,久经历史考验,许多优秀的数据库沉淀了下来,比如MySQL。然而随着数据体积的爆发性增长,数据类型的增多,许多传统关系数据库扩展难的特点也爆发了出转载 2015-07-15 10:44:24 · 4900 阅读 · 0 评论 -
MongoDB运行状态、性能监控,分析
这篇文章的目的是让你知道怎么了解你正在运行的Mongdb是否健康。mongostat详解mongostat是mongdb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。它的输出有以下几列:inserts/s转载 2015-08-06 13:30:45 · 1133 阅读 · 0 评论 -
mongodb集群重构,释放磁盘空间
mongodb集群重构,释放磁盘空间原创 2016-11-07 16:35:27 · 4089 阅读 · 0 评论 -
MongoDB的存储结构及对空间使用率的影响
使用MongoDB一段时间的同学肯定会发现,MongoDB往往会占用比实际数据大小多不少空间的问题。如果利用db.stats()命令去查看,会发现MongoDB会报告几种不同的空间大小信息,如dataSize, storageSize以及fileSize。这些大小到底指的是什么意思呢?让我们来通过了解MongoDB的存储机制来解析这几个数值的含义。数据库文件类型MongoDB的数据转载 2016-11-08 14:26:08 · 699 阅读 · 0 评论 -
MongoDB水平分片集群学习笔记
为何需要水平分片1 减少单机请求数,将单机负载,提高总负载2 减少单机的存储空间,提高总存空间。下图一目了然:mongodb sharding 服务器架构简单注解:1 mongos 路由进程, 应用程序接入mongos再查询到具体分片。2 config server 路由表服务。 每一台都具有全部chunk的路由信息。3 shard为数据存储分片转载 2016-07-08 12:56:43 · 1365 阅读 · 1 评论 -
MongoDB的group分组
测试条件:Windows+MongoDB 1.8.2先插入测试数据:for(var i=1; i var num=i%6; db.test.insert({_id:i,name:"user_"+i,age:num});}1.普通分组查询db.test.group({key:{age:true},initial:{n转载 2016-11-23 15:08:22 · 448 阅读 · 0 评论 -
mongodb排序
MongoDB sort()方法在MongoDB中使用使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列。语法sort()方法基本语法如下所示:>db.COLLECTION_NAME.find().sort({KEY:1})实例col 集合中的转载 2016-11-23 15:44:19 · 658 阅读 · 0 评论 -
mongodb启动报错:key are too open
添加参数clusterAuthMode=keyFilekeyFile=/usr/local/mongodb/conf/keyFilers0.keymongodb 启动时报错2016-03-18T10:39:58.889+0800 I CONTROL [main] ***** SERVER RESTARTED *****2016-03-18T10:39:58.918+0转载 2017-07-03 14:31:28 · 4644 阅读 · 0 评论 -
MongoDB oplog详解
MongoDB oplog详解 转文1:oplog简介oplog是local库下的一个固定集合,Secondary就是通过查看Primary 的oplog这个集合来进行复制的。每个节点都有oplog,记录这从主节点复制过来的信息,这样每个成员都可以作为同步源给其他节点。 Oplog 可以说是Mongodb Replication的纽带了。2:副本集数据同步的过程副本集中数据同步的详细过程:Prim...转载 2018-06-15 14:33:57 · 2017 阅读 · 1 评论 -
Mongodb数据更新命令、操作符
一、Mongodb数据更新命令Mongodb更新有两个命令:update、save。1.1update命令update命令格式:db.collection.update(criteria,objNew,upsert,multi)参数说明:criteria:查询条件objNew:update对象和一些更新操作符upsert:如果不存在u转载 2015-07-03 14:56:56 · 727 阅读 · 0 评论 -
Mongodb怎样删除重复记录
有时我们需要删除重复记录,只保留其中一条数据。 一:方法一使用MongoVue,建唯一索引的时候可以同时勾选Drop Duplicate自动去重二:方法二通过类似下面的代码:原创 2015-09-18 13:22:51 · 5317 阅读 · 0 评论 -
Mongodb怎样将查询结果放到变量里,并打印出来
#示例将sysTerminalFile表按fname分组,查找出重复的fnameuse dba;rs=db.sysTerminalFile.aggregate([{$group:{_id:"$fname",count:{$sum:1} } },{$match:{count:{$gt:1}}}])while(rs.hasNext()) { printjson原创 2015-09-18 10:50:57 · 10490 阅读 · 3 评论 -
mongodb怎样导出数据为csv或者txt格式
示例:--导出csv格式:mongoexport -h 192.168.6.52 --port 8000 --username root --csv --password mongo123 --collection a --fields _id --out /download/a.csv --db dba --authenticationDatabase admin --query原创 2015-08-14 15:11:22 · 4788 阅读 · 0 评论 -
could not verify config servers were active and reachable before write
启动mongos时,config server的配置信息不得使用localhost、127.0.0.1,否则添加其它机器的shard时,会出现错误提示:"can’t use localhost as a shard since all shards need to communicate. either use all shards and configdbs in localhost or转载 2015-07-21 16:56:56 · 2585 阅读 · 0 评论 -
Mongodb执行脚本进行初始化
有时候,初始化数据时,命令条数太多,直接复制insert语句,粘贴到命令行里执行的话,挺慢的(时间全花在粘贴上面了),所以把语句都放入脚本里执行,比较方便些。假如,用js脚本,不能识别use 数据库名称,会报错:SyntaxError: Unexpected identifier at a.js。所以,这里建一个4.sh脚本,脚本内容:use dba;db.a.insert({"_原创 2015-08-25 14:07:59 · 8243 阅读 · 0 评论 -
rs.initiate(config); {"ok" : 0, "errmsg" : "couldn't initiate : need all members up to initiate, not
一:问题描述今天在初始化mongodb副本集时报错:[root@ser6-51 ~]# mongoMongoDB shell version: 2.6.9connecting to: test> use admin;switched to db admin > config = { _id:"MyReplset", members:[... {_i原创 2015-07-15 16:13:03 · 6098 阅读 · 0 评论 -
让mongodb的secondary支持读操作
对于replica set 中的secondary 节点默认是不可读的。在写多读少的应用中,使用Replica Sets来实现读写分离。通过在连接时指定或者在主库指定slaveOk,由Secondary来分担读的压力,Primary只承担写操作。如果通过shell访问mongo,要在secondary进行查询。会出现如下错误:imageSet:SECONDARY> db.fs.fi转载 2015-07-16 10:06:01 · 4494 阅读 · 0 评论 -
"errmsg" : "not authorized on admin to execute command { $eval: \"return 1111\" }"
not authorized on test to execute command-MongoDB的权限配置直接报Command '$eval' failed: not authorized on这个错误,可以确认是权限的问题解决方案:在官网 http://docs.mongodb.org/manual/reference/command/eval/#dbcmd.eval 有转载 2015-07-10 18:54:54 · 17019 阅读 · 0 评论 -
Mongodb备份恢复(mongodump,mongorestore方式)
一:备份1.1 备份所有数据库[root@ser6-52 mongodbbackup.bak]# mongodump -u superuser -p 123456 --authenticationDatabase admin -o /backup/mongodb/full_bak_201507021651.bakconnected to: 127.0.0.12015-07-02T16原创 2015-07-03 14:53:11 · 11374 阅读 · 5 评论 -
Mongodb索引
一、索引基础: MongoDB的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的优化技巧。下面是创建索引的命令: > db.test.ensureIndex({"username":1}) 可以通过下面的名称查看索引是否已经成功建立: > db.test.getIndexes() 删除索引的命令是: > db.test.dro转载 2015-07-02 18:27:50 · 644 阅读 · 0 评论 -
Error creating index admin.system.version: 13 err: "not authorized to create index on admin.system.v
一:问题描述今天在做全库恢复的时候报错:[root@ser6-52 myTest]# mongorestore -u superuser -p 123 --authenticationDatabase admin /backup/mongodb/full_bak_201507021651.bak/connected to: 127.0.0.12015-07-02T17:原创 2015-07-03 09:59:09 · 2519 阅读 · 0 评论 -
如何通过shell脚本操作MongoDB
例如:我想查询下有哪些数据库[root@ser6-51 dandan]# vi g.sh添加:sql="show dbs"echo $sql | mongo -u superuser -p 123456 admin--shell[root@ser6-51 dandan]# sh g.shMongoDB shell version: 3.0.4connec原创 2015-07-01 15:07:49 · 5797 阅读 · 4 评论 -
Failed: error connecting to db server: server returned error on SASL authentication step: Authentica
一:问题描述备份时,报错:[root@ser6-51 ~]# mongodump -d myTest -o /backup/mongodb/all_bak_20150619.bak -u=superuser -p=1234562015-06-29T10:17:10.784+0800 Failed: error connecting to db server: server ret转载 2015-06-29 10:43:55 · 17890 阅读 · 0 评论