随笔分类 -  MySQL

摘要:Ⅰ、想起一个报错 1.1 创建表报错 (root@localhost) [(none)] create tablespace ger_space add datafile 'ger_space.ibd' file_block_size=8192; Query OK, 0 rows affected 阅读全文
posted @ 2018-05-05 00:58 91洲际哥 阅读(846) 评论(0) 推荐(0) 编辑
摘要:Ⅰ、缓冲池介绍 innodb存储引擎缓冲池(buffer pool) ,类似于oracle的sga,里面放着数据页 、索引页 、change buffer 、自适应哈希 、锁(5.5之前)等内容 综上所示: 每次读写数据都是通过Buffer Pool 当Buffer Pool中没有用户所需要的数据时 阅读全文
posted @ 2018-05-05 00:51 91洲际哥 阅读(4646) 评论(0) 推荐(2) 编辑
摘要:Ⅰ、无主键的一个小测试 1.1 表上存在唯一键 (root@localhost) [test] show create table test_key\G 1. row Table: test_key Create Table: CREATE TABLE ( int(11) DEFAULT NULL, 阅读全文
posted @ 2018-05-05 00:49 91洲际哥 阅读(384) 评论(0) 推荐(0) 编辑
摘要:Ⅰ、通用表空间的使用 需求: 指定存储路径创建一张表 方案一:指定data directory [root@VM_0_5_centos mdata] mkdir /mdata/general [root@VM_0_5_centos mdata] chown mysql.mysql /mdata/ge 阅读全文
posted @ 2018-05-05 00:45 91洲际哥 阅读(374) 评论(0) 推荐(0) 编辑
摘要:Ⅰ、InnoDB发展史 |时间|事件|备注| |: :|: :|: :| |1995|由Heikki Tuuri创建Innobase Oy公司,开发InnoDB存储引擎|Innobase开始做的是数据库,希望卖掉该公司| |1996|MySQL 1.0 发布|| |2000|MySQL3.23版本发 阅读全文
posted @ 2018-05-05 00:15 91洲际哥 阅读(599) 评论(0) 推荐(0) 编辑
摘要:首先声明一下,双主这种架构个人不怎么喜欢,所以这里只做简单说明与吐槽 Ⅰ、双主架构介绍 M/S(A) S/M(B) 为什么要这么做呢?有什么意义呢? 我也不知道 Ⅱ、双主搭建 这样就可以双写了,带有自增的insert没问题 但极力不推荐 Ⅲ、双写存在的问题 3.1 不好的第一点 一张表上如果有唯一索 阅读全文
posted @ 2018-05-04 22:42 91洲际哥 阅读(521) 评论(0) 推荐(0) 编辑
摘要:Ⅰ、认识半同步 我们目前MySQL默认的复制模式是异步复制,主不关心从的数据到哪里了,主宕了,做切换,如果从落后太多,就会导致丢失的数据太多 从5.5版本开始,MySQL引入了半同步复制 简单理解:一个事务提交时,日志至少要保证有一个从接收到,那么它的提交才能继续 到5.7版本,在原来半同步的基础上 阅读全文
posted @ 2018-05-04 22:41 91洲际哥 阅读(547) 评论(0) 推荐(0) 编辑
摘要:Ⅰ、GTID的介绍 global transaction id identifier 全局事务id gtid = server_uuid + transaction_id server_uuid是全局唯一的,5.6开始才有,表示当前实例的uuid,保存在数据目录中的auto.conf文件中 tran 阅读全文
posted @ 2018-05-04 22:41 91洲际哥 阅读(445) 评论(0) 推荐(0) 编辑
摘要:Ⅰ、多源复制 1.1 多源复制的应用场景 多个数据库实例的数据需要合并统计分析 多个实例的数据放到一台机器备份 1.2 多源复制的限制 MySQL5.7.6开始才支持多源复制 一个从库最多支持64个主库 每多一个主,从上会多创建两个slave线程 每个主库server_id必须不一致 多源复制只能有 阅读全文
posted @ 2018-05-04 22:41 91洲际哥 阅读(392) 评论(0) 推荐(0) 编辑
摘要:Ⅰ、背景 搭建MySQL复制环境非常简单 你的系统是否也是像我之前那么搭建的呢? 那么,你的复制系统是否出现过以下的情况呢? 复制报错,例如:1062,1032 主从数据不一致 Ⅱ、真正高可靠复制环境相关配置(crash safe replication) Ⅲ、sql/io高可靠 3.1 sql线程 阅读全文
posted @ 2018-05-04 22:40 91洲际哥 阅读(490) 评论(0) 推荐(0) 编辑
摘要:Ⅰ、复制类型 1.1 逻辑复制 记录每次逻辑操作 主从数据库可以不一致 1.2 物理逻辑复制 记录每次对于数据页的操作 主从数据物理严格一致 基于重做日志 说明: 如果一个块(页)修改了,就把这个修改发到远端 主从两端不仅仅是数据一致,而是物理上的一致,页都是一样的 1.3 复制选型与对比 简单的主 阅读全文
posted @ 2018-05-04 22:38 91洲际哥 阅读(447) 评论(0) 推荐(0) 编辑
摘要:Ⅰ、binlog定义和作用 1.1 定义 记录每次数据库的逻辑操作(包括表结构变更和表数据修改) 包含:binlog文件和index文件 1.2 作用 复制:从库读取主库binlog,本地回放实现复制 备份恢复:最近逻辑备份数据+binlog实现最大可能恢复 innodb恢复:开启binlog的情况 阅读全文
posted @ 2018-05-04 22:36 91洲际哥 阅读(811) 评论(0) 推荐(0) 编辑
摘要:Ⅰ、bonlog server介绍 对于binlog的备份,之前文章里说的是有从机,一般不备份,那现在人家就是 要备份嘛,怎么办嘛, 写个脚本每天夜里去把前一天产生的binlog拷贝出来可以不? 行啊,没问题,你可以的,但你这个一下子整会不会有点累嘛 从5.6版本开始,我们有更好的办法了,用mysq 阅读全文
posted @ 2018-05-04 22:29 91洲际哥 阅读(482) 评论(0) 推荐(0) 编辑
摘要:Ⅰ、传统姿势 这种方法需要提前设置一个参数 secure_file_priv |value|meaning| |: :|: :| |NULL|不允许导入导出| |''|可以导入到任何地址| |'/tmp'|导入到具体地址| 这个参数是只读参数,只能修改my.cnf后重启 做这种操作需要file权限 阅读全文
posted @ 2018-05-04 22:28 91洲际哥 阅读(359) 评论(0) 推荐(0) 编辑
摘要:Ⅰ、背景 早先操作数据误操作后,我们一般通过全量备份+binlog的方式来实现恢复(前滚) 有时只想撤销一个几分钟前的操作,采用这种方式就会显得很笨重 大家都知道Oracle有个叫做flashback的功能,很遗憾MySQL官方并没有提供类似的工具 但姜老师的innosql中实现了这个功能,而且还兼 阅读全文
posted @ 2018-05-04 22:28 91洲际哥 阅读(535) 评论(0) 推荐(0) 编辑
摘要:Ⅰ、功能分析 1.1 多线程介绍 mysqlpump是MySQL5.7的官方工具,用于取代mysqldump,其参数与mysqldump基本一样 mysqlpump是多线程备份,但只能到表级别,单表备份还是单线程 mysqldump备份时,有个默认队列(default),队列下开N个线程去备份数据库 阅读全文
posted @ 2018-05-04 22:27 91洲际哥 阅读(1883) 评论(0) 推荐(0) 编辑
摘要:Ⅰ、xtrabackup介绍 xtrabackup只能备份innodb引擎的数据,不能备份表结构,percona开源的,强烈推荐最新版本(旧版本bug多) innobackupex可以备份myisam和innodb两种引擎的数据和表结构,一般用这个 备份时,默认读取MySQL配置文件(datadir 阅读全文
posted @ 2018-05-04 22:24 91洲际哥 阅读(1613) 评论(0) 推荐(1) 编辑
摘要:Ⅰ、背景 mysqldump单线程备份,很慢 恢复慢,一张表一张表恢复, 如果备份了100G的数据,想恢复其中一个表,做不到(所有的表都在一个文件里) 所以推荐使用mydumper备份 备份并行,基于行,即使一张表也能并行,好强呐 恢复也是并行 恢复的时候可以只恢复指定表 完美( ^__^ ) Ⅱ、 阅读全文
posted @ 2018-05-04 22:23 91洲际哥 阅读(730) 评论(0) 推荐(0) 编辑
摘要:Ⅰ、mysqldump的简单使用与注意点 1.1 基本参数 只备份innodb,用不了几个参数,记住下面几个即可,其他的没什么卵用 常见用法: 1.2 其他参数 1.3 重点 my.cnf中配上下面配置 Ⅱ、mysqldump实现原理剖析 2.1 开glog嗖哈一把看看嘛( ^__^ ) sessi 阅读全文
posted @ 2018-05-04 22:22 91洲际哥 阅读(5730) 评论(0) 推荐(0) 编辑
摘要:Ⅰ、备份类型 这里介绍三种全量备份 热备(hot backup) 在线备份 对应用基本无影响(应用程序读写不会阻塞,但是性能还是会有下降,所以尽量不要在主上做备份,在从库上做) 冷备(cold backup) 备份数据文件,需要停机 备份datadir目录下的所有文件 只拷贝这个目录可以吗?实际un 阅读全文
posted @ 2018-05-04 18:07 91洲际哥 阅读(655) 评论(0) 推荐(0) 编辑