存档

‘数据库’ 分类的存档

关于慢查询日志的分析

2014年12月22日 2,079 views 没有评论
慢查询日志是常用的性能分析工具。目前线上有两种发送慢查询日志分析结果给研发的手段
  1. 数据库 报表监控平台,每天用mysqldumpslow命令分析慢查询日志,然后使用邮件的方式发送分析结果给研发同学;
  2. DBA手动使用mysqldumpslow或者pt-query-digest等工具分析慢查询日志,然后邮件给研发同学,并给予意见,一般是对于可能存在性能问题的数据库服务进行性能分析。

以下介绍慢查询日志的一些工具和分析思路。在研发、测试阶段,就可以针对性的调优了。

优化策略

性能优化很重要的一个步骤是识别导致问题的BAD SQL。一般的数据库调优,往往调优人员会采用调优TOP 10的策略,如果我们把最“昂贵”10个查询优化完(或者更高效地运行它们,或者添加一个索引),那么我们就会立即看到对整体MySQL的性能的提升。然后我们就可以重复这一过程,并优化新的前10名的查询。就我的经验,一般一轮迭代就可以了。以后随着业务发展、用户流量增加,又进行新的一轮调优。

慢查询日志的格式

不同数据库TOP 10基于的标准可能不太一样,商业数据库提供了更完善的成本[……]

Read more

分类: 数据库 标签:

aws的资源管理和安全

2014年9月28日 1,674 views 没有评论

1、为了安全,另外创建用户来管理资源是一个好习惯。亚马逊允许我们创建IAM 用户,赋予用户/用户组适当的权限。我们应该给每个管理资源的用户都创建一个帐号,赋予他们最小的权限。我们可以使用IAM GROUPs来更有效的管理多个用户的权限。定期重置账号也是一个好习惯。

2、Amazon EC2 使用公有密钥密码术加密和解密登录信息,亚马逊存储公钥,我们存储私钥。公有密钥密码术使用公有密钥加密某个数据(例如一个密码),然后收件人可以使用私有密钥解密数据。公有和私有密钥被称为密钥对。我们在配置EC2实例的时候,需要指定密钥对或者创建新的密钥对,配置后,会弹出对话框下载私钥文件到本地,以后用securecrt或者putty登录我们的系统时,需要提供此私钥文件。

对于putty,下载的密钥文件不能直接使用,还需要做一些转换,可设置私钥口令,提供额外的安全性。私有密钥的口令是一层额外保护,因此,即使您的私有密钥被泄露,在没有口令的情况下,该密钥仍不可用。使用口令的缺点是让自动化变得更难,因为登录到实例或复制文件到实例需要进行人为干预。

3、安全组控制着流量在数据库实例内外拥有的访问[……]

Read more

分类: 数据库 标签:

容量,扩展性,性能的区别

2014年8月25日 1,136 views 没有评论

这段描述比较形象,记录于此。

 

容量,扩展性,性能彼此是有区别的, 一个简单的比喻, 如高速公路上的汽车:

* 性能(Performance)就是车速有多快

* 容量(Capacity)就是车道数 * 最大安全速度

* 扩展性(Scalability)就是你在何种程度上可以添加更多的汽车和更多的车道,而不减缓交通速度。

那么,可以看出扩展性会取决于许多因素,如车的交互,车的故障,车的异常,不同的车速,车的换道。往往并不取决于车有多强劲,即使不是高性能,那么系统仍然可以是可扩展的。

 

性能测试报告

2014年6月21日 3,398 views 没有评论

    性能测试报告

网上的许多测试报告/包括厂商的产品报告往往具有误导性。如果说普通的用户做测试,往往是因为对于软硬件知识的欠缺,情有可原,但厂商特别是夸大其词的公司,则应该被鄙视,比如Tokyo Cabinet这些产品 ,市场的考验是无情的,只靠营销或者吹捧,往往没有生命力。

那么我们应该如何看待一份正常的测试报告呢 ?

我想,

至少需要说明测试的场景,服务器的软硬件配置,物理部署和数据流。

 

对于自己的测试结果,要尽可能的加以详细的说明,可能不得不接受一个现实,解析测试结果已经超过了测试人员的知识范围里,特别是被一些额外的外来因素影响。

如果测试出现了一些性能/容量上的差异,那么应该简明扼要的说明是哪些因素导致的?

如果同时调整了太多参数,然后得出一个结论,往往不具备说服力,应该尽可能地少调整参数,然后加以对比,除非你对参数调整的效果非常有经验。

如果对比许多类不同的产品,往往准确性不够,可信度不高,网上的各种一下子列举出5,6,7,8种NOSQL产品,然后加以对比的测试报告,建议持有一定的怀疑。

对一些数据库/[……]

Read more

sysbench oltp 执行了哪些操作

2014年6月15日 3,362 views 没有评论

sysbench oltp 执行了哪些操作

sysbench执行测试的时候的行为我们需了解,我打开gnerel日志验证了下。

 

 

1.oltp

初始化数据,如:

