自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(132)
  • 资源 (1)
  • 收藏
  • 关注

转载 在Linux 下 用HAProxy给MySQL做负载均衡

写在前面:由于mysql master 主机上的xinet传给Haproxy的状态不稳定,haproxy会不停的切换mysql主机,造成网站应用反应慢,建议做mysql主从服务器者谨用(用mysql-proxy读写分离代替),mysql cluster方案可以用。1. 添加监控MySQL状态的端口在db服务器上(每台都一样)安装xinetd # yum instal

2015-05-15 16:53:56 520

转载 阅读xtrabackup代码的一点笔记

xtrabackup binary最重要的两个过程是backup和prepare,对应的函数分别是xtrabackup_backup_func()和xtrabackup_prepare_func(),这里做一些阅读代码时的笔记。 xtrabackup backup的线程模型:1. 一个log拷贝线程;2. n个ibd文件拷贝线程;3. 一个io监控线程;

2015-05-04 19:44:47 814

转载 mysql主备库数据不一致的原因和解决方案

主备数据不一致常见原因1 备库写数据   2 执行non-deterministic query   3 回滚掺杂事务表和非事务表的事务4 binlog或者relay log数据损坏应对措施1 禁止修改备库数据2 采用row-based replication3 避免同一个事务中同时引用innodb和myisam表4 开启binlog checksum其

2015-05-04 10:49:36 2839

转载 MySQL 复制延迟

MySQL复制被普遍认为是十分有效的,主服务器进行更改后,从服务器可在几秒内做出相应的改动。但如果发生两者之间同步缓慢的问题, 那么主要有以下两个原因:从结点磁盘问题: 复制操作对每个数据库都是由一个线程来完成,通常执行变更时的滞后是由磁盘延迟引起的。在这种情况下,您应该考虑使用SSD加速这个过程。 带宽低/网络延迟高: 如果两个服务器位于远程位置(高延迟的情况下)或服务器之间的存

2015-04-30 11:58:17 456

原创 利用pt-table-checksum做主从一致性校验

主从数据的一致性校验是个头疼的问题,偶尔被业务投诉主从数据不一致,或者几个从库之间的数据不一致,这会令人沮丧。通常我们仅有一种办法,热备主库,然后替换掉所有的从库。这不仅代价非常大,而且类似治标不治本的方案,让人十分不安。因此我们需要合适的工具,至少帮我们回答下面三个问题:是从库延迟导致了用户看到的数据不一致,还是真的主从数据就不一致?如果不一致,这个比例究竟多大?下次还会出现吗?

2015-04-29 13:44:37 1490

原创 MySQL搭配XFS文件系统优势最大

来自国外问答SNS网站Quora的一个问题:XFS、ZFS和ext3这3个文件系统哪个能够与MySQL产生最佳的性能?对此,来自Facebook的资深数据库专家Domas Mituzas给出了自己的解答,他认为MySQL最适合XFS文件系统。  在XFS文件系统的Linux版本发布之前,选择适合的Linux文件系统很简单,追求原始性能通常倾向于使用ReiserFS,而重视数据完整性则首 选

2015-04-29 10:07:36 1707

原创 ERROR 2006 (HY000) at line xx: MySQL server has gone away

1.执行批量的MYSQL语句,例如备份恢复的时候,时间过长。 对应:修改my.cnf中的wait_timeout和interactive_timeout变量 在一些不便修改的情形下,如租用的空间,可以采取sql语句修改,如何做呢? 解决办法找到my.ini文件添加一句max_allowed_packet=16M,如果不行将16M再加大加大wait_timeo

2015-04-29 09:48:39 644

原创 查看MYSQL数据库中所有用户及拥有权限

查看MYSQL数据库中所有用户mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;+---------------------------------------+| query                                 |+-

2015-04-28 15:55:36 496

原创 pt-table-checksum工具使用报错

今天同事在用 percona toolkit 工具中的 pt-table-checksum 对主从数据库进行校验,提交命令后,一直提示下面的信息:Pausing because Threads_running=0看字面意思是在提示当前活跃线程数为0,但为什么不继续执行呢。这个提示信息有点含糊其辞,该工具是用Perl写的,因此直接打开看脚本跟踪一下,大概就明白怎么回事

2015-04-28 14:32:24 871

转载 MySQL 温故而知新--Innodb存储引擎中的锁

