数据库相关技术专家
一 介绍 在笔者支持业务过程中,经常遇到开发咨询replace into 的使用场景以及注意事项,这里做个总结。从功能原理,性能和注意事项上做个说明。 二 原理 2.1 当表中存在主键但是不存在唯一建的时候。
一 介绍 最近在做cgroup方面的压测,使用到cpu的监控工具--mpstat。mpstat是Multiprocessor Statistics的缩写,是实时系统监控工具。
一 【背景】 今天上午文能提笔安天下,武能上马定乾坤的登博给团队出了一道题目,谁先复现问题,奖励星巴克一杯。激起了一群忙碌的屌丝DBA的极大热情。问题是这样滴,如下图登博提示了几个细节: 1. code上的uk并未失效。
好久没有沉淀文章了,感谢ITPUB 论坛赠送门票,4.15-4.18 去北京参加了DTCC 大会,没有能够全部参加所有的场次,选择了其中自己感兴趣的场次,主要是偏运维 和MySQL ,Oracle,云计算数据库相关的,说一下自己的一些感想和思考,有所不足 ,还请各位指正 。
一 现象 某业务单机4个实例中的一个实例出现连接数远高于其他三个实例(正常是4K,问题实例是8K+),但是这4个实例的配置完全相同。业务开发反馈为部分连接失败。
一 问题现象 线上某业务A的数据库版本MySQL 从5.5 升级到5.6 版本之后多次出现RT抖动的问题,其现象主要为: 1 rt严重不稳定,部分query rt非常高。
一 背景 某一创业的朋友的主机因为磁盘阵列损坏机器crash,重启MySQL服务时 报如下错误: InnoDB: Reading tablespace information from the .
一 需求 因为开发针对某系统做稳定性建设,需要对数据库系统的慢日志进行审计,检查优化。和开发沟通选择定期发送慢查询到开发的邮箱的方式,每日汇总,然后一起评估 优化slow query 。
【背景】 对一套数据库集群进行5.5升级到5.6之后,alter.log 报warning异常。 2015-02-03 15:44:51 19633 [Warning] Storing MySQL user name or passwor...
前言 本文是一篇学习笔记,学习如何通过java jdbc /ojdbc 连接oracle的几种方式。一 使用方法方法一:使用service_name 连接oracle jdbc:oracle:thin:@//:/ 例如: jdbc:oracle:thin:@//10.10.10.1:1521/TDB注意这里的格式,@后面有//, 这是与使用SID的主要区别。
一 简介 tsar(Taobao System Activity Reporter)可将收集到的数据存储在磁盘上,另外可以支持将数据存储到MySQL中,也可将数据发送到Nagios报警服务器。
一 背景 某个业务线 商品开放开用户申请免费试用,当某个商品特别吸引人时,比如iPhone6 。肯定有一大波人为了少卖一个肾 疯狂去抢申请资格。有甚者利用机器人申请注册,于是简单的申请操作变成了秒杀行为. 大量请求同时更新数据库中的同一个商品的申请次数,update 操作给表加上行锁,导致后面的请求全部排队等待前面一个update完成,释放行锁后才能处理下一个请求。
在学习python 多线程编程的时候,一定会使用一个函数join,本章内容通过例子讲述join 在多线程编程中有哪些作用。本文使用两段代码演示其功能代码一 import threading, timedef now() : return str( time.
工作过程中有时候会接收到数据库服务器器load 飙高的报警,比如: load1 15.25 base: 8.52,collect time:2014-08-30 如何处理load 异常飙高的报警呢? 本文尝试从原理,原因,解决方法来阐述这类问题的解决思路。
一 现象描述 开发反馈某产品的agent 的进程hang在某些线程上,查看日志,agent master 累积很多未处理的消息队列。在17:00 – 21:00 之间,有一定程度的写入量低峰,猜测可能是写入数据库变慢了,不过从目前得到的信息来看无法完全确定。
前言 工作过程中,各种业务需求在访问数据库的时候要求有order by排序。有时候不必要的或者不合理的排序操作很可能导致数据库系统崩溃。如何处理好order by排序呢?本文从原理以及优化层面介绍 order by 。
一 概念介绍 Index Condition Pushdown (ICP)是MySQL 5.6 版本中的新特性,是一种在存储引擎层使用索引过滤数据的一种优化方式。
一 前言 前文 介绍了5.5/5.6 版本的MySQL semi sync 基础原理和配置,随着MySQL 5.7 的发布,新版本的MySQL修复了semi sync 的一些bug 并且增强了功能。
目前python 提供了几种多线程实现方式 thread,threading,multithreading ,其中thread模块比较底层,而threading模块是对thread做了一些包装,可以更加方便的被使用。
【背景】 某业务数据库load 报警异常,cpu usr 达到30-40 ,居高不下。使用工具查看数据库正在执行的sql ,排在前面的大部分是: SELECT id, cu_id, name, info, biz_type, gmt_creat...
【背景】 工作过程中遇到要从一个ip列表中获取ip port,然后ssh ip 到目标机器进行特定的操作,但是编写脚本的过程 使用while read line 读取ip列表,在while循环中只读取第一个ip 后就退出脚本的情况。
第一次遇到MySQL 将错误信息写入 slave-relay-log.index 中,slave io thread 启动成功,而sql thread 失败的案例,记录下来。
前文 Semisynchronous Replication 概述 已经介绍 semi sync的基本原理以及特性,优缺点。本章将进入实践,毕竟“纸上来得终觉浅,绝知此事要躬行”。
前言 MySQL 5.5版本之前默认的复制是异步(Asynchronous )模式的, MySQL 5.5 以plugins的方式提供了Semisynchronous Replication 模式。
欢迎有意愿加入阿里巴巴数据库团队的朋友 邮件简历 到 qilong.yangql#gmail.com (#--->@) 岗位描述 -支持整个阿里全线业务系统,提供可靠的存储技术方案; -规模化场景下MySQL/OceanBase/R...
我们知道在进行插入操作时,数据页的存放还是按主键id的执行顺序存放, 但是对于非聚集索引,叶子节点的插入不再是顺序的了。 例如,对于如下表结构进行insert操作 create table tab ( id int auto_increment, name varchar(30), primary key (id), key(name) ) engine=innodb default charset=utf8; nanme 为非唯一字段,这时就需要离散地访问非聚集索引页,插入性能在这里变低了。
一 什么是字符校对规则 使用MySQL的大多数都知道字符集是一套符号和编码,而对校验本规则不太熟悉。校对规则是在字符集内用于比较字符的一套规则,可以控制 select 查询时where 条件大小写是否敏感的规则.如字段 col 在表中的值为 'abc','ABC','AbC' 在不同的校对规则下,where col='ABC'会有不同的结果。
去"O"的业务支撑的时候,遇到一个开发询问如何获取到MySQL 的自增id,这里做一个总结,我们可以通过四种方式来获取MySQL 的自增id。 一 last_insert_id() 官方介绍如下: “The ID that was...
【背景】 最近线上一个实例出现了主从数据不一致的情况,也即从库丢失数据的情况。根本原因:"由于table_list->table_id为uint,而m_table_id为ulong,主库上assign的table map id 总是一直递增的 当超过2^32后,备库出现溢出,导致row模式下备库对应table id的事件全部丢失,产生主备不一致。
介绍double write之前我们有必要了解partial page write 问题 : InnoDB 的Page Size一般是16KB,其数据校验也是针对这16KB来计算的,将数据写入到磁盘是以Page为单位进行操作的。
下午收到报警: xxxxxx:[didb..,][master,slave]/home used:94% free:0.6G 2014-01-12 16:42:40 DutyReceived! 【现象】 登陆机器查看: [root@xxxxx /root...
innodb_flush_log_at_trx_commit和sync_binlog 两个参数是控制MySQL 磁盘写入策略以及数据安全性的关键参数。本文从参数含义,性能,安全角度阐述两个参数为不同的值时对db 性能,数据的影响.
【序言】 oracle 提供了静默安装方法在不适用图形界面的情况下安装 oracle 软件 ,创建db,配置netca,快速完成oracle 的部署。 在以下情形中可以使用静默安装 a OUI 的 GUI 界面远程交互比较慢 . b 数据库服务器无法使用图形界面访问. c 批量部署oracle (标准环境统一情况下可以使用oracle 的relink ,这样更加快速).本文主要讲述基本安装步骤,不涉及oracle 安装完成之后的运维规范: 监控,备份,定时日志清理,基础运维配置。
一 序言 在运维线上M-M 架构的MySQL数据库时,接收的比较多关于主备延时的报警: 点击(此处)折叠或打开 check_ins_slave_lag (err_cnt:1)critical-slavelag on ins:3306=39438 相信slave 延迟是MySQL dba 遇到的一个老生长谈的问题了。
【背景】 维护mysql的时候,总会遇到数据库恢复的例子。如果把备份集恢复出来相对比较简单。然而如果遇到恢复到时间点的例子,把一个MySQL实例恢复出来之后,需要执行binlog做增量恢复。
以下是我们团队正在招聘的JD: 有兴趣的可以发送简历至 qilong.yangql#gmail.com(#-->@)云数据库(RDS)测试工程师工作地点:杭州人数: 1人岗位描述 1.负责从需求、设计、开发、运维等多角度保证产品质量;2.构建与维护优化高效的自动化测试框架及工具满足业务测试需要;3.负责测试领域新技术、方法的研究、应用与推广。
一 序言介绍 MySQL 5.0 版本之前,每条个表在查询时 只能使用一个索引,有些不知道此功能限制的开发总是在一个表上创建很多单独列的索引,以便当where条件中含有这些列是能够走上索引。
优化mysql数据库时,经常有开发询问 count(1)和count(primary_key) VS count(*)的性能有何差异?看似简单的问题,估计会有很多人对此存在认知误区: 1. 认为count(1) 和 count(primary_key) 比 count(*) 的性能好。
一个包含查询所需的字段的索引称为 covering index 覆盖索引。MySQL只需要通过索引就可以返回查询所需要的数据,而不必在查到索引之后进行回表操作,减少IO,提供效率。
MySQL 从版本4 开始支持 SQL 标准要求的所有子查询格式和操作,同时扩展了特有的几种特性。本文会介绍子查询的类型以及相关的注意点。
研究过或者熟悉oracle性能调优的朋友都知道oracle 提供很多hint 指定from 后的表的连接顺序,如use_hash ordered ,leading 等,而MySQL 对表的连接只支持 nested loop Join, 提供的表连接驱动的hint 只有--straight_join(相当于Oracle里面的use_nl).
【问题现象】 凌晨一个客户实例报警slave sql 进程由于报如下错误而停止: mysql> show slave status \G *************************** 1.
MySQL ddl 的问题现状 在运维mysql数据库时,我们总会对数据表进行ddl 变更,修改添加字段或者索引,对于mysql 而已,ddl 显然是一个令所有MySQL dba 诟病的一个功能,因为在MySQL中在对表进行ddl时,会锁表,当表比较小比如小于1w上时,对前端影响较小,当时遇到千万级别的表 就会影响前端应用对表的写操作。
在和数据打交道的过程中,总会遇到误删除数据的情况,在没有备份和binlog的情况下,如何恢复呢?本文介绍一个工具Percona Data Recovery Tool for InnoDB 使用 该工具的 注意事项: 1 The tools work...
Python的MySQLdb模块是Python连接MySQL的一个模块, 使用MySQLdb 模块获取mysql中的记录,默认查询结果返回是tuple类型,只能通过0,1等索引下标访问数据。
#!/usr/bin/env python #coding=utf-8 """ 以不同方式获取mysql中的tps,qps,并做对比 """ import time import sys import os import MySQLdb import dbconn def main() : try: conn = MySQLdb.
在做db基准测试的时候,qps,tps 是衡量数据库性能的关键指标。本文比较了网上的两种计算方式。先来了解一下相关概念。 概念介绍: QPS:Queries Per Second 查询量/秒,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理查询量多少的衡量标准。
之前要做一个mysql慢查询的定时发送程序,研究了一下python 发送email的模块。python 可以smtplib 库和email 库发送邮件。 一 stmplib 的使用 初始化语法如下: #连接到SMTP服务器 s = smtplib.SMTP('smtp.XXXX.com') #发送邮件。
在维护fusion 和sas 盘组成flashcache 的过程中遇到一些错误记录下来。 #flashcache_create -p back -b 16k cachedev /dev/fioa /dev/sdc1 cachedev cachedev...
Queue类即是一个队列的同步实现。队列长度可为无限或者有限。可通过Queue的构造函数的可选参数maxsize来设定队列长度。如果maxsize小于1就表示队列长度无限。