mysql
文章平均质量分 71
lijingkuan
In restless dreams I walked alone
展开
-
MGR单主模式搭建
三个节点 192.168.0.156 oceanbase06 192.168.0.157 oceanbase07 192.168.0.158 oceanbase08数据库端口:3306 组复制端口:24901准备工作关闭防火墙,修改SELinux为disabledservice iptables stopchkconfig iptables offsetenf...原创 2018-06-27 13:41:11 · 11397 阅读 · 2 评论 -
MySQL在线DDL工具pt-online-schema-change
原理pt-online-schema-change模拟了MySQL内部alter table的方式,但是其操作所更新的是复制表,所以原表不会被锁住。其原理我们通过示例进行解读:shell> pt-online-schema-change –nocheck-replication-filters –recursion-method=none –alter “add newcol int” h=192.转载 2017-03-31 16:07:44 · 1268 阅读 · 0 评论 -
pt-osc原表往临时表复制过程中锁问题验证
背景:在技术群里跟朋友们聊天的过程中,出现一个疑问:pt-osc修改表结果的过程中,真的不会阻塞写入操作吗?验证过程原表结构"root@localhost:mysql.sock [lijk]>show create table lijktest;+----------+------------------+| Table | Create Table原创 2017-03-31 15:41:10 · 776 阅读 · 0 评论 -
MySQL半同步复制与增强半同步复制
1.after commit和after sync原理 2.需要监控的参数: repl_semi_sync_master_yes_tx repl_semi_sync_master_no_tx原创 2017-03-14 23:44:01 · 2342 阅读 · 0 评论 -
mysql explain 输出详解
explain的输出mysql> explain select dept_no,count(*) from dept_emp where dept_no='d001';+----+-------------+----------+------+---------------+---------+---------+-------+-------+---------------------原创 2016-01-05 16:02:07 · 5301 阅读 · 0 评论 -
innodb存储引擎笔记(下)
mysql 5.6 optimizer_trace 查看执行计划选择的过程MVCCinnodb的多版本使用undo&回滚段来构建innodb是聚集索引组织表,每个行记录有3个额外属性:ROW_ID、TRX_ID、ROLL_PTRundo记录了更改前的数据镜像,若事务未提交,对隔离级别大于等于read commit的其他事务,它们不应该看到已修改(未提交)的数据,而应一致读取老版本的数据在修改原创 2017-04-07 12:36:16 · 1256 阅读 · 0 评论 -
MySQL权限级别
背景 前几天遇到一个问题,给某业务用户赋权的时候,由于数据库比较多,为了方便,使用的是grant … on *.* 方式,后续想要收回某几个数据库的权限的时候,比如mysql,information_schema,performance_schema这几个数据库,无法单独revoke,只能revoke *.* 之后再单独授权,因为*.*是global级别的权限,而针对单个库的则是database级原创 2017-02-11 10:24:40 · 2186 阅读 · 0 评论 -
PXC知识点总结
PXC是基于引擎层的同步复制,而不是异步复制,所以数据一致性更高。 同时,基于引擎层,没有sql thread应用过程,所以没有延迟。多个节点同时更新到同一行记录,无法避免更新丢失问题,所以建议写操作在一个节点上(对insert影响不大,可以多个节点insert)。每台机器上的Server-id不要相同,否则只会在写的那台机器上生成binlog,其他节点不生成binlog,这是一个坑。每个节点Se原创 2017-03-12 19:01:44 · 6361 阅读 · 0 评论 -
innodb存储引擎笔记(上)
MySQL发展路线图:MySQL体系结构InnoDB体系架构图总体架构图:存储结构:表空间所有的数据都需要存储在表空间中表空间分类 系统表空间(ibdata1)独立表空间(innodb_file_per_table)undo tablespace,MySQL5.6+temporary tablespace,MySQL5.7+general tablespace,MySQL5.7+(类似原创 2017-04-05 00:20:47 · 3448 阅读 · 0 评论 -
MySQL5.6新特性之crash-safe详解
整理自网络。 主要内容: (1)5.5中crash-unsafe产生的原理 (2)5.6中如何解决5.5中异常断电导致SQL thread信息不准确 (3)5.5中如何解决异常断电导致IO thread信息不准确一 介绍 MySQL 5.6 针对复制功能提供了新特性: slave支持crash-safe. 该功能可以解决之前版本中系统异常断电可能导致的SQL thread 信息不准确的问题转载 2017-03-11 19:19:34 · 852 阅读 · 0 评论 -
MySQL5.7.17版本使用innobackupex copy back恢复之后启动报错处理
MySQL版本:5.7.17 percona-xtrabackup版本:2.4.6使用innobackup apply log后copy back,完成后启动数据库,报如下错误:[root@mysql02 dbdata]# /etc/init.d/mysqld startStarting MySQL.........2017-03-04T09:03:46.473353Z mysqld_safe e原创 2017-03-04 17:21:08 · 1386 阅读 · 0 评论 -
MySQL安装自带的测试数据库
MySQL有自带的数据库employees,容易安装,方面我们平时做测试或者自学使用。自带数据库相关文档地址: https://dev.mysql.com/doc/employee/en/安装数据库操作步骤参考文档:https://dev.mysql.com/doc/employee/en/employees-installation.html自带数据库的下载地址已经转到github上原创 2015-12-10 16:02:07 · 8934 阅读 · 0 评论 -
tpcc-mysql使用
根据网络资料整理测试一、 下载源码包 偷了个懒,从叶金荣大师的MySQL中文网里下载的。 MySQL中文网便捷下载地址: http://imysql.com/wp-content/uploads/2014/09/tpcc-mysql-src.tgz[root@mysql01 ~]# cd /tmp/[root@mysql01 tmp]# ll-rw-r--r-- 1 root roo原创 2017-02-14 23:37:03 · 646 阅读 · 0 评论 -
MySQL小知识
1.字段的种类尽可能用int 或者tinyint类型。另外字段尽可能用NOT NULL。 当然无可避免某些字段会用到text ,varchar等字符类型,最好将text字段的单独出另外一个表出来(用主键关联好)。 varchar存储65535个字节。原创 2017-01-25 15:50:07 · 248 阅读 · 0 评论 -
FLUSH TABLES WITH READ LOCK有多快(转)
转自:http://www.cnblogs.com/sunss/archive/2012/02/02/2335960.html 最近有一台MySQL的从库老是报延迟,观察到:FLUSH TABLES WITH READ LOCK,阻塞了4个多小时,还有另外一条SQL语句select ,从现象上来看是select 阻塞了flush tables with read lock。 flush tab转载 2017-01-25 11:14:07 · 427 阅读 · 0 评论 -
MySQL参数整理
back_log = 600 MySQL能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。 如果期望在一个短时间内有很多连接,你需要增加它。也就是说,如MySQL的连接数据达到max_connections时,原创 2017-02-11 18:31:28 · 352 阅读 · 0 评论 -
innodb_flush_method参数图解
innodb_flush_method这个参数控制着innodb数据文件及redo log的打开、刷写模式,对于这个参数,文档上是这样描述的: 有三个值:fdatasync(默认),O_DSYNC,O_DIRECT默认是fdatasync,调用fsync()去刷数据文件与redo log的buffer为O_DSYNC时,innodb会使用O_SYNC方式打开和刷写redo log,使用fsyn转载 2017-04-02 09:53:31 · 1178 阅读 · 0 评论 -
MySQL5.6在线DDL需要注意的问题
背景:MySQL5.6在线DDL不锁表,现在我有一张1亿的表,需要增加一个字段,假如我让你去增加这个字段,你应该注意什么,具体怎么操作?操作如下:1.注意磁盘空间(临时表目录) 2.当前内存剩余量 3.当前有没有大的事务在执行 4.innodb_online_alter_log_max_size参数 5.然后在从上添加,再在主上添加(不记录binlog),处理完成后再开启如果直接先在主上操作转载 2017-03-31 17:58:21 · 2282 阅读 · 1 评论 -
pt-online-schema-change使用说明、限制与比较
如果正在看这篇文章,相信你已经知道自己的需求了。在 mysql 5.5 版本以前,修改表结构如添加索引、修改列,需要锁表,期间不能写入,对于大表这简直是灾难。从5.5特别是5.6里,情况有了好转,支持Online DDL,相关介绍见 这篇文章,而我在实际alter table过程中还是会引起 data meta lock 问题。pt-online-schema-change是Percona-tool转载 2017-04-02 11:11:30 · 8494 阅读 · 0 评论 -
MySQL · 引擎特性 · Group Replication内核解析
原文地址:https://yq.aliyun.com/articles/175055?spm=5176.100239.bloglist.30.V4wyl5 db匠 2017-08-21 09:00:02 发表于: 阿里云数据库ApsaraDB背景为了创建高可用数据库系统,传统的实现方式是创建一个或多个备用的数据库实例,原有的数据库实例通常称为主库master,其它备用的数据库实例称为备库或从库s转载 2017-09-12 13:17:38 · 346 阅读 · 0 评论 -
sysbench简单使用介绍
安装1.可以下载源码编译安装 在 http://sourceforge.net/projects/sysbench 下载源码包 接下来,按照以下步骤安装:tar zxf sysbench-0.4.8.tar.gzcd sysbench-0.4.8./configure make && make install以上方法适用于 MySQL 安装在标准默认目录下的情况,如果 MySQL 并不是安原创 2017-05-29 10:55:20 · 1292 阅读 · 0 评论 -
MySQL Master High Available 源码篇
MasterFailover (Non-GTID)MHA::MasterFailover::main()->do_master_failoverfailover_non_gtid Phase 1: Configuration Check Phaseinit_config(): 初始化配置MHA::ServerManager::init_binlog_server: 初始化binlog se转载 2017-06-28 00:54:56 · 648 阅读 · 0 评论 -
xtrabackup备份原理及注意事项
物理备份(Xtrabackup)相对于逻辑备份利用查询提取数据中的所有记录,物理备份更直接,拷贝数据库文件和日志来完成备份,因此速度会更快。当然,无论是开源的Mydumper还是官方最新的备份工具(5.7.11的mysqlpump)都支持了多线程备份,所以速度差异可能会进一步缩小,至少从目前生产环境来看,物理备份使用还是比较多的。由于Xtrabackup支持备份innodb表,实际生产环境中我们使用原创 2017-05-29 19:43:46 · 4258 阅读 · 1 评论 -
mysqldump备份原理及注意事项
关于MySQL热备,可分为两种方式:逻辑备份物理备份对于前者,常用的工具是MySQL自带的mysqldump,对于后者,常用的工具是Percona提供的XtraBackup。对于规模比较小,业务并不繁忙的数据库,一般都是选择mysqldump。那么,mysqldump的备份原理是什么呢?抛开源码不谈,其实我们可以通过打开general log,查看mysqldump全库备份时执行的命令来了解m原创 2017-05-27 19:07:43 · 5993 阅读 · 0 评论 -
MySQL监控
MySQL可用性监控MySQL服务存活监控MySQL复制是否终止,延迟多大其他,例如磁盘空间消耗MySQL性能监控每秒活跃DML数/事务数/请求数/当前并发连接/平均响应时长数据库吞吐量(收、发字节数)锁:表锁,行锁,锁等待,死锁内存:buffer/cache命中率、等待释放事务:事务ID增长率,unpurged历史事务慢查询:平均耗时,平均次数查看MySQL连接数、当前并发连原创 2017-03-26 16:01:57 · 2410 阅读 · 1 评论 -
MySQL order by实现原理分析和Filesort优化
原文地址:不可考。。。应该是简朝阳大神的博客。略作修改。在MySQL中的ORDER BY有两种排序实现方式: 1. 利用有序索引获取有序数据 2. 文件排序在使用explain分析查询的时候,利用有序索引获取有序数据显示Using index。而文件排序显示Using filesort。1.利用有序索引获取有序数据 取出满足过滤条件、作为排序条件的字段,以及可以直接定位到行数据的行指针信息转载 2017-04-21 23:54:14 · 11379 阅读 · 1 评论 -
master_ip_failover
#!/usr/bin/env perluse strict;use warnings FATAL => 'all';use Getopt::Long;my ( $command, $ssh_user, $orig_master_host, $orig_master_ip, $orig_master_port, $new_master_host, $翻译 2017-04-16 21:41:45 · 2175 阅读 · 0 评论 -
innodb使用大字段text blob的一些优化建议
最近看到一些老应用,在表结构的设计上使用了text或者blob的字段;其中一个应用,对blob字段的依赖非常的严重,查询和更新的频率也是非常的高,单表的存储空间已经达到了近100G,这个时候,应用其实已经被数据库绑死了,任何应用或者查询逻辑的变更几乎成为不可能;为了清楚大字段对性能的影响,我们必须要知道innodb存储引擎在底层对行的处理方式:知识点一:在5.1中,innodb存储引擎的默认的行格式转载 2017-04-04 15:45:32 · 1820 阅读 · 0 评论 -
mysql explain执行计划中常见信息整理
idid列数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询。select_typeselect_type列常见的有:simple:表示不需要union操作或者不包含子查询的简单select查询。有连接查询时,外层的查询为simple,且只有一个。primary:一个需要union操作或者含有子查询的select,位于最外层原创 2017-04-02 16:35:26 · 345 阅读 · 0 评论 -
innodb_additional_mem_pool_size简介
innodb_additional_mem_pool_size(global) 这个参数我们平时调整的可能不是太多,很多人都使用了默认值,可能很多人都不是太熟悉这个参数的作用。innodb_additional_mem_pool_size 设置了InnoDB存储引擎用来存放数据字典信息以及一些内部数据结构的内存空间大小,所以当我们一个MySQL Instance中的数据库对象非常多的时候,是需原创 2017-04-03 10:10:16 · 11474 阅读 · 0 评论 -
一个有趣的现象----innodb_io_capacity
之前公司客户有出现过一种情况,是使用sysbench 进行压力测试,在测试的过程中发生一个现象,如下所示下面是客户那里的输出结果:[1310s] threads: 600, tps: 2176.70, reads: 1087.10, writes: 1089.60, response time: 1076.07ms (95%), errors: 0.00, reconnects: 0.00[13转载 2017-04-03 10:08:26 · 3947 阅读 · 0 评论 -
PXC集群添加新节点如何使用IST方式避免使用SST方式传输数据
思路: 先搭建主从复制,然后将从库加入PXC集群中。具体步骤: 选择集群中任意一个节点A,xtrabackup生成备份。 利用xtrabackup备份搭建从库B。 测试主从同步是否成功。 从库上stop slave,记录此时对应的主库binlog位置。 通过主库上的binlog位置获取数据库xid。 修改grastat.dat文件,将seqno修改为xid的值。 开启B库PXC相关配原创 2017-03-13 23:23:17 · 2177 阅读 · 0 评论 -
MySQL关键线程状态解读
checking permission:安全检查,检查是否有权限。cleaning up :打扫战场 - 释放内存,释放持有的句柄等。closing table:用完了,关闭该表,刷新到磁盘。如果长时间处于该状态,有可能磁盘满了。copy to tmp table:执行alter table修改表结构时。建议凌晨执行。copying to tmp table:拷贝数据到内存中的临时表,常见于原创 2017-04-02 17:01:06 · 938 阅读 · 0 评论 -
主从不一致场景分析及如何避免
master库写redo、binlog不实时丢数据的场景redo的ib_logfile与binlog日志如果被设置非实时flush,就有可能存在丢数据的情况:redo未写入磁盘,但binlog写入磁盘,造成从库数据量比主库多。redo写入了磁盘,但是binlog未写入,造成从库数据量比主库少。从目前来看,只能牺牲性能去换取数据的安全性,必须要设置redo和binlog为实时刷盘,如果对性能要求原创 2017-04-11 23:41:31 · 1458 阅读 · 0 评论 -
MySQL统计信息收集及磁盘util指标问题
背景 在QQ群里,一位朋友问了如下的问题: 问题是:只查询一个information_schema.tables;表,为啥会有几百个Opening tables?原因:此操作会触发表统计信息的收集。关于information_schema中表的查询都要去真正的表查看,所以慢。MySQL如何收集统计信息? Analyze table收集表和索引统计信息,适用于MyISAM和InnoDB; 对于原创 2017-02-11 13:12:50 · 1489 阅读 · 0 评论 -
【MySQL】MySQL5.6新特性之crash-safe
转自:http://blog.itpub.net/22664653/viewspace-1752588/ 一 介绍 MySQL 5.6 针对复制功能提供了新特性: slave支持crash-safe. 该功能可以解决之前版本中系统异常断电可能导致的SQL thread 信息不准确的问题。本文从原理方面对该特性进行介绍。 二 原理 在了解crash-safe slave 之前,我们先分转载 2017-01-11 20:50:14 · 348 阅读 · 0 评论 -
innobackupex使用注意事项
整理自网络,长期更新。1.XtraBackup 有两个工具:xtrabackup 和 innobackupex:xtrabackup 本身只能备份 InnoDB 和 XtraDB ,不能备份 MyISAM;innobackupex 本身是 Hot Backup 脚本修改而来,同时可以备份 MyISAM 和 InnoDB,但是备份 MyISAM 需要加读锁。2.一般情况下,在备份完成后,数据尚且原创 2016-03-14 20:19:32 · 1182 阅读 · 0 评论 -
MySQL文件位置管理
MySQL文件类型有好几种,放在一起感觉比较乱,不方便管理。通过修改my.cnf文件,可以将MySQL的文件进行分类管理。整理后的结果如下:[root@mysqlrep2 data]# lltotal 40-rw-rw----. 1 mysql mysql 56 Nov 11 09:28 auto.cnfdrwxr-xr-x. 2 mysql mysql 4096 Nov 1原创 2015-11-11 21:21:35 · 604 阅读 · 0 评论 -
MySQL配置文件my.cnf参数优化和中文详解(转)
原文地址:http://www.jb51.net/article/48082.htm这篇文章主要介绍了MySQL配置文件my.cnf参数优化和中文详解,非常详细的用中文注释了各个参数的作用以及建议值,需要的朋友可以参考下Mysql参数优化对于新手来讲,是比较难懂的东西,其实这个参数优化,是个很复杂的东西,对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬转载 2015-11-11 16:51:42 · 1834 阅读 · 0 评论 -
MySQL存储引擎
mysql> show engines;+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+| Engine | Support | Comment原创 2015-11-08 20:50:43 · 335 阅读 · 0 评论