- 博客(14)
- 收藏
- 关注
原创 MySQL中 metadata lock问题分析
MySQL版本:5.6.12-log Ø 场景一 Session1:Session2:Session3: 至此,我们会产生疑问,MySQL5.6说好的online DDL呢,怎么又会出现Waiting for table metadata lock? 我们先来做个alter动作执行过程中,insert的操作 Sessio...
2014-05-30 10:00:54
316
原创 InnoDB: Error: io_setup() failed with EAGAIN
在一台服务器中以各数据库的备份文件为数据文件启动多个MySQL实例供SQL Review使用。之前运行一直没有问题(最多的时候有23个MySQL实例同时运行),后来新配置了一台服务器,启动其对应的实例时失败。部分错误日志如下:……140505 16:05:59 InnoDB: Using Linux native AIO140505 16:05:59 InnoDB: Warning...
2014-05-30 09:50:50
172
原创 MySQL数据自动清理系统
MySQL数据自动清理系统一、 目标1. 以时间字段为条件,自动清理一定时间之前的数据2. 支持每次小批量分批清理3. 支持自定义执行清理的时间窗4. 支持简单的主从表的关系数据删除 二、清理数据方法1. 通过分区表适用于用于删除的条件的时段字段不会修改的日志表类型1) 支持的分区方法a) 分区单位:天 / 月b) 分区字...
2014-05-20 08:44:15
628
从SQL Server将表和数据迁移到MySQL
由于一些数据库重构项目的需求,最近遇到很多从SQL Server将表和数据迁移到MySQL的需求。这个需求说简单也简单,说麻烦也麻烦。前不久为了把一张大日志表成功导入到mysql,也折腾了不少时间。现在简单整理下实施方案。 首先是表结构的问题: SQL Server中的部分字段类型不能直接沿用到MySQL,需要进行转换,主要有以下几种: 然后是数据迁移的问题:...
2013-09-10 23:43:38
395
MySQL出现Waiting for table metadata lock的场景浅析
MySQL版本为5.6.12。在进行alter table操作时,有时会出现Waiting for table metadata lock的等待场景。而且,一旦alter table TableA的操作停滞在Waiting for table metadata lock的状态,后续对TableA的任何操作(包括读)都无法进行,也会在Opening tables的阶段进入Waiting fo...
2013-09-06 16:22:00
339
Infobright与ToKuDB存储引擎对比测试
Infobright是开源的MySQL数据仓库解决方案,引入了列存储方案,高强度的数据压缩,优化的统计计算(类似sum/avg/group by之类)。TokuDB是一个高性能、支持事务处理的MySQL和MariaDB的存储引擎,其主要特点是对高写压力的支持。我们针对以上两种特殊引擎,和InnoDB作了个简单的对比测试。 压缩性能 InnoDB、Infobright、ToKuDB占用...
2013-08-08 15:12:22
292
MySQL 5.6性能提升的武器:Binlog Group Commit
在MySQL发布第一个5.6的GA版本时,我们对5.5.28 VS 5.6.10 做了个简单的sysbench性能对比测试(见之前的博客),测试是基于我们自己的标准配置(innodb_flush_log_at_trx_commit=1 & sync_binlog=1)。从测试结果来看,5.6的性能提升非常明显,但是我们当时并没有进行深入研究,定位到实际带来性能提升的最大原因。后来有次...
2013-07-01 18:08:20
173
Django LDAP认证方式使用
我们基于Django框架实现了MySQL数据库管理的web系统,为了能直接使用域用户登录,需要在Django中集成LDAP认证。一开始由于对Django和LDAP都不熟悉,也折腾了很长时间。 首先需要安装以下模块:django-1.4.3openldap-2.4.33python-ldap-2.4.10 (需要有cyrus-sasl-devel.x86_64)djang...
2013-05-30 16:44:46
689
Linux系统通过python访问SQL SERVER,无法显示数据库内中文的问题
最近遇到几个需求,需要从centos上通过python访问sql server服务器查询数据,本来倒也不是很复杂,通过pyodbc比较顺利地实现了,具体如下: 先直接通过yum安装unixODBC、unixODBC-devel和freetds (pyodbc需要)然后源码编译安装pyodbc配置/etc/odbcinst.ini,添加连接sql server的数据源信息 (路...
2013-05-11 16:11:14
280
MySQL 5.6 vs MySQL 5.5 性能对比初步测试结果
在MySQL 推出第一个5.6的GA版本后,我们对5.6进行了简单的性能对比测试。测试的基本思路是在同一台服务器上(保证硬件环境完全一样),先后安装MySQL 5.6和5.5,使用sysbench工具进行同样的压力测试,对比结果。 第一次对比测试服务器配置:8核CPU+16G内存的HP360服务器测试压力:sysbench的oltp的性能测试,测试表数据量5000万 Re...
2013-04-28 15:50:31
1093
MySQL中可能忽视的几个细节问题
从SQL SERVER转型到MySQL的过程中,我发现对SQL SERVER的DBA来说,使用MySQL时有些容易忽略的问题。先整理了几个: 一、用户名是大小写敏感的(我们开启了lower_case_table_names来解决表名和库名大小写的问题,但是貌似没找到参数可以配置用户名的大小写问题),比如说创建的用户名是appuser,用AppUser登录就会失败,这点在我们配置连接串的...
2013-04-23 18:18:14
262
MySQL高可用方案:基于MHA实现的自动故障转移群集
常用MySQL不同高可用方案的对比(下图来自官方手册) 能实现自动数据库故障转移的方案只有MySQL Cluster和 DRBD+Heartbeat,这也是两种不依赖Replication的HA方案。 但是,MySQL Cluster(NDB)配置维护复杂,不像Replication一样稳定易用,大部分公司可能不会考虑这一方案;而DRBD的额外性能消耗又比较大,约为20%—30...
2013-04-21 10:34:49
294
MySQL Audit Plugin的简单应用
基于MySQL服务器安全性需求,我们需要部署一套安全审计机制,以便当服务器出现用户活跃访问数据库、用户修改表结构、大批量数据修改等等危险操作时,我们可以进行实时的监控,报警。对于事后问题处理,有据可查。在MySQL5.5之前,MySQL本身缺少一套的对服务器操作的审计机制,对于非法或者危险的操作、错误捕捉、登录审计尚不能很好的支持。当出现drop了一个表或者不慎不带where的删除表数据等...
2013-04-19 14:46:55
161
MongoDB的Replica Set
MongoDB支持在多个机器中通过异步复制达到故障转移和实现冗余。多机器中同一时刻只有一台是用于写操作。MongoDB的复制机制分为两种:1 Master-Slave 主从复制:MongoDB的最新版本已不再推荐此方案。2 Replica Sets复制集:增加了故障自动切换和自动修复成员节点,各个DB之间数据完全一致,大大降低了维护成功。从节约资源的角度出发,我们一般都只用两台机器来部署M...
2013-04-19 14:00:16
184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人