• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!
MariaDB Galera Cluster Deploy

MariaDB Galera Cluster Deploy

MariaDB Galera Cluster Galera Cluster是MariaDB的一个双活多主集群,其可以使得MariDB的所有节点保持同步,Galera为MariaDB提供了同步复制(相对于原生的异步复制),因此其可以保证HA,且其当前仅支持XtraDB/InnoDB存储引擎(扩展支持MyISAM),并且只可在Linux下使用。 从MariaDB……

MySQL多实例安装配置

MySQL多实例安装配置

MySQL进行多实例配置再生产环境中非常常见,比如一些高配置数据库服务器,就会跑多个MySQL实例,借助多实例绑定的方式提高服务器的整体资源利用率。另外在MySQL5.7以上版本还不支持多源复制时,当你有多个主时,也可以使用一台服务器开多个MySQL实例做从。 MySQL多实例配置一般有两种方式: 第一种:基于mysqld_multi来实现。mysqld_m……

MySQL复制需要注意的问题

MySQL复制需要注意的问题

总结一下mysql主从复制需要注意的地方。有人说主从复制很简单嘛,就是master,slave的server_id不一样就搞定。确实,简单的来说就是这么简单。但是真正在生产环境我们需要注意的太多了。首先说说主库宕机或者从库宕机后复制中断的问题。虽然很多知识点或许我博客其他文章中都有提到过,或者重复了,但是我还是想总结一下。 一、主库意外宕机 如果没有设置主库……

MySQL字符集与校验规则

MySQL字符集与校验规则

一、基础知识 字符和字符集(Character and Character set) 那什么是字符呢?在计算机领域,我们把诸如文字、标点符号、图形符号、数字等统称为字符,包括各国家文字、标点符号、图形符号、数字等。而由字符组成的集合则成为字符集,是一个系统支持的所有抽象字符的集合。字符集由于包含字符的多少与异同而形成了各种不同的字符集,字符集种类较多,每个字……

MySQL主从复制错误修复

MySQL主从复制错误修复

一、修复已中断数据复制的方法 在MySQL复制中,如果Slave节点上遇到错误,比如数据不存在或者主键冲突等错误时,想要忽略这些错误(你要明确清楚你忽略的数据造成主从不一致性,且你能够接受这个不一致性所带来的问题)。有一种情况需要注意,如果明确是主键冲突,应先采取主从数据对比,如果数据一致则忽略跳过这些错误,如果数据不一致则要先删除Slave上的数据,然后重……

MySQL InnoDB事务隔离级别

MySQL InnoDB事务隔离级别

一、事务隔离级别 一个支持事务的关系型数据库必须要必备ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性),今天我们就来说说其中 Isolation,也就是“隔离性”。当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non-repeatabl……

MySQL InnoDB事务编写语法

MySQL InnoDB事务编写语法

一、事务控制语句 对于一个事务存储引擎来说如果没有明确启动一个事务,默认是能实现自动提交每一个操作都能直接提交。而MySQL默认采用自动提交模式。也就是说,在 InnoDB 中,所有的用户操作均是以事务方式处理的如果不是显式地开始一个事务,每个 SQL 语句将以一个单独的事务来处理。MySQL 通常是以自动提交方式建立一个服务连接的。查看变量autocomm……

MySQL InnoDB单机事务原理

MySQL InnoDB单机事务原理

一、事务简介 事务(transaction)是数据库区别于文件系统的一个重要特性,事务意为一系列操作的集合,具有 ACID 的特性,能将数据库从一个一致的状态转换到另一个状态。 简单说事务就是由一组 SQL 语句组成的一个执行单元,在这组执行单元中的所有语句要么全部执行成功,要么全部执行失败。 在 MySQL 中,InnoDB 存储引擎支持事务操作,这里也主……

MySQL InnoDB死锁及死锁检测(四)

MySQL InnoDB死锁及死锁检测(四)

一、MySQL InnoDB死锁阐述 在MySQL中,当两个或以上的事务相互持有和请求锁,并形成一个循环的依赖关系,就会产生死锁。多个事务同时锁定同一个资源时,也会产生死锁。在一个事务系统中,死锁是确切存在并且是不能完全避免的。 InnoDB会自动检测事务死锁,立即回滚其中某个事务,并且返回一个错误。它根据某种机制来选择那个最简单(代价最小)的事务来进行回滚……

MySQL InnoDB行锁类型测试(二)

MySQL InnoDB行锁类型测试(二)

一、InnoDB锁算法 InnoDB支持到行级别粒度的并发控制,下面我们分析下几种常见的行级锁类型,以及在哪些情况下会使用到这些类型的锁。 1)Record Lock(源码定义名称:LOCK_REC_NOT_GAP) 锁带上这个Flag时,表示这个锁对象只是单纯的锁在记录上,不会锁记录之前的GAP。在RC隔离级别下一般加的都是该类型的记录锁(但唯一二级索引上……

MySQL InnoDB锁系统阐述(一)

MySQL InnoDB锁系统阐述(一)

一、什么是锁? 开发多用户、数据库驱动的应用时,最大的难点是:一方面要最大程度地利用数据库的并发访问,另外一方面还要确保每个用户能以一致的方式读取和修改数据。为此就有了锁的机制。同时这也是数据库系统区别于文件系统的一个关键特性,InnoDB存储引擎之MySQL数据库的其他存储引擎在这方面技高一筹,就是因为它支持高并发,而高并发的实现很大程度上得益于细粒度的锁……

MySQL交换分区使用

MySQL交换分区使用

MySQL 5.6开始支持ALTER TABLE … EXCHANGE PARTITION语句。该语句允许分区或子分区中的数据与另一个非分区的表中的数据进行交换。如果非分区表中的数据为空,那么相当于将分区中的数据移动到非分区表中。若分区表中的数据为空,则相当于将外部表中的数据导入到分区中。 要使用ALTER TABLE … EXCHA……