最近碰到很多锁问题,所以解决了后,仔细再去阅读了关于锁的书籍,整理如下:1,锁的种类Innodb存储引擎实现了如下2种标准的行级锁:?  共享锁(S lock),允许事务读取一行数据。?  排它锁(X lock),允许事务删除或者更新一行数据。 当一个事务获取了行r的共享锁,那么另外一个事务也可以立即获取行r的共享锁,因为读取并未改变行r的数据,这种

2015-04-28 14:01:24 284

转载 MySQL 数据库设计初步规范V1.0

数据库设计规范:1,表设计规范1.1关于表设计a)         表名、列名必须有注释。b)         命名应使用富有意义的英文词汇或者缩写,多个单词组成的,全部大写,以"_"分隔开来,只能使用英文字母,数字和下划线,不留空格。比如USER_DETALL,不允许使用关键字TYPE或者STATUS等来作为字段名。c)         命名长度不

2015-04-28 14:00:21 332

转载 MySQL 实现树形的遍历(关于多级菜单栏以及多级上下部门的查询问题)

前言:        关于多级别菜单栏或者权限系统中部门上下级的树形遍历,oracle中有connect by来实现,mysql没有这样的便捷途径,所以MySQL遍历数据表是我们经常会遇到的头痛问题,下面通过存储过程来实现。1,建立测试表和数据:DROP TABLE IF EXISTS csdn.channel;   CREATE TABLE csdn.channel (

2015-04-28 13:59:45 500

转载 一个比较复杂的多次拆分字符串的存储过程

自己写的特殊拆分函数如下: ​create or replace function FN_SPLIT_STR_2(var_str   in varchar2)return varchar2/* 有一张表 t1,里面有个字段叫c3,存的是所有店铺的点位信息。现在需要一个存储过程,将所有的记录的c3字段的坐标值都缩小3倍,写入c字段内容举例为  220.25 257,2

2015-04-28 13:57:55 527

转载 MySQL5.6.12造成CPU的使用率 2000%的原因

Top得出CPU使用率超高: top - 16:41:04 up 184 days, 21:31,  2 users,  load average: 19.97, 18.38, 18.36Tasks: 584 total,   1 running, 583 sleeping,   0 stopped,   0 zombieCpu(s):  0.0%us,  0.0%sy, 41.2%n

2015-04-28 13:56:46 398

转载 MySQL分组排序取前N条记录 以及 生成自动数字序列 的SQL

-- MySQL分组排序取前N条记录的最简洁的单条sql。USE test;DROP TABLE IF EXISTS test;CREATE TABLE test (  id INT PRIMARY KEY,  cid INT,  author VARCHAR(30)) ENGINE=MYISAM;INSERT INTO test V

2015-04-28 13:56:16 352

转载 MySQL存储过程-->通过游标遍历和异常处理迁移数据到历史表

-- 大表数据迁移,每天凌晨1点到5点执行,执行间隔时间10分钟,迁移旧数据到历史表。DELIMITER $$ USE `dbx`$$ DROP PROCEDURE IF EXISTS `pro_xx`$$ CREATE  PROCEDURE `pro_xx`()BEGIN     DECLARE p_oalid INT DE

2015-04-28 13:55:57 373

转载 关于MySQL Query Cache的一些交流心得

今天线上MySQL 出现内存使用率报警,就去查了下mysql内存使用的参数,重点是缓存,关于innodb_buffer_pool_size以及query cache的使用。query_cache_type  默认是打开的,而且缓存区query_cache_size默认大小是32M,通常建议不超过256M大小,可以用过查询cache参数来看具体值:mysql> s

2015-04-28 13:54:31 337

转载 MySQL存储过程-->长字符串扯分

DELIMITER $$  -- 分隔符USE`test`−−DROPPROCEDUREIFEXISTS‘prosplit‘ -- 如果已经存在则删除procCREATE PROCEDURE `test`.`pro_split` (varchar rids)BEGIN         DECLAREpo INT DEFAULT 0;  -- 定义一个位置点   

2015-04-28 13:53:43 411

转载 Kill掉MySQL中所有sleep的client线程

写了一个脚本,run这个脚本,就可以kill掉MySQL中所有sleep的client线程vim killsleep.sh#It is used to kill processlist of mysql sleep#!/bin/shwhile :do  n=`mysqladmin processlist -uadmin -pxxxxx|grep -i sleep

2015-04-28 13:52:57 380

转载 自增字段 auto_commit的研究分析

MySQL自增字段,自增字段计数器在主存储里面,不在硬盘上(This counter is stored only in main memory, not on disk)。1,添加表,设立自增主键字段create table t(id int primary key auto_increment, name varchar(3000)) engine=innodb;2,可以让

2015-04-28 13:52:23 288

转载 MySQL 存储过程带in和out参数以及PHP,PB如何调用的小例子

最简单的例子:mysql> DELIMITER $$  mysql> USE test $$  Database changed  mysql> DROP PROCEDURE IF EXISTS `sp_add`$$  Query OK, 0 rows affected (0.00 sec)    mysql> CREATE PROCEDURE sp_add

2015-04-28 13:50:00 337

转载 清理8组nodes中表的历史数据,平均每个node中的表有1.5亿条记录,需要根据date_created字段清理8000W数据记录,这个字段没有索引。

清理8组nodes中表的历史数据,平均每个node中的表有1.5亿条记录,需要根据date_created字段清理8000W数据记录,这个字段没有索引。环境介绍 线上磁盘空间不足,truncate了许多能动的表,磁盘空间还是占据了87%,我们的nagios报警阀值是80%。所以不断的还会收到email以及短信报警。需要根据时间字段date_created清理,但是在设计之初由于

2015-04-28 13:49:39 292

转载 修改MySQL的时区,涉及参数time_zone

首先需要查看mysql的当前时区,用time_zone参数mysql> show variables like '%time_zone%';     +------------------+--------+  | Variable_name    | Value  |  +------------------+--------+  | system_time_

2015-04-28 13:48:21 2317

转载 手机在线更新系统MySQL数据库服务器参数优化mycnf,16G内存8核CPU,

务场景: 后台支持手机在线更新系统,db服务器内存16G,8核,dell的pc服务器。qps: 200个左右 tps: 1个左右 一分钟50几个sort_buffer_size = 32M 大了, 8M即可read_buffer_size = 32M 大了,8M即可read_rnd_buffer_size = 16M  大了,8M即可table_open

2015-04-28 13:48:13 360

转载 MySQL 分区表 partition线上修改分区字段,后续进一步学习partition (1)

公司线上在用partition,有一个表的分区字段错了,需要重建,结果发现没有办法像修改主键字段或者修改索引字段那样直接一条sql搞定。而是需要建临时表,有down time,所以去仔细看了文档,研究下partition的细节问题。自己公司线上采取的时候,凌晨1点业务低峰期,执行:建立临时表CREATE TABLE tbname_TMP (    SHARD_ID IN

2015-04-28 13:46:59 819

转载 MySQL 分区表 partition线上修改分区字段,后续进一步学习partition (2) --> 子分区以及对录入Null值的处理情况.

-- MySQL分区, 子分区以及对录入Null值的处理情况. 看完官方文档做的笔记.-- KEY PartitioningPartitioning by key is similar to partitioning by hash, except that where hash partitioning employs a user-defined expression, the h

2015-04-28 13:46:33 803

转载 MySQL 用数字辅助表实现复杂的列变行

某天,QQ上一个圈子内的网友发来一个求助信息 :PropID name   Amount3      元宝   22      乐豆   3能否用一条sql 写成输出,就是复制对应Amount 的条数 :PropID name3      元宝3      元宝2      乐豆2      乐豆2      乐豆 [注释]:

2015-04-28 13:44:41 320

转载 MySQL EXPLAIN 命令详解学习

MySQL EXPLAIN 命令详解MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP)。这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL 语句的。这条命令并没有提供任何调整建议,但它能够提供重要的信息帮助你做出调优决策。1 语法MySQL 的EXPLAIN 语法可以运行在SELECT 语句或者特定表上。如果作用在表上,那么此命令等同于DE

2015-04-28 13:43:24 193

转载 load data 方式导入的数据不可以用binlog日志进行恢复,因为binlog里面不产生insert sql语句。

QQ群里面有人问起这个问题:    用load data 导入数据的时候,在binlog文件中记录的不是insert 语句,这样的话,如果用load data 导入数据,当需要恢复数据库的时候  binlog恢复就不行了 load data local infile '/root/table.txt' into table test.table ;生成binlog 日志

2015-04-28 13:43:11 648

转载 Effective MySQL之SQL语句最优化--索引

1 两个索引取并集组合ALTER TABLE album ADD INDEX name_release (name,first_released);  EXPLAIN SELECT a.name, ar.name,  a.first_released    FROM album a   INNER JOIN artist ar USING (artist_id)

2015-04-28 13:42:37 257

转载 mysqlslap 性能测试工具

-- ===================-- mysqlslap 性能测试工具-- ===================常用参数--concurrency  #代表并发数量,多个可以用逗号隔开。例如:--concurrency=50,200,500--engines  #代表要测试的引擎,可以有多个,用分隔符隔开。例如:--engines=myisam,innod

2015-04-28 13:40:42 409

转载 MySQL DB Server 上面安装 sysbench 作压力测试

2015-02-14记录:附带最新的安装记录(centos6.4):一:bazaar安装方式(扩展后的多表测试)1、安装bazaar工具yum install bzr2、获取源码bzr branch lp:sysbench3、编译安装cd sysbench/; ./configure --prefix=/usr/local/sysbench --with-mys

2015-04-28 13:40:28 724

转载 MySQL服务器性能(通过Sysbench测试cpu、io、内存以及mysql服务等)

-- Sysbench测试Sysbench的安装请参考:http://blog.csdn.net/mchdba/article/details/89512891 CPU测试 sysbench采用寻找最大素数的方式来测试CPU的性能[root@xx sysbench-0.4.12]# sysbench --test=cpu --cpu-max-prime=2000 r

2015-04-28 13:38:48 562

转载 如何远程清理Production上48组MySQL DB Server上面的过期失效的备份!

如何远程清理48组MySQL DB Server上面的过期实效的备份!  刚开始想到一个个从control控制机器ssh进去,rm 掉,然后exit,再通过control机器ssh进去,再rm再exit,这样的话岂不是要操作48次ssh以及exit,48台还能接受,如果是480台,4800台呢,any way ?  OK,我想到了,写一个shell脚本,在control机器上面远程

2015-04-28 13:37:07 622

转载 SQL优化,百万级2张表关联,从40分钟到3秒的历程

表结构如下:  CREATE TABLE `deviceback` (    `id` int(11) NOT NULL AUTO_INCREMENT,    `imei` varchar(100) NOT NULL COMMENT '手机唯一标识',    `mid` varchar(50) DEFAULT NULL,    `mac` varchar(100

2015-04-28 13:36:40 26953 2

转载 MySQL中3种清除binlog的方法!

-- mysql delete log online 1  mysql命令purgemysql> purge master logs to "mysql-bin.000410";Query OK, 0 rows affected (3.71 sec) 2 手动rm清理  rm -rf mysql-bin.00040*;vim mysql-bin.

2015-04-28 13:33:59 338

翻译 想从事DBA工作,该挑选哪一款数据库产品

知乎问这原题:现在主流数据库有很多,作为一个学生以后想从事dba的工作,应该学哪一种呢? 标题修改为:想从事DBA工作,该如何挑选一款数据库产品 mysqlops回答: 不管你想选择哪种数据库产品,有些基础理论知识必须打扎实,尤其是:数据库系统概论、Linux操作系统、SQL标准语言、数据结构(重点排序算法)、开发语言(至少懂几款脚本语言,S

2015-04-28 13:33:08 539

转载 innobackupex-1.5.1: Too many command line arguments

[root@xxxxxxopt]# /usr/bin/innobackupex-1.5.1 –-apply-log /opt/back_data/ --defaults-file=/opt/mysql/product/mysql/etc/my.cnfinnobackupex-1.5.1: Too many command line arguments 还没有找到问题所在

2015-04-28 13:31:57 1569

转载 计算MySQL的内存峰值公式

-- 计算MySQL的内存峰值公式,计算所有的连接满了的情况下:select (@@key_buffer_size + @@query_cache_size + @@tmp_table_size    + @@innodb_buffer_pool_size + @@innodb_additional_mem_pool_size    + @@innodb_log_buffer_si

2015-04-28 13:29:39 540

转载 MySQL被慢sql hang住了,用shell脚本快速清除不断增长的慢sql的办法

某个初级dba误删index,mysql漫山遍野全是10S以上的慢sql,mysql服务被hang住了,而且慢sql不断在增加中,如果手动在mysql界面kill的话,根本来不及,这个时候,shell就必须要出手了,如下的shell脚本,大家可以参考:  #It is used to kill processlist of mysql sleep  #!/bin

2015-04-28 13:28:59 365

calico-3.1.yaml

Calico是一个基于BGP协议的虚拟网络工具,在数据中心中的虚拟机、容器或者裸金属机器(在这里都称为workloads)只需要一个IP地址就可以使用Calico实现互连,calico-3.1.yaml文件,为k8s提供网络支持

2018-03-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除