数据库
文章平均质量分 52
黄如果
学无止境!
展开
-
主从复制报错汇总
一、 Slave failed to initialize relay log info structure from the repository解决方法:1、reset slave;2、CHANGE MASTER TO...3、start slave;二、 Got fatal error 1236 from master when reading data from binary log: '...原创 2018-03-07 20:24:21 · 212 阅读 · 0 评论 -
我的Mysql死锁排查过程(案例分析)
以前接触到的数据库死锁,都是批量更新时加锁顺序不一致而导致的死锁,但是上周却遇到了一个很难理解的死锁。借着这个机会又重新学习了一下mysql的死锁知识以及常见的死锁场景。在多方调研以及和同事们的讨论下终于发现了这个死锁问题的成因,收获颇多。虽然是后端程序员,我们不需要像DBA一样深入地去分析与锁相关的源码,但是如果我们能够掌握基本的死锁排查方法,对我们的日常开发还是大有裨益的。死锁起因先介...转载 2018-06-09 11:46:54 · 732 阅读 · 0 评论 -
慢查询数据超时告警脚本
基本逻辑为,每日跑一次该脚本,若前一天有超过5秒的慢查询记录,则发送邮件告警。 #!/bin/bashfile=/usr/local/mysql/data/slow.loginfo=/slowquery/infodate=`date +%Y_%m_%d`date_day_1=`date -d '1 days ago' '+%y%m%d'`#判断一天前是否有慢查询数据c...原创 2018-06-19 19:34:53 · 775 阅读 · 0 评论 -
MySQL5.7 开启GTID复制模式终于不用开启log_slave_updates参数了
MySQL5.6的GTID复制模式,必须开启log_slave_updates参数,否则启动就报错,因为需要在binlog找到同步复制的信息(UUID:事务号),如果在密集型写的环境,比如双十一大促在线支付,这无疑增加了从库不必要的磁盘IO开销。(注:开启log_slave_updates参数,是把relay-log里的日志内容再记录到slave本地的binlog里。)但在MySQL5...转载 2018-07-18 11:20:26 · 1392 阅读 · 0 评论 -
深入了解复制-全局事务标识符(GTID)
1)什么是GTIDGTID(Global Transaction ID)是对于一个已提交事务的编号,并且是一个全局唯一的编号。GTID实际上是由UUID+TID组成的。其中UUID是一个MySQL实例的唯一标识,保存在mysql数据目录下的auto.cnf文件里。TID代表了该实例上已经提交的事务数量,并且随着事务提交单调递增。下面是一个GTID的具体形式:3E11FA47-71CA-11E1...转载 2018-07-19 09:20:52 · 1003 阅读 · 0 评论 -
解决困扰自己已久的InnoDB存储引擎行级锁问题
在事务中执行select…for update,update,delete会引起锁,对于事务的修改,事务中会使用X锁,X锁是行级锁,InnDB行锁是通过给索引上的索引项加锁实现的(只有通过索引条件检索数据(即explain sql语句,type=index或range),InnoDB才使用行级锁,否则使用表锁) 为了验证这个,我做了一个小测验 数据表t_bitfly:CREATE TABLE `t...转载 2018-07-13 11:19:32 · 268 阅读 · 0 评论 -
mysql客户端中文显示乱码问题
MySQL 插入数据时,中文乱码问题的解决当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12','Sales',2000,'是个好员工!'); 出现乱码时,可以使用语句 show variables like 'character%'; 来查看当前数据...转载 2018-07-26 10:13:59 · 1686 阅读 · 0 评论 -
Mysql查询结果导出为Excel的几种方法
Mysql查询结果导出为Excel的几种方法本文地址:http://www.cnblogs.com/qiaoyihang/p/6398673.html具体原文找不到了,此篇是借鉴门户的一篇文章方法一:查询语句直接输出语法格式:Example: select * into outfile '/data/var-3307/catid.xls' from help_cat...转载 2018-07-26 10:19:26 · 4450 阅读 · 0 评论 -
redis的主从复制(读写分离)、哨兵(主从切换)配置
当数据量变得庞大的时候,读写分离还是很有必要的。同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能。redis提供了一个master,多个slave的服务。 准备三个redis服务,依次命名文件夹子master,slave1,slave2.这里为在测试机上,不干扰原来的redis服务,我们master使...转载 2018-07-30 19:49:30 · 906 阅读 · 0 评论 -
Redis cluster集群:原理及搭建
原文链接:https://blog.csdn.net/truelove12358/article/details/796129541.为什么使用redis?redis是一种典型的no-sql 即非关系数据库 像python的字典一样 存储key-value键值对 工作在memory中所以很适合用来充当整个互联网架构中各级之间的cache 比如lvs的4层转发层 nginx的7层代理层...转载 2018-08-01 15:36:05 · 192 阅读 · 0 评论 -
关于Mycat配置文件scheme.xml的dataHost标签深入理解
首先得搞清楚,balance项是控制读而writeType是控制写的,如下图为官方文档截图(有点小问题)一、Balance属性1、Balance=0时读操作会发往第一个writeHost(不会发readHost),如图读操作是在hostM1上完成的。2、Balance=1时读操作不会发往第一个writeHost,如图M1不参与读3、Balance=2时读操作会随机...原创 2018-08-13 10:43:24 · 5847 阅读 · 1 评论 -
MySQL5.7多种方式安装、升级、卸载
MySQL有源码安装、二进制安装、rpm安装三种安装方式。源码安装方式可用性最大,可以指定安装目录、数据目录等,并且可以自己定制mysql的功能和插件,只安装需要的模块,不需要的模块可以不用安装,例如储存引擎只安装innodb。源码安装过程需cmake编译,较为复杂,并且需要安装一些依赖包。二进制安装为官方编译,稳定,安装过程相对简单,也可以指定相关目录,移植性高;但不可定制相关功能。...原创 2018-10-11 14:49:07 · 1634 阅读 · 0 评论 -
redis安装文档
一、下载源码包并解压编译redis官网地址:http://www.redis.io/tar xf redis-stable.tar.gzcd redis-stablemake 编译完成后,在src目录下,有3个可执行文件redis-server、redis-benchmark、redis-cli。然后拷贝到redis目录下。mkdir /usr/lo...原创 2018-11-27 15:39:25 · 260 阅读 · 0 评论 -
mysql误删除数据后的恢复策略
一、系统环境配置情况系统环境: Linux 2.6.32-754.3.5.el6.x86_64数据库环境:mysql 5.7.23日志格式: MIXEDgtid:启用备份策略:利用xtrabackup每天凌晨00:00自动完全备份 二、模拟场景 某技术人员在上午10点不小心trancate了一个表,上午11点发现了异常需紧急恢复被删除的数据。 三、...原创 2018-12-20 11:23:18 · 1027 阅读 · 1 评论 -
Python模拟Redis与Mysql交互实现一个简单的二级缓存
基本逻辑:1、先查询Redis是否存在目标数据,存在即输出,不存在则查询Mysql;2、从mysql取出目标数据存入Redis后设置过期时间,输出目标数据。 mysql目标数据结构:CREATE DATABASE hyy_db;CREATE TABLE hyy_tab( id INT NOT NULL AUTO_INCREMENT COMMENT 'id', NA...原创 2018-12-25 14:13:04 · 773 阅读 · 0 评论 -
mysql表空间增长超量告警脚本
比较简单的一个逻辑,通过information_schema.tables输出表空间数据大小,在两个时间点进行比较,增量大于1000000000b则发邮件警报,我这里设定的时间间隔为七天#!/bin/bashmysql=/usr/local/mysqluser=yourdatabaseuserpasswd=yourdatabasepasswdnow=/datalengt...原创 2018-06-13 20:33:15 · 367 阅读 · 0 评论 -
mysqldump定时任务生成备份文件内容为空解决方法
问题:写好了一个mysqldump备份脚本(如图)直接执行可以正常生成备份文件,但在用crontab运行时却生成内容为空原因:由于mysqldump存在于全局环境变量mysql的bin下面,故在直接运行时可以直接识别到mysqldump命令,而在crontab里面无法识别到mysqldump命令。解决:在备份脚本里面的mysqldump命令前加上绝对路径,如图...原创 2018-05-25 09:54:13 · 6299 阅读 · 2 评论 -
masterha_check_repl --conf=/etc/masterha/app1.cnf的各种报错及解决方法
masterha_check_repl --conf=/etc/masterha/app1.cnf的各种报错及解决方法 1、错误:User repl does not exist or does not have REPLICATION SLAVE privilege! Other slaves can not start replication from this host解决方...原创 2018-03-07 20:56:06 · 5467 阅读 · 0 评论 -
写给想从事数据库方面工作的朋友
经常有人问我,有关数据库方面的职位、职业规划、转型等相关的问题。对于经常听到的“DBA(数据库管理员)、数据库开发工程师、数据挖掘工程师、数据库架构师......”这些职位,之前我也比较迷惑,甚至搞不清楚这些岗位具体的工作任务和职责,更别提什么职业规划了。后来询问了一些专门从事数据库方面工作的朋友,也查了一些资料,加入了自己的一点点见解。抽空整理了一下,写出本文,希望能够帮助到想走这条路...转载 2018-02-28 11:31:53 · 16258 阅读 · 0 评论 -
MHA相关命令
1、检查SSH配置(监控节点)masterha_check_ssh --conf=/etc/masterha/app1.cnf 2、检查整个集群的复制情况(监控节点)masterha_check_repl --conf=/etc/masterha/app1.cnf(记得:set global read_only=1;)3、MHA监控启动及关闭(监控节点)启动:nohup masterha_mana...原创 2018-03-14 17:40:05 · 391 阅读 · 0 评论 -
MYSQL MHA
MySQL高可用之MHA的搭建 MySQL MHA架构介绍:MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的...转载 2018-03-15 12:00:49 · 433 阅读 · 0 评论 -
mysql-mmm配合amoeba实现高可用、读写分离及负载均衡
mysql-mmm配置请查看:http://blog.csdn.net/xyz846/article/details/7451774mysql-mmm只是把数据库的读写功能分离出来,对于web服务器不可能说我要执行读的功能就连接哪个IP,要执行写的功能就连接哪个IP,这是不可能的,解决这一问题我使用amoeba(变形虫)数据库透明代理,根据执行的sql可自动路由至相应的Ip,很好地结合mysql-...转载 2018-03-15 12:00:58 · 391 阅读 · 0 评论 -
索引合并和组合索引的比较
在教务系统补考子系统的开发过程中,安排考场的算法运算时间非常慢,需要32秒才能完成考场的分配。查找原因,由于需要在学生补考科目表里面进行查找数据——该表的数据目前已达200万条,所以算法的大部分时间都花在查找数据方面。为了解决以上问题,我们决定对数据表进行分析,创建合适的索引。在创建索引过程中,我们发现查询语句已经为查询列创建了索引,但是是为每个列单独创建的——SELECT * FROM TA...转载 2018-03-09 14:26:22 · 2079 阅读 · 0 评论 -
MYSQL主从复制同步报错解决方法
1、手动在补全数据2、show slave status\G;若有报错信息,在slave机器上执行stop slave ;set global sql_slave_skip_counter=1;start slave;可以重复执行,直到没有报错信息。...原创 2018-03-02 15:36:34 · 376 阅读 · 0 评论 -
MySQL半同步复制
MySQL半同步复制 从MySQL5.5开始,MySQL以插件的形式支持半同步复制。如何理解半同步呢?首先我们来看看异步,全同步的概念 异步复制(Asynchronous replication)MySQL默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已经接收并处理,这样就会有一个问题,主如果crash掉了,此时主上已经提交的事务可能并没有传到从...转载 2018-03-15 12:01:11 · 107 阅读 · 0 评论 -
MHA原master宕机后的恢复
场景:原master(192.168.1.113)停止,MHA主动把主库功能切换到备用master(192.168.1.24),同时slave(192.168.1.150)指向新的master。1、mha每次自动切换之后都会结束自身进程(可以安装安装一个进程工具,通过该工具结合脚本来管理进程。可以参考官方资料:https://code.google.com/p/mysql-master-ha/wi...原创 2018-03-14 17:18:10 · 2985 阅读 · 0 评论 -
MMM配置文件及相关命令
1、/etc/mysql-mmm/mmm_common.conf所有节点的命令配置文件,内容一样2、/etc/mysql-mmm/mmm_agent.conf代理节点的配置文件,配置对应的虚拟主机名3、/etc/mysql-mmm/mmm_mon.conf监控节点的配置文件4、/var/log/mysql-mmm/mmm_mond.log监控节点日志5、启动服务代理节点:chkconfigmysq...原创 2018-03-21 11:32:19 · 1480 阅读 · 0 评论 -
Mysql 查看及设置事物隔离级别
Mysql 查看及设置事物隔离级别1.查看SELECT @@tx_isolation2.设置 2.1所有级别 1)read uncommitted : 读取尚未提交的数据 :哪个问题都不能解决2)read committed:读取已经提交的数据 :可以解决脏读 ---- oracle默认的3)repeatable read:重读读取:可以解决脏读 和 不可重复读 ---mysql默认的4...转载 2018-03-31 17:02:05 · 619 阅读 · 0 评论 -
sysbench安装、安装报错解决方法以及简单使用
sysbench 介绍SysBench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。它主要包括以下几种方式的测试:cpu性能磁盘io性能调度程序性能内存分配及传输速度POSIX线程性能数据库性能(OLTP基准测试)目前sysbench主要支持 MySQL,pgsql,Oracle 这3种数据库。sysbench 安装默认支持MySQL,如果需要测试...转载 2018-04-23 15:17:01 · 4674 阅读 · 0 评论 -
Repeatable-Read及Read-Committed区别
mysql 默认提供的是 Repeatable-Read 可重复读,更适用于oltpRead-Committed 不可重复读 也可以叫做提交读在MySQL中基本有这两种事务隔离级别的设置,默认的RR(Repeatable-Read)和实际中常见的RC(Read-Committed)。两者区别是什么,怎么正确理解,用几个SQL语句就能说明白,就用简单的实验来说明白。 我们开始吧。 首...转载 2018-04-24 16:28:28 · 10012 阅读 · 0 评论 -
二进制日志相关参数及命令
一、二进制日志记录模式binlog模式总共可分为以下三种:row,statement,mixed1.Row日志中会记录成每一行数据被修改的形式,然后在slave端再对相同的数据进行修改,只记录要修改的数据,只有value,不会有sql多表关联的情况。优点:在row模式下,bin-log中可以不记录执行的sql语句的上下文相关的信息,仅仅只需要记录那一条记录被修改了,修改成什么样了,所...原创 2018-04-27 11:09:11 · 725 阅读 · 0 评论 -
mysqldump数据备份及回复
备份:mysqldump -uroot --flush-logs --master-data=2 --single-transaction --routines --events --databases dbname -p > /pack/dumpname恢复:1、先恢复备份的数据:mysql -uroot -p dbname < /pack/dumpname2、再恢复备份位置到当前位...原创 2018-04-27 18:41:32 · 256 阅读 · 0 评论