- 博客(102)
- 收藏
- 关注
原创 mongo修改字段类型
db.AdditionalTimes.find({"uid":{$type:18}}).forEach(function(x){x.uid=String(x.uid);db.AdditionalTimes.save(x)})如上是将NumberLong类型转换为string类型类型对照图如下Type Number Alias Notes Double 1 ...
2019-10-31 21:19:22
824
转载 快速查询oplog
MongoDB oplog (类似于 MySQL binlog) 记录数据库的所有修改操作,除了用于主备同步;oplog 还能玩出很多花样,比如全量备份 + 增量备份所有的 oplog,就能实现 MongoDB 恢复到任意时间点的功能通过 oplog,除了实现到备节点的同步,也可以额外再往单独的集群同步数据(甚至是异构的数据库),实现容灾、多活等场景,比如阿里云开源的 MongoShake...
2019-10-15 10:31:27
1148
原创 mongodb update拼接多字段
db.collection.find({"_id" : ObjectId("5d60ac1366aadbbbfdec8b7a")}).forEach(function(item){ db.collention.update( {"_id":item._id}, { $set : { "tasktypeIds" : item.mainTasktypeId + "_" + item.subTaskty...
2019-09-17 19:22:09
2398
转载 MongoDB wiredTiger存储引擎下的存储方式LSM和B-Tree比较
前段时间做拦截件监控的时候把拦截件生命期存入mongodb,因生命期有各种变化,因此对此表的更新写操作非常多,mongodb目前已经支持lsm存储方式了。原文如连接:https://github.com/wiredtiger/wiredtiger/wiki/Btree-vs-LSM文中对比了LSM和B-Tree的读写吞吐量,在单线程写操作下和多线程读操作下的差异。英文差的小伙伴别指望我这个...
2019-05-31 10:58:21
730
原创 mongodb group by 统计
db.tablename.aggregate([ {"$group" : {_id:"$fieldname", count:{$sum:1}}} ])
2019-05-20 17:03:35
3970
1
原创 升级mongodb时出现The data files need to be fully upgraded
再将3.4升级到3.6的时候出现The data files need to be fully upgraded提示,原因是这个库是从3.2先升级到3.4的,需要手动设置版本为3.4命令如下> use admin switched to db admin > db.adminCommand( { setFeatureCompatibilityVersion: "3.4" ...
2019-05-14 20:39:12
878
转载 mongodb在线修改cachesize
db.adminCommand({setParameter: 1, wiredTigerEngineRuntimeConfig: "cache_size=8G"})
2019-05-05 17:53:22
3069
原创 客户端显示mongodb数据库列表
mongo --eval 'rs.slaveOk();db.getMongo().getDBNames();'
2018-10-17 15:09:57
697
原创 查看mongodb索引被使用的次数
版本要求>3.2db.tablename.aggregate( [ { $indexStats: { } } ] )官网地址:https://docs.mongodb.com/manual/reference/operator/aggregation/indexStats/
2018-08-09 16:25:34
2888
1
转载 mongodb分片备注
关于负载均衡MongoDB Sharded cluster 的自动负载均衡目前是由 mongos 的后台线程来做的,并且每个集合同一时刻只能有一个迁移任务,负载均衡主要根据集合在各个 shard 上 chunk 的数量来决定的,相差超过一定阈值(跟 chunk 总数量相关)就会触发chunk迁移。负载均衡默认是开启的,为了避免 chunk 迁移影响到线上业务,可以通过设置迁移执行窗口,比如...
2018-07-17 14:14:20
211
原创 Mongodb版本升级步骤(2.6升级到3.2)
1、修改secondary端口及关闭replset。2、启动改secondary。3、登陆primary访问这台验证兼容性db=connect("secondary:port/dbname");>use admin>db.upgradeCheckAllDBs()4、用最新版本的mongodb的bin目录替换老的。5、还原secondary配置,并重启。6、修改secondary的配置文...
2018-07-09 17:59:59
5710
转载 MongoDB副本集的常用操作及原理
本文是对MongoDB副本集常用操作的一个汇总,同时也穿插着介绍了操作背后的原理及注意点。结合之前的文章:MongoDB副本集的搭建,大家可以在较短的时间内熟悉MongoDB的搭建和管理。下面的操作主要分为两个部分:1. 修改节点状态 主要包括: 1> 将Primary节点降级为Secondary节点 2> 冻结Secondary节点 3> 强制Secon...
2018-06-21 17:36:28
916
转载 什么场景应该用 MongoDB ?
很多人比较关心 MongoDB 的适用场景,也有用户在话题里分享了自己的业务场景,比如案例1> 1. 用在应用服务器的日志记录,查找起来比文本灵活,导出也很方便。也是给应用练手,从外围系统开始使用MongoDB。2. 用在一些第三方信息的获取或者抓取,因为MongoDB的schema-less,所有格式灵活,不用为了各种格式不一样的信息专门设计统一的格式,极大得减少开发的工作。案例2>...
2018-06-19 16:20:20
490
转载 MongoDB CPU 利用率高,怎么破?
经常有用户咨询「MongoDB CPU 利用率很高,都快跑满了」,应该怎么办?遇到这个问题,99.9999% 的可能性是「用户使用上不合理导致」,本文主要介绍从应用的角度如何排查 MongoDB CPU 利用率高的问题Step1: 分析数据库正在执行的请求用户可以通过 Mongo Shell 连接,并执行 db.currentOp() 命令,能看到数据库当前正在执行的操作,如下是该命令的一个输出示...
2018-05-24 16:47:07
1555
原创 MongoDB 3.6的一些新特性介绍
一、安全方面: 1、bind_ip为了安全考虑,MongoDB 3.6中bind_ip的默认值为localhost,可通过启动命令或者配置文件绑定需访问的ip地址 2、MONOGDB-CR认证建议在3.6版将认证机制MONOGDB-CR更新为SCRAM,后续的版本将不再支持MONOGDB-CR 3、认证限制① 在db.createuser()、db.updateuser() 、db.creater...
2018-04-20 16:16:07
3715
原创 MongoDB的一些性能监控指标介绍
MongoDB的性能指标可关注如下命令1、Mongostat2、Mongotop3、db.serverStatus()4、db.stats()5、db.collection.stats()6、rs.status()7、sh.status()其中db.stats9),db.collection.stats(),rs.status(),sh.status()分别记录的是库、表、复制集、分片的实时状态,...
2018-04-17 16:55:31
11212
原创 pmm安装步骤
环境:centos7server端1、安装docker yum install docker-io -y2、启动docker service docker start3、pull最新的安装包 docker pull percona/pmm-server:latest4、创建容器的数据磁盘docker create \ -v /opt/prometheus...
2018-04-12 20:42:35
2766
原创 MongoDB 应用场景、避坑事项与最佳实践
1、如何学习MongoDB?MongoDB日趋流行,作为一个开发/运维,如何快速上手MongoDB?或者有哪些推荐的学习MongoDB的方式?写在最前:请使用mongodb 3.2或以上版本进行学习,或者直接从3.4开始。另外,百度出来的中文资料,请查看15年及以后的信息,可以少走很多弯路。另外,建议使用linux系统进行学习,方便排错。英文比较好的小伙伴:如果英语不好,建议先...
2018-04-02 11:09:45
31365
1
原创 mongodb使用备注
最近在研究mongodb,使用中踩的坑,记录如下1、过期删除expireAfterSeconds只能支持单索引,复合索引并不支持,且只支持date类型的,unix时间戳不支持。2、3.0版本之后添加索引条件dropDups:true已经不支持,我后来采用的是mongoimport -d database_name -c collection_name --upsert filename.j...
2018-03-30 10:35:22
2096
转载 MongoDB dropDatabse 后,数据能恢复么
最近好几个社区用户咨询,错误的执行了 dropDatabse 把数据库误删除了(或 dropCollection 误删集合),有什么方法能恢复数据?本文主要介绍几种可能有效的恢复方案。方案1:通过备份集恢复如果对 MongoDB 做了全量备份 + 增量备份,那么可以通过备份集及来恢复数据。备份可以是多种形式,比如通过 mongodump 等工具,对数据库产生的逻辑备份拷贝 dbpath 目录产生的...
2018-03-29 14:32:53
989
1
原创 一个带复杂查询条件的mongoexport/mongodump需求
业务需要根据条件导出一个已经有80亿数据的mongodb,条件如下:1、url字段not like某连接地址。2、createDate在某时间范围内。这样mongoexport/mongodump 的--query就没法满足需求了。我用了--queryFile这个参数,具体的file内容如下:{ "url": {$not:/common.xxxxx.com.cn\/webapp/}, "creat...
2018-03-21 15:49:25
5542
原创 定时删除过期文件
crontab -e放入以下内容,保存退出0 23 * * * find /share/fax/change -mtime +7 -print|xargs rm -rf
2018-03-19 17:36:37
1194
原创 用ycsb测试mongodb性能
ycsb版本:0.12.0mongodb版本:3.4.4/3.6.3安装步骤参照:https://github.com/brianfrankcooper/YCSB/blob/master/README.mdload数据:./bin/ycsb load mongodb -s -P workloads/s1 -p mongodb.url=mongodb://test:test@localhost:80...
2018-03-14 10:53:58
1888
原创 mysqlbinlog日志delete转成insert脚本
cat hf.txt | sed -n '/###/p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/INSERT INTO/g;s/WHERE/SELECT/g;' |sed -r 's/(@17.*),/\1;/g' | sed 's/@[1-9]=//g' | sed 's/@[1-1][0-7]=//g'
2018-03-01 18:12:33
2946
原创 net_write_timeout参数
net_write_timeoutThe number of seconds to wait for a block to be written to a connection before aborting the write.如果一个sql时间过长就会很容易发生中断,就是这个参数导致的
2018-01-04 18:09:36
12397
2
转载 binlog2sql:从MySQL binlog得到你要的SQL
从MySQL binlog得到你要的SQL。根据不同设置,你可以得到原始SQL、回滚SQL、去除主键的INSERT SQL等。用途数据回滚主从切换后数据不一致的修复从binlog生成标准SQL,带来的衍生功能安装$ git clone https://github.com/danfengcao/binlog2sql.git$ pip install -r
2018-01-03 17:58:17
394
原创 mongodb添加zabbix监控UserParameter
UserParameter=MongoDB.status[*],/bin/echo "db.serverStatus().$1" | /usr/local/mongodb/bin/mongo --port $2 | sed 's/}/,/' | xargs | sed s/[[:space:]]//g | grep -oP '(?$1$2$3 替换成对于的参数
2017-11-21 15:42:28
700
原创 使用binary在sql查询中区分大小写
RTselect * from table where binary column like "%x";
2017-11-07 17:30:52
759
转载 kafka入门:简介、使用场景、设计原理、主要配置及集群搭建
问题导读:1.zookeeper在kafka的作用是什么?2.kafka中几乎不允许对消息进行“随机读写”的原因是什么?3.kafka集群consumer和producer状态信息是如何保存的?4.partitions设计的目的的根本原因是什么? 一、入门 1、简介 Kafka is a distr
2017-10-26 01:08:44
288
转载 linux中fuser用法详解
fuser功能 fuser 可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息. fuser显示使用指定文件或者文件系统的进程ID.默认情况下每个文件名后面跟一个字母表示访问类型。 访问类型如下: c 代表当前目录 e 将此文件作为程序的可执行对象使用 f 打开的文件。默认不显示。 F 打开的文件,用于写操作。默认不显
2017-10-17 15:29:02
1243
原创 自助搭建mysql-canal-kafka通道
该canal集成了java,无须繁琐的安装,直接配置几个参数即可实现mysql-canal-kafkaMysql 环境配置建议的 mysql 版本为 mysql5.5.39 或 mysql5.7.17 以上。一、binlog 格式设置调整 mysql 参数至如下即可。mysql> show variables like 'binlog_format';+---
2017-10-17 11:45:02
7526
原创 mysql key_len各种字段类型计算公式
char和varchar类型key_len计算公式:varchr(N)变长字段且允许NULL = N * ( character set:utf8=3,gbk=2,latin1=1)+1(NULL)+2(变长字段)varchr(N)变长字段且不允许NULL = N * ( character set:utf8=3,gbk=2,latin1=1)+2(变长字段)char(N)固定字段且
2017-10-10 16:27:31
997
1
原创 cannot find command 'hg'
mac下python3安装pygame提示如下错误 Error [Errno 2] No such file or directory: 'hg' while executing command hg clone --noupdate -q http://bitbucket.org/pygame/pygame /private/var/folders/cx/hvl30mc16pv12s3vgp
2017-09-28 15:52:55
2777
原创 莫名的一个mysql耗时记录
开发日志中突然会报个几百毫秒的数据库超时,看sql还是主键查询的,去中间件dbproxy日志中查看sql记录又是正常的,折腾几日无果,很是蛋疼。最终发现是开发auth服务命中了fastjson的一个bug,导致cpu处理有问题,升级fastjson后问题解决。
2017-08-31 11:17:29
334
转载 数据库阿里连接池 druid配置详解
Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,有不得不使用数据库连接池。数据库连接池有很多选择,c3p、dhcp、proxool等,druid作为一名后起之秀,凭借其出色的性能,也逐渐印入了大家的眼帘。接下来本教程就说一下druid的简单使用。首先从 http://repo1.maven.org/maven2/com/alibaba/druid/ 下载最新的jar包。如
2017-06-21 11:19:03
1398
转载 /etc/fstab 文件解释
文件fstab包含了你的电脑上的存储设备及其文件系统的信息。它是决定一个硬盘(分区)被怎样使用或者说整合到整个系统中的唯一文件。这个文件的全路径是/etc/fstab。它只是一个文本文件,你能够用你喜欢的编辑器打开它,但是必须是root用户才能编辑它。同时fsck、mount、umount的等命令都利用该程序。具体来说:用fstab可以自动挂载各种文件系统格式的硬盘、分区、可移动设
2017-05-19 12:08:07
271
转载 趣谈unicode,ansi,utf-8,unicode big endian这些编码有什么区别
从头讲讲编码的故事。那么就让我们找个草堆坐下,先抽口烟,看看夜晚天空上的银河,然后想一想要从哪里开始讲起。嗯,也许这样开始比较好……很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。 再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他
2017-05-16 17:50:02
349
转载 高性能MySQL系统思维导图
构建高性能MySQL系统涵盖从单机 硬件,os ,文件系统,内存,到MySQL 本身的配置,以及schema 设计,索引设计 ,再到数据库架构上的水平和垂直拓展。
2017-05-12 15:49:09
5466
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人