2015-04-07 Robin Wen
目录 Table of Contents {:toc} 文/温国兵 一 引子 mysqldump 相信大家已经耳熟能详,相比 mysqldump,mydumper 具有如下优势: 多线程 高性能 仅凭多线程这一点就可以让你对 mydumper 爱不释手。mydumper 最新稳定版是 0.6.2,读者可以从这里下载到。本文讲解怎么编译安装 mydumper,以及怎么使用它。看完此文,相信大家会对 mydumper 有较全面的了解。 二 编译安装 $ yum install make cmake pcre-devel glib2-devel zlib-devel \ gcc gcc-c++ mysql-devel open 继续阅读 »
2015-04-14 Robin Wen
目录 Table of Contents {:toc} 文/温国兵 工作内容 安装和升级数据库服务器以及应用程序工具; 数据库设计系统存储方案,并制定未来的存储需求计划; 协助开发创建数据库对象、存储过程等; 协助开发优化 SQL; 根据开发人员的反馈信息,必要的时候,修改数据库的结构; 登记数据库的用户,维护数据库的安全性; 控制和监控用户对数据库的存取访问; 监控和优化数据库的性能; 制定数据库备份计划,灾难出现时对数据库信息进行恢复; 维护适当介质上的存档或者备份数据; 备份和恢复数据库; 制定或者协助制定高可用、高性能方案,评估、实施方案,并且做维护优化; 处理突发故障,随时待命。 以上来自 CSDN,略有改动。 职 继续阅读 »
2015-02-07 Robin Wen
目录 Table of Contents {:toc} 文/Marcelo Altmann 译/温国兵 大多数人都已经听说 NoSQL 数据库,其中使用最广泛的工具是 Memcached,你们通过 Memcached 再应用层和数据库之间添加一个缓存层。从 MySQL 5.6 开始,你可以获得一个全新的插件,这个插件把 MySQL 和 Memcached 集成起来。在此文中,我们将学习怎样在 Linux 中 安装这个插件,怎样做一些基础的配置。 先决条件 安装 libevent。 译者注:以下命令由译者提供。 命令如下: bash yum install libevent -y yum install php -y y 继续阅读 »
2015-01-27 Robin Wen
目录 Table of Contents {:toc} 文/温国兵 一 引子 MySQL 5.5 中,information_schema 库中新增了三个关于锁的表,亦即 innodb_trx、innodb_locks 和 innodb_lock_waits。 其中 innodb_trx 表记录当前运行的所有事务,innodb_locks 表记录当前出现的锁,innodb_lock_waits 表记录锁等待的对应关系。 二 表结构说明 登录 MySQL 5.5。 bash mysql -S /tmp/mysql_5540.sock -uroot -proot 这是我的 MySQL 版本信息。 bash mysq 继续阅读 »
2015-07-12 Robin Wen
目录 Table of Contents {:toc} 文/温国兵 一 引子 很久没写技术文章了,打算最近几周把最近遇到的故障总结下。这篇文章分享周四遇到的故障。 另外,最近有创作欲望,只等时间宽裕。 二 起因 周四一整天,研发反应某台数据库僵死,后面的会话要么连接不上,要么要花费大量的时间返回结果,哪怕是一个简单的查询。 三 处理 首先去监控平台查看服务器以及数据库状态,发现这台数据库有大量的慢查询。继续看服务器监控,CPU 平均使用率较高,IO 读写平均值正常。登录到 MySQL,使用 SHOW PROCESSLIST 查看会话状态,总数居然有 600+,这是很不正常的。查看慢查询日志,发现出问题的 SQL 主要 继续阅读 »
2016-05-22 Robin Wen
文/温国兵 根据莫非定律^1:「凡是可能出错的事必定会出错,任何一个事件,只要具有大于零的机率,就不能够确定它不会发生。」这句看似箴言的话,想必每个运维从业人员感触非常深刻。本文从 DBA 线上操作的角度,谈谈自己的看法。 工作日,DBA 会处理大批工单;非工作日,DBA 在时刻准备着救急。亦即,DBA 每时每刻都有线上操作的需要。那么问题来了,个人的状态是不定的,包括心理状态、身体状态。时刻保证临危不乱,这是 DBA 重要的素质之一。线上故障,分秒必争,不及时的处理、不善的操作都很有可能给公司带来不同程度的损失。线上操作需要求稳,本文给出笔者的点滴思考。 © Pierre Puvis de Chavannes/The Po 继续阅读 »
2015-01-14 Robin Wen
文/温国兵 环境 OS: Mac OS X 10.9.5 MySQL: 5.1.73/5.5.40/5.6.21 解决思路 MySQL 中允许运行多个实例,举一反三,也可以同时运行多个版本的 MySQL。每个版本的 MySQL 占有独立的数据目录、端口、Socket、PID 即可。有了这种思路,就不难实现了。 具体实施步骤 创建 MySQL 主目录,解压不同版本的 MySQL 到 该目录。 bash sudo mkdir /usr/local/mysql sudo tar -zxvf ~/Downloads/mysql-5.1.73-osx10.6-x86_64.tar.gz \ -C /usr/local/mysq 继续阅读 »
2015-08-22 Robin Wen
目录 Table of Contents {:toc} 文/温国兵 一 引子 研发反应,有台从库和主库不同步。由于业务读操作是针对从库的,数据不同步必定会带来数据的不一致,业务获取的结果会受影响,所以这个问题必须尽快解决。 登上服务器,查看 MySQL 的从库状态,并没有任何报错信息。刷新从库状态,发现状态没有任何变化,Exec_Master_Log_Pos 卡住不动。 二 故障分析 为了安全起见,此文略去 MySQL 版本以及其他可能会带来安全问题的信息。 接下来逐步分析问题。 首先查看从库状态: bash mysql> SHOW SLAVE STATUS \G ************************* 继续阅读 »
2015-01-15 Robin Wen
目录 Table of Contents {:toc} 文/温国兵 一 引子 在生产环境中,删除一个大文件,比如一个数十 G 或者上百 G 的文件是很耗时的。 本文介绍一个快速 DROP TABLE 的方法。使用本文提供的方法,不管该表数据量、占用空间有多大,都可以快速的删除。 二 演示 下面做一个演示。 2.1 环境 首先说明环境: 环境 bash mysql> SHOW VARIABLES LIKE '%version%'; +-------------------------+------------------------------+ | Variable_name | Value 继续阅读 »
2015-01-16 Robin Wen
目录 Table of Contents {:toc} 文/温国兵 一 引子 在生产环境中,经常会有这样的场景:获得中文数据。那问题就来了,怎么才能匹配出中文字符呢? 本文提供两种方法。 二 演示 2.1 环境 bash mysql> SHOW VARIABLES LIKE "%version%"; +-------------------------+------------------------------+ | Variable_name | Value | +-------------------------+----------------- 继续阅读 »