
MongoDB
PostgreSQL运维技术
这个作者很懒,什么都没留下…
展开
-
MongoDB之稀疏索引
稀疏索引(或者称间隙索引):sparse index, 就是只包含有索引字段的文档的条目,跳过索引键不存在的文档。比如如下所示条目:<span style="color:#000000"><span style="background-color:#ffffff"><code><span style="color:#e6c07b">test</span>:PRIMARY>db.scores.<span style="co...原创 2022-01-10 16:35:22 · 1206 阅读 · 0 评论 -
MongoDB之rotate log
当mongodb实例启动时指定logpath或systemLog.path参数,mongod和mongos实例将向日志文件中持续的记录数据库的活动日志。而MongoDB默认情况下不会自动的切换日志的,这将会导致服务日志日渐增大,在业务繁忙的场景,日志的增长量会非常大。持续增长的日志文件,不仅占用系统磁盘,并且还会拖慢服务器的运行速度。所以我们需要能对服务日志进行日志切换。在MongoDB中,切换日志的触发条件有两种:1、admin库下执行logRotate命令。useadmin...原创 2021-11-11 19:45:29 · 1272 阅读 · 0 评论 -
python json.dumps 中文
我们知道python 中json.dumps()函数用于将一个Python数据类型列表进行json格式的编码,换句话说json.dumps()函数是将字典转化为字符串。比如:import jsondic = {"name":"James"}print(json.dumps(dic))但是如果dict中包含中文,输出的str就是保护乱码的字符串。如:import jsondic = {"name":"哈哈"}print(json.dumps(dic))'''输出..原创 2021-10-08 17:01:14 · 3129 阅读 · 0 评论 -
MongoDB objectId和时间互相转换
MongoDB默认使用_id字段作为主键,类型为ObjectID。Objectid的生成一定的规则,Objectid有12位: 前4位是时间戳 中间5位是随机值 后3位是递增计数器 基于这个特性,我们可以通过_id字段的值来还原当时的时间。import timefrom bson.objectid import ObjectIdimport datetimedef time2id(from_datetime=None, time_delta=None):原创 2021-09-23 18:09:33 · 2956 阅读 · 0 评论 -
MongoDB : applyOps: not authorized on admin to execute command
参考:https://stackoverflow.com/questions/55208028/mongodb-applyops-not-authorized-on-admin-to-execute-command解决:use admindb.createRole( { role: "interalUseOnlyOplogRestore", privileges: [ { resource: { anyResource: true }, action原创 2021-07-26 11:21:45 · 366 阅读 · 0 评论 -
Mongo shell不会解析连接串中的readPreference参数
可见issue:https://jira.mongodb.org/browse/SERVER-48769如题,mongo shell不会解析连接串中的readPreference参数。比如:启动一个mongo shell,在URI中设置readPreference=secondary的。提示符显示它连接到主服务器。./mongo "mongodb://xxx@xxxx@host1:27017,host2:27017,host3:27017/admin?replicaSet=r原创 2021-07-22 10:00:16 · 1061 阅读 · 0 评论 -
centOS 安装MongoDB客户端
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.6.tgzcd /usr/local解压sudo tar -zxvf /tmp/mongodb-linux-x86_64-4.0.6.tgz重命名sudo mv mongodb-linux-x86_64-4.0.6 mongodb使用mongo客户端cd /usr/local/mongodb/bin./mongo "mongodb://xxx:xx.原创 2021-07-19 19:58:08 · 1905 阅读 · 0 评论 -
mongodb单机实例开启oplog
参考:https://www.cnblogs.com/xuliuzai/p/9643128.htmlMongoDB的副本集有一个数据结构oplog,里面存储了primary节点所有写操作。但是单实例没有这个结构,那么单台MongoDB实例怎么开启oplog?方法:以副本集方式启动实例,在local数据库或admin数据库执行初始化副本集的脚本,rs.initiate()。一、以副本集方式启动实例:添加副本集参数(replSet=??)比如:./mongod --dbpath /u原创 2021-07-07 18:22:54 · 1230 阅读 · 0 评论 -
pymongo date类型处理
query = '{ "ord_date": { "$gte": { "$date": "2020-03-20T" } } }'改写json_util.loads方法,使之json_util.dumps("")原创 2021-06-10 10:02:58 · 871 阅读 · 0 评论 -
pymongo json_util
参考:https://pymongo.readthedocs.io/en/stable/api/bson/json_util.html原创 2021-06-08 15:26:13 · 352 阅读 · 0 评论 -
连接mongodb失败,密码有特殊字符
解决:将特殊字符改16进制进行URL编码 。例如:原密码是: ?en;yegYZ8#/5'bp|vggurl编码后为:%3Fen%3ByegYZ8%23/5%27bp%7Cvgg再次测试连接,连接成功。另外:python url编码和解码的方法from urllib import parsestr1 = "?en;yegYZ8#/5'bp|vgg"str2 = parse.quote(str1)print(str2)str3 = parse.unquote(st.原创 2021-05-20 10:33:06 · 870 阅读 · 0 评论 -
mongodb启用auth,使用密码登录
1、安装mongodb。 mongodb安装见:https://blog.youkuaiyun.com/qq_35462323/article/details/1167106532、安装完成之后,启动mongod服务:mongod --dbpath /usr/local/var/mongodb --logpath /usr/local/var/log/mongodb/mongo.log --fork也可指定配置文件启动。mongod.conf#数据文件存放目录dbpath = /usr/loc原创 2021-05-18 15:27:28 · 9056 阅读 · 0 评论 -
Mac 安装 MongoDB
参考:https://www.runoob.com/mongodb/mongodb-osx-install.html1、使用curl命令安装# 进入 /usr/localcd /usr/local# 下载sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-4.0.9.tgz# 解压sudo tar -zxvf mongodb-osx-ssl-x86_64-4.0.9.tgz# 重命名为 mongod原创 2021-05-12 15:50:20 · 420 阅读 · 1 评论 -
Nosql数据库分类
NoSQL:泛指非关系型数据库,NoSQL数据库的四大分类:键值(key-value)存储数据库:这一类数据库主要会使用到一个哈希表,这个表中有个特定的键和一个指针指向特定的数据。如Redis列存储数据库:通常是用来应对分布式存储的海量数据。键仍然存在,但是它的特点是指向了多个列。如HBase。文档型数据库:该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看做是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。图形数据库:图形结构原创 2020-09-04 19:37:58 · 682 阅读 · 0 评论 -
MongoDB报Our replica set config is invalid or we are not a member of it的错
如果mongo实例通过reconfig将host移除副本集,这时候再用host连接实例,则会报:Our replica set config is invalid or we are not a member of it原创 2019-07-18 17:09:37 · 4581 阅读 · 0 评论 -
MongoDB分片
MongoDB分片MongoDB 集群部署形态。mongos起到路由功能,功能供程序连接。在启动时从配置服务器加载集群信息,开启mongos进程需要知道配置服务器的地址,指定configdb选项。cs保存集群和分片的元数据。即各分片(shard)包含哪些数据信息等。Shard是存储了集合部分数据的MongoDB实例。其工作模式大致是应用程序通过mongos路由到cs中取元数据,然后通过元数据到...原创 2018-08-24 12:28:42 · 291 阅读 · 0 评论 -
游戏采用MongoDB的好处
参考网上的某篇文章。。1、适应游戏灵活多变的需求。游戏的特点是需求变化快,为了保持玩家的新鲜感,需要不停的往游戏中注入新的元素。假如使用传统的关系型数据库来存放这些数据,可能面临需要经常做表结构修改的ddl操作。MongoDB的schema-free的特性,可以使用户避免这样的问题。schema-free使数据库中的表(集合)内包含不同结构的文档。此外,MongoDB使用类JSon格式...原创 2018-09-21 20:19:17 · 4737 阅读 · 1 评论 -
MongoDB 的db.shutdownServer()
Shuts down the current mongod or mongos process cleanly and safely.This operation fails when the current database is not the admin database.This command provides a wrapper around the shutdown comm...原创 2018-10-18 10:46:43 · 2824 阅读 · 0 评论 -
MongoDB的一致性——Raft
概述Raft : raft is a consensus algorithm for managing a replicated log.分布式存储系统通常通过维护多个副本来进行容错,提高系统的可用性。要实现此目标,就必须要解决分布式存储系统的最核心问题:维护多个副本的一致性。一致性(consensus): 它是构建具有容错性(fault-tolerant)的分布式系统的基础。 在一个...原创 2018-11-13 17:37:31 · 2892 阅读 · 0 评论 -
MongoDB查看主备延迟
查看主备延迟一是可以通过printSlaveReplicationInfo()来获得。二是可以通过rs.status()命令,查看副本集同步状态。打印出各个副本的optime(该节点最后一条操作执行时间)。secondary和primary之间的时间差,可以认为是同步延迟。Secondary和Primary之间的同步差,最大不能超过Primary的oplog能存储的条数。...原创 2018-11-12 09:59:52 · 7833 阅读 · 0 评论 -
MongoDB的reconfig命令
reconfig命令用于重新配置现有副本集,覆盖现有副本集配置。 要运行该方法,必须连接到副本集的主节点。在某些情况下,rs.reconfig()方法可以触发当前primary节点降级。 当主节点不存在时,它会强制关闭所有客户端连接。 由于选举新的主节点可能需要一段时间,因此在尽可能在可运维时间执行reconfig命令,以最大限度地减少写入可用性的损失。常见用法1、将节点设置为延迟备...原创 2018-12-19 19:19:07 · 5569 阅读 · 0 评论 -
pymongo ipv6
`host` (optional): hostname or IP address or Unix domain socket path of a single mongod or mongos instance to connect to, or a mongodb URI, or a list of hostnames / mongodb URIs. If `host` is a...原创 2018-12-29 15:22:55 · 508 阅读 · 0 评论 -
以副本集方式连接MongoDB副本集
MongoDB副本集通过维护多份数据副本来保证数据的高可用。相当于主备方式的数据冗余,其提供了自动故障转移的主从复制集群,其中复制集没有固定的主节点,当一个主机的故障后从节点会重新“选举”出一个新的主节点,从而提高的系统的可用性。MongoDB副本集只有Primary节点具有写数据的能力,当副本集中Primary节点宕机,或者副本集本身轮转升级时,副本集会触发选举,选出一个新的primary,原P...原创 2019-02-18 14:29:35 · 8486 阅读 · 0 评论 -
Mongodb 权限控制以及角色使用
参考:http://docs.mongodb.org/manual/reference/built-in-rolesMongoDB通过基于角色的授权授予对数据和命令的访问权限,并提供内置角色,提供数据库系统中通常需要的不同访问级别。 还可以创建用户定义的角色。关键字MongoDB中的权限关键字。要理解清楚MongoDB的权限必须先了解如下一些关键字.user即用户,用于提供...原创 2019-02-28 15:17:18 · 2632 阅读 · 0 评论 -
MongoDB常用命令管理
MongoDB是一个Nosql数据库系统,其提供了DBMS的基本功能和行为。MongoDB命令帮助系统>help db.help() help on db methods db.mycoll.help() help on collection methods sh.he...原创 2019-03-08 11:35:23 · 557 阅读 · 0 评论 -
monogo遍历db.table.find()的结果
find方法使用游标返回查询结果,游标的客户端实现使你可以对最终结果做很多的控制。有两种方法对返回结果进行遍历:1、while (result.hasNext()) { obj = result.next(); }2、result.forEach( function (x) {print(x['_id']);});...原创 2019-04-17 18:00:51 · 1010 阅读 · 0 评论 -
MongoDB报 is not electable under the new configuration的错误
OperationFailure:Thisnode,10.125.9.172:3015,with_id4isnotelectableunderthenewconfigurationversion222091forreplicasetmgset-8816原因:客户端连接了3015,而此时尝试将3015设为Hidden节点。解决:重新以...原创 2019-04-18 17:17:15 · 1977 阅读 · 0 评论 -
MongoDB readAnyDatabase角色
readAnyDatabase角色4.0版本后不再支持local和config库的读权限。若想获得local和config的读权限?解决:在usr下单独添加config和local库的read角色。db.updateUser("dddddd",{roles:[ {role:"read",db:"local"},{role:"readAnyDatabase",db:"admin"} ...原创 2019-06-05 19:39:51 · 2064 阅读 · 0 评论 -
MongoDB报"sharding already enabled for collection xxx"的错误
项目中执行user_cli.admin.command({'shardcollection':'testdb.table2','key':{'id':1}})开启testdb.table2集合分片功能:报:OperationFailure: sharding already enabled for collection testdb.table2 的错误。这时切换到config库...原创 2018-08-23 09:27:51 · 1656 阅读 · 0 评论