CREATE TABLE sbtest8 (

id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,

k INTEGER UNSIGNED DEFAULT ‘0’ NOT NULL,

c CHAR(120) DEFAULT ” NOT NULL,

pad CHAR(60) DEFAULT ” NOT NULL,

PRIMARY KEY (id)

) /*! ENGINE = innodb MAX_ROWS = 1000000 */

9828 Query CREATE INDEX k_8 on sbtest8(k)

进行各种查询,如下,

9830 Query BEGIN

9830 Query SELECT c FROM sbtest1 WHERE id=4969    基于[……]

Read more

数据库性能测试的目的

2014年5月30日 3,031 views 没有评论

数据库性能测试的目的

最近打算做一个数据库开源产品的对比。由于时间有限,所以迟迟没有下手,这里将思考的一些内容放上博客,希望对感兴趣的同学有帮助。

 

性能指标一般是响应时间和吞吐率,这点不再赘述。

我们可能出于不同的目的进行数据库主机的性能测试,比如,

* 采购服务器,我们可能需要测试不同组合配置下的数据库性能,选取一个性价比更好的方案.

* 对比不同系统参数/数据库参数 配置下的数据库性能

* 对比不同的数据库产品

* 对比数据库不同版本的差异

* 一些新特性的试用,验证

* 一些patch的验证

* 对不不同的OS/文件系统/库的差异。

如果都是成熟的数据库产品,我们很难证明在所有指标上,一个产品完胜另外一个产品,产品的设计哲学往往决定了它的优势和劣势,或者说安全、效率、价格、稳定这些因素往往不可兼得。所以我们测试的目的不是要证明存在一个完美的产品,而是在可以接受一定损失/妥协之下可以接受的一个软硬件配置。

比如,insert的速度慢一些往往无关紧要,如果可以有更高的压缩率,更高好的存储效率的话。[……]

Read more

swatch使用

2014年5月15日 4,228 views 没有评论

swatch使用

swatch的安装

这是一个09年的笔记。查看历史日志的工具logwatch大家一般都清楚,但对于实时检查日志的一些工具,大家也许就不熟悉了。

在早期监控机制没有建立起来的时候,swatch还是帮了不少忙的,它可以实时监控日志。节省许多编写监控脚本的时间。

以下安装、使用供参考,

安装swatch

rhel 4.8,5.3,5.4 需要升级Perl到5.10, 否则swatch安装会失败.
perl升级到5.10
perl -v             #如果perl为5.8,那么需要升级到5.10
cd
mkdir pkgs
cd pkgs
wget http://www.cpan.org/src/perl-5.10.1.tar.gz
tar zxvf perl-5.10.1.tar.gz
cd perl-5.10.1
./Configure -des
make
make install
cd /usr/bin;mv perl perl.bak;ln -s /usr/local/bin/perl .
安装swat[……]

Read more

分类: 操作系统, 数据库 标签: ,

您的安全设置已阻止自签名的应用程序运行

2014年5月14日 3,707 views 没有评论

您的安全设置已阻止自签名的应用程序运行

从 Java 7 Update 51 开始,具有自签名证书的应用程序默认情况下会被阻止。此类型的应用程序具有最高级别的风险,因为发行者无法识别,并且可能会授予应用程序访问您计算机上的个人数据的权限。

解决方案

控制面板->程序->Java->安全

将安全级别调至“中”

 

参考:http://blog.163.com/zzl7758@126/blog/static/130280405201401523929768/

分类: 数据库 标签:

pt-show-grants使用

2014年5月9日 3,339 views 没有评论

pt-show-grants

导出权限的工具.方便制作主从. 因为有时我们不想导出导入mysql库(可能导致兼容性问题)
可以方便对比数据库之间的权限差异.
可以方便回收权限
语法: pt-show-grants [OPTION…] [DSN]
示例:
1. 导出权限:
pt-show-grants u=root,P=3306,S=/tmp/mysql.sock
分类: 数据库 标签: ,

InnoDB的IO优化

2014年5月9日 3,317 views 没有评论

    InnoDB的IO优化

突然要临处理线上数据库问题,等待的过程太久, 马马虎虎写了点对于IO的优化。

状态不佳,凌晨1点,要睡觉了。作为一个IT人,要切记充分锻炼、充分休息。

 

对于传统数据库的IO优化,一般有几个方向,如1, 减少数据库的写入。2,使用时间换空间,比如压缩。3,利用物理设备的空间时间 局部性(Locality)特征。4,把随机读写转换成顺序读写。5,缓存数据,一般传统数据库都有自己的buffer pool 。

以下简单说说具体的实现,Innodb的常用的参数、大家已知的定义、设置、作用我就不细说了。大家可以google下具体的参数作用。

减少page size    一些第三方版本早就实现了自定义的page大小,MySQL官方版本高版本才有提供此功能,低版本的话,你可以用源码编译的方式实现,如果不是追求极致的话,不建议源码编译的方式改变page size,因为可能没有经历过大规模的考验。InnoDB的压缩技术可以考虑用下,对效率和空间上取得平衡,一般16KB使用2倍压缩,8KB使用2倍压缩是可行的。

关闭 do[……]

Read more