• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!
为什么推荐InnoDB引擎使用自增主键?

为什么推荐InnoDB引擎使用自增主键?

在使用 InnoDB 存储引擎时,如果没有特别的需要,请永远使用一个与业务无关的自增字段作为主键,除非高并发写入操作可能需要衡量自增主键或有业务安全性要求,后面会讲。 经常看到有帖子或博客讨论主键选择问题,有人建议使用业务无关的自增主键,有人觉得没有必要,完全可以使用如学号或身份证号这种唯一字段作为主键。不论支持哪种论点,大多数论据都是业务层面的。如果从数据……

MySQL使用profile分析SQL语句执行过程

MySQL使用profile分析SQL语句执行过程

分析SQL执行带来的开销是优化SQL的重要手段。在MySQL数据库中,可以通过配置profiling参数来启用SQL剖析。该参数可以在全局和session级别来设置。对于全局级别则作用于整个MySQL实例,而session级别紧影响当前session。该参数开启后,后续执行的SQL语句都将记录其资源开销,诸如IO,上下文切换,CPU,Memory等等。根据这……

关于MongoDB连接数运维

关于MongoDB连接数运维

使用 MongoDB 时,可能会遇到因为 mongod 连接数用满了,导致客户端无法连接的问题。mongod 的最大连接数通过net.maxIncomingConnections指定,默认值为 1000000,相当于没有限制,生产环境强烈建议根据实际需求配置,以避免客户端误用导致 mongod 负载过高。 为什么需要限制连接数? 连接是要消耗资源的,而且消耗……

MySQL 5.7:自动回收UNDO表空间

MySQL 5.7:自动回收UNDO表空间

undo log segment(undo segment) Undo Logs 合集。undo segment 可以被重复使用,但是一次只能由一个事务占用。 rollback segment 也就是 Undo Logs 的物理存储区域。 undo tablespace rollback segment 被从系统表空间里分离出来后的实际磁盘文件表……

Redis Cluster迁移遇到的各种坑及解决方案

Redis Cluster迁移遇到的各种坑及解决方案

作者:董泽润【高级DBA】【我把迁移工具从redis-port换成redis-migrate-tool】 2010—2012年在搜狐畅游,负责游戏Mysql相关的运维。 2012—2015年在赶集网担任DBA,负责整个数据库团队的建设,主要研究 Mysql、Redis、MongoDB 等技术。 2015—至今在一家图片社交公司,专注于 Redis 的运维和自……

MySQL参数innodb_fast_shutdown&innodb_force_recovery介绍

MySQL参数innodb_fast_shutdown&innodb_force_recovery介绍

innodb_fast_shutdown innodb_fast_shutdown告诉 InnoDB 在它关闭的时候该做什么工作。 有三个值可以选择(默认值为1): 0:表示在 InnoDB 关闭的时候,需要 purge all,merge insert buffer,flush dirty pages。这是最慢的一种关闭方式,但是restart的时候也是……

MongoDB最佳实践-持续更新版

MongoDB最佳实践-持续更新版

本文包括以下几个方面: – 安全措施 – 部署架构 – 系统优化 – 索引设计 – 备份监控 – 模式设计 – 程序配置 一、安全措施 1.1 为MongoDB集群启用认证鉴权 MongoDB服务器在默认安装下不启用鉴权。这意味着每个人都可以直接连接到mongod实例并执行任……

MongoDB复制集成员状态转换

MongoDB复制集成员状态转换

MongoDB一共有10种状态,官方将其分为3大类,核心状态(Core States)为三种成员类型对应的属性(PRIMARY/SECONDARY/ARBITER),还有7种属性,被分为其他状态(Other States)和错误状态(Error States)两类。 核心状态(Core States) RPIMARY SECONDARY ARBITER 其他……

MongoDB复制集同步慢问题分析

MongoDB复制集同步慢问题分析

案例一 一、问题背景 最近生产环境出现多次Primary写入QPS太高,导致Seconary的同步无法跟上的问题(Secondary上的最新oplog时间戳比Primary上最旧oplog时间戳小),使得Secondary变成RECOVERING状态,这时需要人工介入处理,向Secondary发送resync命令,让Secondary重新全量同步一次。 二、……

MongoDB 3.4复制集全量同步改进

MongoDB 3.4复制集全量同步改进

一、MongoDB副本集数据同步方式 intial sync,可以理解为全量同步。 replication,追同步源的oplog,可以理解为增量同步。 下面会详细介绍MongoDB数据同步的实现原理。 initial sync Secondary节点当出现如下状况时,需要先进行全量同步。 oplog为空。 local.replset.minvalid集……

MySQL Group Commit

MySQL Group Commit

一、背景 在关系型数据库中,为了满足 ACID 中的D(持久性)属性,也就是说事务提交并且成功返回给客户端之后,必须保证该事务的所有修改都持久化了,无论是在数据库程序崩溃的情况下或者是数据库所在的服务器发生宕机或者断电的情况下,都必须保证数据不能丢失。这就要求数据库在事务提交过程中调用 fsync 或 fdatasync 系统调用将数据持久化到磁盘,现代数据……

Redis Cluster增加删除节点(二)

Redis Cluster增加删除节点(二)

一、Redis Cluster增加删除节点 Redis cluster技术应用实践(一) 前面介绍了redis-trib.rb是使用CLUSTER MEET命令来使每个节点认识集群中的其他节点的,可想而知如果想要向集群中添加新的节点,也需要使用CLUSTER MEET命令来实现。加入新节点非常简单,只需要向新节点发送如下命令即可: ……