现在位置: 首页 > Michael发表的所有文章
  • 03月
  • 21日
备份恢复 ⁄ 共 3611字 暂无评论 ⁄ 阅读 34 次
FLUSH TABLES WITH READ LOCK简称(FTWRL),该命令主要用于备份工具获取一致性备份(数据与binlog位点匹配)。由于FTWRL总共需要持有两把全局的MDL锁,并且还需要关闭所有表对象,因此这个命令的杀伤性很大,执行命令时容易导致库hang住。如果是主库,则业务无法正常访问;如果是备库,则会导致SQL线程卡住,主备延迟。本文将详细介绍FTWRL到底做了什么操作,每个操作的对库的影响,以及操作背后的原因。 FTWRL做了什么操作? FTWRL主要包括3个步骤: 1.上全局读锁(lock_global_read_lock) 2.清理表缓存(close_cached_tables) 3.上全局......
阅读全文
  • 07月
  • 30日
SQL基本用法 ⁄ 共 755字 暂无评论 ⁄ 阅读 350 次
问题 最近在联调某个业务时发现使用的签名总是验证不过,在MySQL中查询了该业务的私钥配置和业务侧的配置是一样的,问题就出在SQL查询这里,最后将配置导出到本地发现私钥后面多了一个空格,将空格删除然后签名计算OK。问题是:为什么在DB查询条件中的字符串没有包含空格也可以查到实际包含空格的这条记录呢? 原因 如果字段是char或varchar类型,那么在字符串比较的时候MySQL使用PADSPACE校对规则,会忽略字段末尾的空格字符,若想做到精确匹配可以使用下面几种方法: 方法1:使用like语句; 方法2:使用binary类型,例如,select ......
阅读全文
  • 07月
  • 13日
