自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weiliu1463的专栏

oracle性能优化

  • 博客(54)
  • 资源 (4)
  • 收藏
  • 关注

转载 VM.SWAPPINESS=0在最新内核中可能会OOM,MYSQL被意外KILL

请使用RHEL/CentOS 6.4及更新版本内核的MySQL同志们注意,vm.swappiness = 0的默认行为修改了,如果继续设置vm.swappiness = 0,有可能导致系统内存溢出,从而导致MySQL被意外kill掉。 在之前的《LINUX上MYSQL优化三板斧》中,我们建议大家把 vm.swappiness = 0 设置好。来尽量避免MySQL的服务器内存被交换出

2014-08-22 11:48:16 675

原创 Sysbench安装和基准测试

摘要:      sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。目前支持的数据库有MySQL、Oracle和PostgreSQL。当前功能允许测试的系统参数有:file I/O performance (文件I / O性能)scheduler performance (调度性能)memory all

2014-08-14 15:23:03 648

原创 Query Cache

MySQL Query Cache 就是用来缓存和 Query 相关的数据的。具体来说,Query Cache 缓存了我们客户端提交给 MySQL 的 SELECT 语句以及该语句的结果集。大概来讲,就是将 SELECT 语句和语句的结果做了一个 HASH 映射关系然后保存在一定的内存区域中。在大部分的 MySQL 分发版本中,Query Cache 功能默认都是打开的,我们可以通过调整 My

2014-06-24 16:51:08 699

原创 memcached命令行参数说明

1、启动Memcache 常用参数-p       设置TCP端口号(默认不设置为: 11211)-U       UDP监听端口(默认: 11211, 0 时关闭) -l   绑定地址(默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问)-d                    以daemon方式运行-u

2014-06-24 16:33:25 515

原创 XtraBackup备份原理图解

完整备份过程如图:准备和恢复数据阶段过程如图:首先应用xtrabackup日志提交事务应用到InnoDB,然后回滚未提交事务增量备份过程如图:对于增量备份只对InnoDB,MyISAM和其它引擎仍然是完整备份的方式,增量备份主要是处理InnoDB中有变更的页(页的LSN).LSN信息在xtrabackup_checkpoints中.增

2014-06-24 15:09:35 753

原创 使用Percona XtraBackup备份工具创建MySQL Slave

使用Percona XtraBackup备份工具创建MySQL Slave在原来搭建MySQL Slave如果可以停同步停库对应用响应要求不高,直接拷贝数据到新备库,配置好后在启用同步就可以了.但是在一些紧急情况下:比如业务超级繁忙的系统,数据库和同步又不能停去做一个MySQL Slave,这个时候XtraBackup就派上用场了.下面重点介绍用XtraBackup做MySQL S

2014-06-24 15:07:52 985

原创 FIO压力测试IOPS

FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。 1、FIO的安装大家可以去fio的官网上去下载,我已经下载好了,我的系统版本是RedHat 6.4

2014-06-17 13:32:11 1878

原创 mysql索引原理之B+/-Tree

索引,是为了更快的查询数据,查询算法有很多,对应的数据结构也不少,数据库常用的索引数据结构一般为B+Tree。1、B-Tree关于B-Tree的官方定义个人觉得比较难懂,通俗一点就是举个例子。假如:一本英文字典,单词+详细解释组成了一条记录,现在需要索引单词,那么以单词为key,单词+详细解释为data,B-Tree就是以一个二元组{key,data}来定义一条记录。如果一个节点有

2014-05-29 21:31:50 695

原创 mysql索引原理之聚簇索引

索引分为聚簇索引和非聚簇索引。以一本英文课本为例,要找第8课,直接翻书,若先翻到第5课,则往后翻,再翻到第10课,则又往前翻。这本书本身就是一个索引,即“聚簇索引”。如果要找"fire”这个单词,会翻到书后面的附录,这个附录是按字母排序的,找到F字母那一块,再找到"fire”,对应的会是它在第几课。这个附录,为“非聚簇索引”。由此可见,聚簇索引,索引的顺序就是数据存放的顺序

