上一页 1 2 3 4 5 6 7 ··· 19 下一页
摘要: 最近碰到一个case,值得分享一下。 现象 一个DDL,将列的属性从null调整为not null default xxx, alter table slowtech.t1 modify name varchar(10) not null default 'slowtech'; 通过平台执行(平台调 阅读全文
posted @ 2021-01-30 07:55 iVictor 阅读(4507) 评论(1) 推荐(2) 编辑
摘要: Clone Plugin是MySQL 8.0.17引入的一个重大特性,为什么要实现这个特性呢?个人感觉,主要还是为Group Replication服务。在Group Replication中,添加一个新的节点,差异数据的补齐是通过分布式恢复(Distributed Recovery)来实现的。 在 阅读全文
posted @ 2020-10-15 08:44 iVictor 阅读(2538) 评论(0) 推荐(0) 编辑
摘要: SQL_MODE是MySQL中的一个系统变量(variable),可由多个MODE组成,每个MODE控制一种行为,如是否允许除数为0,日期中是否允许'0000-00-00'值。 为什么需要关注SQL_MODE呢? 首先,看三个简单的Demo(MySQL 5.6)。 1. mysql> create 阅读全文
posted @ 2019-11-04 09:30 iVictor 阅读(7292) 评论(1) 推荐(2) 编辑
摘要: 1. Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host' 阅读全文
posted @ 2019-07-08 15:30 iVictor 阅读(1086) 评论(0) 推荐(1) 编辑
摘要: Redis Cluster采用虚拟槽分区,所有的key根据哈希函数映射到0~16383槽内,计算公式: slot = CRC16(key) & 16383 每个节点负责维护一部分槽以及槽所映射的键值对。 Redis虚拟槽分区的特点,解耦数据与节点之间的关系,简化了节点扩容和收缩难度。但其存在如下限制 阅读全文
posted @ 2019-03-27 22:05 iVictor 阅读(16662) 评论(0) 推荐(3) 编辑
摘要: 对于MySQL的历史,相信很多人早已耳熟能详,这里就不要赘述。下面仅从产品特性的角度梳理其发展过程中的里程碑事件。 1995年,MySQL 1.0发布,仅供内部使用。 1996年,MySQL 3.11.1发布,直接跳过了MySQL 2.x版本。 1999年,MySQL AB公司成立。同年,发布MyS 阅读全文
posted @ 2018-10-18 08:54 iVictor 阅读(33027) 评论(11) 推荐(20) 编辑
摘要: redis-trib.rb是官方提供的Redis Cluster的管理工具,无需额外下载,默认位于源码包的src目录下,但因该工具是用ruby开发的,所以需要准备相关的依赖环境。 准备redis-trib.rb的运行环境 wget https://cache.ruby-lang.org/pub/ru 阅读全文
posted @ 2018-10-11 11:12 iVictor 阅读(38353) 评论(1) 推荐(3) 编辑
摘要: Redis Sentinel是Redis的高可用方案。是Redis 2.8中正式引入的。 在之前的主从复制方案中,如果主节点出现问题,需要手动将一个从节点升级为主节点,然后将其它从节点指向新的主节点,并且需要修改应用方主节点的地址。整个过程都需要人工干预。 下面通过日志具体看看Sentinel的切换 阅读全文
posted @ 2018-10-09 16:55 iVictor 阅读(8876) 评论(0) 推荐(4) 编辑
摘要: 复制 A few things to understand ASAP about Redis replication. 复制的实现 1. 设置主节点的地址和端口 简而言之,是执行SLAVEOF命令,该命令是个异步命令,在设置完masterhost和masterport属性之后,从节点将向发送SLAV 阅读全文
posted @ 2018-10-08 08:48 iVictor 阅读(8287) 评论(0) 推荐(1) 编辑
摘要: RDB RDB是将当前数据生成快照保存到硬盘上。 RDB的工作流程: 1. 执行bgsave命令,Redis父进程判断当前是否存在正在执行的子进程,如RDB/AOF子进程,如果存在bgsave命令直接返回。 2. 父进程执行fork操作创建子进程,fork操作过程中父进程被阻塞。 3. 父进程for 阅读全文
posted @ 2018-10-07 10:16 iVictor 阅读(9118) 评论(0) 推荐(2) 编辑
摘要: 在上一篇文章《MySQL 5.7中如何定位DDL被阻塞的问题》中,对于DDL被阻塞问题的定位,我们主要是基于MySQL 5.7新引入的performance_schema.metadata_locks表。提出的定位方法,颇有种"锦上添花"的意味,而且,也只适用于MySQL 5.7开始的版本。 但在实 阅读全文
posted @ 2018-08-21 21:07 iVictor 阅读(2049) 评论(5) 推荐(2) 编辑
摘要: 在上篇文章《MySQL表结构变更,不可不知的Metadata Lock》中,我们介绍了MDL引入的背景,及基本概念,从“道”的层面知道了什么是MDL。下面就从“术”的层面看看如何定位MDL的相关问题。 在MySQL 5.7中,针对MDL,引入了一张新表performance_schema.metad 阅读全文
posted @ 2018-08-14 10:36 iVictor 阅读(5114) 评论(0) 推荐(3) 编辑
摘要: 在线上进行DDL操作时,相对于其可能带来的系统负载,其实,我们最担心的还是MDL其可能导致的阻塞问题。 一旦DDL操作因获取不到MDL被阻塞,后续其它针对该表的其它操作都会被阻塞。典型如下,如阻塞稍久的话,我们会看到Threads_running飙升,CPU告警。 mysql> show proce 阅读全文
posted @ 2018-08-13 10:01 iVictor 阅读(2849) 评论(7) 推荐(2) 编辑
摘要: mysqlfrm可基于frm文件生成对应的表结构。常用于数据恢复场景。 其有两种操作模式。 1. 创建一个临时实例来解析frm文件。 2. 使用诊断模式解析frm文件。 以下表进行测试,看看, 1. mysqlfrm解析的结果与原生表结构的区别。 2. 两种操作模式解析结果的不同。 首先看看第一种操 阅读全文
posted @ 2018-07-13 10:52 iVictor 阅读(1950) 评论(0) 推荐(1) 编辑
摘要: 前段时间,将线上MySQL数据库升级到了5.7。考虑到可能产生的不兼容性,在升级之前,确实也是战战兢兢,虽然测试环境,开发环境早在半年前就已提前升级。 基于前期的调研和朋友的反馈,与开发相关的主要有两点: sql_mode MySQL 5.6中,其默认值为"NO_ENGINE_SU BSTITUTI 阅读全文
posted @ 2018-07-09 10:43 iVictor 阅读(19285) 评论(23) 推荐(20) 编辑
上一页 1 2 3 4 5 6 7 ··· 19 下一页