SQL基本用法 ⁄ 共 3039字 暂无评论 ⁄ 阅读 406 次
很长一段时间,都认为"insert into a select * from b" 会导致b表被锁住。在最近一次组内同事的质疑中,发现错了.b表会不会被锁,其实和隔离级别有一定关系,下面我们具体分析一下 环境说明: 1.隔离级别:REPEATABLE-READ 2.MySQL版本:5.6.29 3.Binlog格式:ROW 4.建表SQL: CREATE TABLE `os_diskio_history_bak` ( `id` int(10) NOT NULL AUTO_INCREMENT, `ip` varchar(50) NOT NULL, `tags` varchar(100) DEFAULT NULL, `fdisk` varchar(50) NOT NULL DEFAULT '0', `disk_io_reads` bigint(18) NOT NULL DEFAULT '0', `disk_io_......
阅读全文
最近,在新上线的一套DBProxy+MySQL项目过程中,发现后端MySQL DB出现登陆报错: [Warning] Access denied for user 'apps'@'192.168.1.146' (using password: NO) 以上报错为测试环境,模拟产生的报错信息,实际生产环境是 Access denied for user 'root'@'proxy IP' (using password: NO) 查看了其它DBProxy后端的DB,没有此类报错。 对比问题DBPrroxy和正常DBProxy的配置文件,版本等信息,发现都是一样,无差异。 这样看来,好紧张,居然有root用户尝试远程登陆,这是多危险,被攻击了????当时的第一反应(其实要说明一点,......
阅读全文
      在我们的日常运维中,随着公司业务的持续发展,DB的单机性能逐渐满足不了要求,大家首先想到的可能是拆表,拆库,扩容,归档,提升硬件配置等等,但实际业务场景中,往往优先出现瓶颈的是读的性能,这也就是,我下面要说的数据库读写分离。        目前,每个公司的读写分离策略都不太一样,有的采用的是开源的数据库中间件,对应用开发来说,是透明的;有的公司采用的是代码层时间读写分离,需要对代码有一定的倾入性;也有采用自研其他方案。        现阶段,由于我们绝大多数应用是PHP应用,业务持续发展,代码层实现读......
阅读全文
  • 02月
  • 11日
hadoop ⁄ 共 3880字 暂无评论 ⁄ 阅读 687 次
Hadoop是一个开发和运行处理大规模数据的平台,实现在多台计算机组成的集群中对海量数据进行分布式计算。 hadoop框架最核心的部分是hdfs和mapreduce。hdfs提供了海量数据的存储,mapreduce提供了对数据的计算。 hadoop处理海量数据,需要hbase做数据库,hbase是面向列的分布式数据库,使用集群环境的内存做处理,但是不支持sql语句,所以操作和计算数据非常不方便,于是整合hive,hive支持sql语句,让hive支撑在hbase数据库层面的查询。 下面介绍hadoop+hbase+hive的环境部署: 一、Hadoop框架 hadoop使用主/从(master/slave)架构......
阅读全文
  • 01月
  • 17日
数据库优化 ⁄ 共 4664字 暂无评论 ⁄ 阅读 694 次
在MySQL官方手册上,关于index merge的介绍非常非常少。甚至还有不少误导的地方,这次把5.1版本关于此类优化处理的代码细看了一遍,以案例的方式介绍了各种实用index merge访问类型的SQL。后续的还会继续介绍index merge实现的主要数据结构,以及成本评估。 1. 什么是index merge MySQL优化器如果发现可以使用多个索引查找后的交集/并集定位数据,那么MySQL优化器就会尝试index merge这类访问方式。index merge主要分为两大类,多个索引交集访问(intersections),多个索引并集访问,当然这两类还可以组合出更为复杂的方式,例如多个......
阅读全文
  • 02月
  • 05日
Linux ⁄ 共 2837字 暂无评论 ⁄ 阅读 2,059 次
tcpdump是查看网络状况,诊断网络问题的利器,熟练的使用可以很容易看到连接的建立,收发数据,断开 tcpdump采用命令行方式,它的命令格式为: tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ] [ -i 网络接口 ] [ -r 文件名] [ -s snaplen ] [ -T 类型 ] [ -w 文件名 ] [表达式 ] tcpdump的选项介绍 -A     以ASCII格式打印出所有分组,并将链路层的头最小化。 -c      在收到指定的数量的分组后,tcpdump就会停止。 -C      在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数file_size中指定的大小。如果超......
阅读全文
  • 02月
  • 05日
初识MySQL ⁄ 共 1804字 暂无评论 ⁄ 阅读 2,648 次
mysqlslap是从MySQL的5.1.4版开始就开始官方提供的压力测试工具。 通过模拟多个并发客户端并发访问MySQL来执行压力测试,同时提供了较详细的SQL执行数据性能报告,并且能很好的对比多个存储引擎(MyISAM,InnoDB等)在相同环境下的相同并发压力下的性能差别。 mysqlslap 官方介绍:http://dev.mysql.com/doc/refman/5.6/en/mysqlslap.html 常用参数 [options] 详解 --host=host_name, -h host_name 连接到的MySQL服务器的主机名(或IP地址),默认为本机localhost --user=user_name, -u user_name 连接MySQL服务时用的用户名 --pass......
阅读全文
  • 08月
  • 17日
备份恢复 ⁄ 共 929字 暂无评论 ⁄ 阅读 3,451 次
昨晚,有个朋友说它的DB有张表,被研发误删了一部分数据,咨询我一些恢复的思路: 环境:全备、增备、日志、主从、binlog-format=mixed 由于binlog格式的限制,没法从binlog里面反向解析误删数据,因此,就有了下面的思路,有什么遗漏的或者不到位的地方,欢迎大家指正!! 1.必须有xtrabackup备份 这里包括全备和增备 2.在全备和增备上都执行--apply-log --redo-only操作 执行完此操作后,备份的数据目录里会包含以下几种数据类型文件: *.frm / *.ibd / *.exp / *.cfg 3.将原来有数据丢失的表重命名为新表 alter table old_table ......
阅读全文
  • 06月
  • 06日
windows ⁄ 共 889字 暂无评论 ⁄ 阅读 4,558 次
需要的包名如下: tomcat,jdk,MySQL ODBC/JDBC,pdi-ce-6.1.0.1-196 kettle官网下载地址: https://sourceforge.net/projects/pentaho/files/Data%20Integration/6.1/pdi-ce-6.1.0.1-196.zip/download tomcat官网下载地址: http://tomcat.apache.org/download-70.cgi MySQL ODBC/JDBC下载地址: http://www.mysql.com/products/connector/ 1.首先,安装JDK: windows下的安装,就不细讲了,一直点“下一步”,直到完成; 需要注意一下jdk的安装路径,需要记录一下,需要设置环境变量的,这里地址是:C:\Program Files (x86)\Java\jr......
阅读全文
  • 05月
  • 30日
MySQL故障 ⁄ 共 1744字 暂无评论 ⁄ 阅读 3,690 次
今天,研发提交了一个死锁信息,涉及到自增表的死锁,测试,压测产生的死锁信息,并发500,信息如下: 从上面死锁信息来看,lock mode AUTO-INC waiting,应该是表的自增列的问题,初步了解,这个死锁和 innodb_autoinc_lock_mode 的值有一定的关系,但也不因全归咎于mysql的问题。 从5.6的用户手册中查找到AUTO-INC的相关信息: InnoDB uses a special lock called the table-level AUTO-INC lock for inserts into tables with AUTO_INCREMENT columns. This lock is normally held to the end of the statement (not to the end ......
阅读全文
×