2014-05-29 21:20:15 673

原创 Mysql架构

写在前面:最早接触的MySQL是在三年前,那时候MySQL还是4.x版本,很多功能都不支持,比如,存储过程,视图,触发器,更别说分布式事务等复杂特性了。但从5.0(2005年10月)开始,MySQL渐渐步入企业级数据库的行列了;复制、集群、分区、分布式事务,这些企业级的特性,使得现在的MySQL,完全可以应用于企业级应用环境(很多互联网公司都用其作为数据库服务器,尽管节约成本是一个因素,但是没有强

2014-05-29 18:10:57 547

原创 索引与优化

写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),

2014-05-29 18:07:21 541

原创 mysql复制replication

1、复制概述1.1、复制解决的问题数据复制技术有以下一些特点:(1)    数据分布(2)    负载平衡(load balancing)(3)    备份(4)    高可用性(high availability)和容错1.2、复制如何工作从高层来看,复制分成三步:(1)    master将改变记录到二进制日志(binary log)中(这些记录叫做

2014-05-29 17:55:12 518

原创 mysql事务提交

5.3.1事务提交流程MySQL的事务提交逻辑主要在函数ha_commit_trans中完成。事务的提交涉及到binlog及具体的存储的引擎的事务提交。所以MySQL用2PC来保证的事务的完整性。MySQL的2PC过程如下:(1)先调用binglog_hton和innobase_hton的prepare方法完成第一阶段,binlog_hton的papare方法实际上什么也没

2014-05-29 17:42:20 1064

原创 GAP LOCK引起的死锁

先了解一下什么是GAP LOCK在INNODB中,record-level lock大致有三种:Record, Gap, and Next-KeyLocks。简单的说,RECORDLOCK就是锁住某一行记录;而GAPLOCK会锁住某一段范围中的记录;NEXT-KEYLOCK则是前两者加起来的效果。下面是MYSQL官方文档中相关内容的链接http://dev.mysql.co

2014-05-29 14:08:31 1704

原创 XtraBackup

一、 简介        我们知道,针对InnoDB存储引擎,MySQL本身没有提供合适的热备工具,ibbackup虽是一款高效的首选热备方式,但它是是收费的。好在Percona公司给大家提供了一个开源、免费的Xtrabackup热备工具,它可实现ibbackup的所有功能,并且还扩展支持真正的增量备份功能,是商业备份工具InnoDB Hotbackup的一个很好的替代品。Xtra

2014-05-27 00:44:41 537

原创 MySQL 索引原理解析

Reference: http://tech.it168.com/a2011/0711/1216/000001216087_all.shtml  内节点不存储data,只存储key;叶子节点不存储指针。  同样也是一颗B+Tree,data域保存数据记录的地址。因此,MyISAM中索引检索的算法为首先按照B+Tree搜索算法搜索索引,如果指定的Key存在,则取出其data域的值,然后以

2014-05-26 18:39:47 372

原创 shell批量kill

#It is used to kill processlist of mysql sleep  #!/bin/sh  while :    do    n=`mysqladmin processlist -uadmin -pxxxxx|grep -i sleep |wc -l`    date=`date +%Y%m%d\[%H:%M:%S]`    echo $n  

2014-05-26 18:02:37 621

原创 MySQL复制--最快的从库搭建方法(tar包)

-- 重新开一个shell窗口,去数据文件目录tar包开启窗口2[root@myfstv_21_11 data]# tar -zcvf mysqla1.tar.gz mysqlatar -zcvf mysqla1.tar.gz mysqla  压缩完毕切换到窗口1,执行解锁命令mysql> unlock tables;              Query OK, 0 ro

2014-05-26 17:48:55 440

原创 sync_binlog

从库提供read服务,单独创建用户的时候建议不写入binlog日志 在当前client连接的sessiion中,执行操作的时候,关闭二进制日志,这样下面的所有ddl以及dml操作sql不会写入到binlog中,也不会被同步到slave中。set sql_log_bin =0; 授予访问权限GRANT select ON cart.* TO 'xxxx'@'xxxxxx;

2014-05-26 17:06:33 1247

转载 数据库服务器参数优化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_cache =

2014-05-26 16:55:07 873

转载 mysqldump全备份脚本mysqlallbackup.sh

mysqlallbackup.sh:MySQL DataBase Full Backup.# Use mysqldump --help get more detail.# 20.20.21.11 : mysqla# set -x# define data directymysqlDir=/usr/local/mysqla# defile user,pwddataBackupDir=/data/ba

2014-05-26 16:23:57 442

转载 利用Xtrabackup备份集合恢复一台从库的过程

1 Xtrabackup原理简介xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。     xtrabackup有两个主要的工具:xtrabackup、innobackupex   (1)xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyI

2014-05-26 16:04:49 1271

原创 MySQL备份方案-->(利用mysqldump以及binlog二进制日志)

随着数据不断增加,而且为了兼容以后的innodb存储引擎, 所以考虑采用mysqldump全备+日志增量备份的策略。使用mysqldump对于mysql大部分mysql存储引擎比如myisam、innodb都有很好的支持。 方案一:mysqldump全备份+日志增量备份1, mysqldump备份方案:周一凌晨3点全备周二到周日凌晨3点增量备份 2, 备份步骤(1)

2014-05-26 15:47:10 497

原创 清理MySQL数据库的过期binlog日志

这2天业务量增长比较快,猜测可能是产生了过多的binlog导致的。[xxx@xxxx cacti]$ ssh xxxx  " sudo -u mysql ls /mysqldata/data/" |grep mysql-bin  mysql-bin.001350  .......  mysql-bin.002352  mysql-bin.log.index  

2014-05-26 13:48:17 592

转载 MySQL配置文件my.cnf优化详解

1、配置参数MySQL有两种途径途径了解其的配置参数,一个是MySQL交互模式下的命令SHOW  VARIABLES,一个使用mysqladmin variables 查询。MySQL的配置参数分为2种,全局的和局部的。局部的配置变量可以在每次会话中自己更改。从MySQL 4.0以后开始,在SHOW VARIABLES中显示的参数,大部分可以动态使用SET命令进行更改。

2014-05-26 13:18:06 708

转载 MySQL存储引擎MyISAM和InnoDB的区别及mysql优化

学习的过程中从网上看到的,自己综合了一下,把看到的东西作了一个汇总……优化WHERE从句:即使你只搜索一行MySQL也会查询整个表,因此,建议你当只需要一条结果时将limit设置为1。通过这样做,可以避免系统贯穿搜索整个表,从而可以尽可能快找到与你需求相匹配的记录。MySQL的每个数据库目录中有一个文件db.opt,该文件主要用来存储当前数据库的默认字符集和字符校验规则

2014-05-26 12:55:34 390

转载 Innodb存储引擎内存报警问题处理过程

1 不停的收到email报警,内存值超过阀值80%了。2 top下,mysqld进程确实占据了77.5%,再加上一些其他的辅助进程,内存usage到了81%也可以理解。[xxx@00903 5.5.25a]$ toptop - 03:48:55 up 51 days, 17:11,  2 users,  load average: 0.09, 0.09, 0.11Tasks

2014-05-26 12:03:36 429

原创 MySQL 5.1.73升级为MySQL 5.5.35

一、前言前几篇博客中我们讲解了MySQL5.1与MySQL5.5之间的性能差异 http://www.linuxidc.com/Linux/2014-01/94782.htm ,MySQL5.5的性能有明显的提升,特别是对多核CPU的支持与TPS性能的提升。在这篇博客中我们将主要讲解MySQL 5.1.73升级为MySQL 5.5.35。下面我们继续……二、概述1.安装yum源[root@node

2014-05-26 10:17:54 629

转载 mysqldump全备和增量备份

本篇文章主要讲如何使用shell实现mysql全量,增量备份。增量备份在周一-周六凌晨3点,会复制mysql-bin.00000*到指定目录;而全量备份则使用mysqldump将所有的数据库导出,每周日凌晨3点执,并会删除上周留下的mysq-bin.00000*。然后对mysql的备份操作会保留在bak.log文件中。如下图:开始:2013年05月02日 15:10:57 结束:2013年05

2014-05-23 17:31:21 667

原创 ssh_exchange_identification: Connection closed by remote host

ssh_exchange_identification: Connection closed by remote host走了许多弯路。写解决方法 主要是 /etc/hosts.allow 和 /etc/hosts.deny问题 最好两个都设置一下。因为有些系统是先load hosts.allow 再 load hosts.allow .有些相反。 hosts.allow:

2014-05-23 15:05:15 420

转载 [生产环境数据恢复]innobackupex: fatal error: OR no 'datadir' option in group 'mysqld' in MySQL options

1 执行恢复命令 [xxx@xxx-c001db1 tmp]$ time /usr/bin/innobackupex --rsync --user="user" --password="#xxx$" /mysqldata/shared/backup [--rsync ] 可以记录master点,以便进行复制设置。InnoDB Backup Utility v1.5.1-xtra

2014-05-23 10:30:24 723

转载 自动化恢复MM中一台M2库的过程

1  简介有N0+组MM节点,如果每次都是手动修复,一次两次还好,次数多了难免有些无用功了,因为建立自动脚本,避免每次都在M库手动备份,手动copy,手动建立连接,手动设置复制信息的过程,我的目的,一个sh run command,所有的事情都准备妥当了:2  环境必须是MM架构,而且一台主库M1是完好无损的,一台主库M2可以根据M1主库来进行重建;如果MS架构

2014-05-23 10:19:34 589

原创 Cannot load from mysql.proc. The table is probably corrupted

执行MySQL相关操作的时候,出现如下错误:ERROR 1548 (HY000): Cannot load from mysql.proc. The table is probably corruptedGoogle获知是因为升级或者数据版本迁移的问题,忽然想起前段时间确实把MySQL5.版本的数据迁移到了现在的MySQL5.5上,罪过罪过,Linux终端下执行如下命令即可修复:

2014-05-23 09:58:29 537

转载 InnoDB: Error: Table "mysql"."innodb_table_stats" not found

1,Mysqldump的时候报错如下:2014-05-05 14:12:37 7f004a9a2700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.但是show tables我看这个表示存在的:但是show create table innodb_index_stats;报错如下:

2014-05-23 09:45:53 833

原创 使用TCMalloc可选择使用内存分配程序

在mysql5.5中可通过my.cnf中设置innodb_use_sys_mallocla

2014-05-22 17:33:04 513

原创 innoDB同时支持多个BufferPool实例

InnoDB用来缓存他的数据和索引的内存缓冲区daxi

2014-05-22 16:54:45 674

原创 让innodb_buffer_pool缓冲池中的热数据更久

innodb_buffer_pool缓冲池有两个区域,一个是sublist of new blocks区域(经常被f)

2014-05-22 16:18:00 933

原创 增加自适应刷新脏页功能

这个是在innoDB plugin中引入的。

2014-05-21 23:03:10 780

原创 调整刷新脏页处理innodb_io_capacity

在5.1.X版本中,最多只会刷新100个

2014-05-21 22:42:41 7120

原创 利用CPU多核处理

在MySQL5.5.X后,可以利用innodb_read_

2014-05-21 22:05:38 820

开启远程主机的Telnet服务vc++

开启远程主机的Telnet服务vc++,网络攻击与防御

2011-01-09

多线程写的端口扫描程序代码

多线程写的端口扫描程序代码,网络攻击与防御

2011-01-09

用Java开发山寨qq源码

用Java开发山寨qq源码,用户短与服务器端

2010-04-28

空空如也

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

TA关注的人

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