摘要:
1、背景:DBA或开发人员,有时会误删或者误更新数据,如果是线上环境并且影响较大,就需要能快速回滚。传统恢复方法是利用备份重搭实例,再应用去除错误sql后的binlog来恢复数据。此法费时费力,甚至需要停机维护,并不适合快速回滚。也有团队利用LVM快照来缩短恢复时间,但快照的缺点是会影响mysql的 阅读全文
摘要:
1、背景: 新疆分布式数据库crm数据导入,表做分片,导入之后表数据量比原表数据量多。 导入方式:load 2、排查过程 以表tf_bhb_ocs_batdeal_2016测试排查: 1)表结构: CREATE TABLE `tf_bhb_ocs_batdeal_2016` ( `DEAL_ID` 阅读全文
摘要:
使用mysql federated 引擎构建 MySQL 分布式数据库访问层 前言:随着应用复杂度的增加,数据库不断细化切分,导致应用程序中数据库应用就得复杂,凌乱。绝大部分程序人员可能都遇到这种情况,应用程序中需要连接多台数据库服务器,进行相应的操作。随着时间积累,太多的数据库服务器的连接逻辑出现 阅读全文
摘要:
首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件,加载完毕之后,交由JVM执行引擎执行。在整个程序执行过程中,JVM会用一段空间来存储程序执行期间需要用到的数据和相关信息,这段空间一般被称作为Runtime 阅读全文
摘要:
一、简介 xtrabackup 是percona公司开源的MySQL innodb物理备份工具,支持在线热备(备份时不影响数据读写),在工具在业内生产上被大量使用,本次使用xtrabackup 备份的日志和数据库general 日志来对备份的流程和原理进行解读。 二、xtrabackup备份原理: 阅读全文
摘要:
背景 错误信息:Lock wait timeout exceeded; try restarting transaction,我们常称为锁等待超时。 根据类型一般分为两类: 1、 行锁等待超时;最常见的场景,因为事务等待行锁超时。 2、 元数据锁等待超时;常见在DDL操作期间(此次不涉及)。 行锁等 阅读全文
摘要:
背景: 鉴于****项目中有使用Otter同步数据,同时重庆资源池ESOP也有同样的需求,之前采用的是Federated引擎来实现,但是爱可生RDS不支持该引擎,必须采用其他的工具来实现该需求,记录一下学习OTTER的过程。 一、 otter简介 基于数据库增量日志解析,准实时同步到本机房或异地机房 阅读全文
摘要:
针对****生产环境上出现过一次关于MDL锁导致DDL等待锁失败而出现连接表失败,在本地进行MDL锁复现。 初始化环境,有一个test01.t1表,进行模拟MDL锁等待 id 14(A) id 15(B) id 16(C) id 17(D) id 18(E) begin; begin; alter 阅读全文
摘要:
MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入 阅读全文
摘要:
1、在做****巡检时,发现生产主机xxxx上的临时独立表空间ibtmp1暴涨至200G,借此梳理关于临时表空间相关的点 2、ibtmp1暴涨如何处理? 2.1 简单说明 ibtmp1是非压缩的innodb临时表的独立表空间,通过innodb_temp_data_file_path参数指定文件的路径 阅读全文
摘要:
根据****热计费项目生产环境上,ibd文件异常大,借机梳理表碎片清理和表空间收缩的知识点 1、碎片清理的好处 降低访问表时的IO,提高mysql性能,释放表空间降低磁盘空间使用率 OPTIMIZE TABLE table_name;对myisam表有用,对innodb也有用,系统会自动把它转ALT 阅读全文
摘要:
一、各种树形结构 1、二叉树:允许每个节点下最多有两个子节点 二叉树在数据库中不使用的原因是: 1)、树长歪了 》树的倾斜问题 查询的代价是不可控的,主要原因是树的高度不可控; 2)、二叉树限定每个节点下最多只有两个节点,能存放的数据是有限的,当数据量很大时,二叉树必然具有很大的高度; 2、B Tr 阅读全文
摘要:
InnoDB引擎主要包含几个重要部分: 1、内存池 1.1 缓冲池 InnoDB将记录按页的形式进行管理,对于页的修改先修改缓冲池中的页,后以一定频率进行刷新到磁盘中(checkpoint)。在数据库的页读取操作时,将也缓存到缓冲池中,下一次如读取相同的页,则无需从磁盘中加载。缓存池大小通过inno 阅读全文
摘要:
背景: 测试MySQL磁盘临时表是否会占用文件系统的cache? 环境准备: 1、使用sysbech创建2张表,每张20W数据。 测试: 1、记录当前cache内的文件、记录内存的值,记得tmp状态值,重启mysql,让ibtmp1文件重置为12M a、内存值 b、cache内的文件 c、tmp当前 阅读全文
摘要:
roxySQL的基本简介: ProxySQL是用C++语言开发的,虽然也是一个轻量级产品,但性能很好(据测试,能处理千亿级的数据),功能也足够,能满足中间件所需的绝大多数功能,可以更好更好的支持master slave\MGR\PXC等高可用集群,常见功能分库分表、SQL审计、负载均衡、主从切换,以 阅读全文
摘要:
简介: Show Profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具,可用于sql调优的测量。默认情况下处于关闭状态,并保存最近15次的运行结果。 1、开启show profile功能,默认该功能是关闭的,使用前需开启 mysql> show variables 阅读全文
摘要:
一、为什么使用MySQL线程池 1、减少线程重复创建与销毁部分的开销,提高性能 线程池技术通过预先创建一定数量的线程,在监听到有新的请求时,线程池直接从现有的线程中分配一个线程来提供服务,服务结束后这个线程不会直接销毁,而是又去处理其他的请求。这样就避免了线程和内存对象频繁创建和销毁,减少了上下文切 阅读全文
摘要:
背景 线下数据库,成天有人要求运维执行这sql那sql的,又苦逼又容易背锅,问了下公司的DBA大神,推荐了see审计平台,执行sql有审计记录,留痕留痕留痕,重要的事情说三遍,即使是线下环境,谨防有人删库跑路找不到人,可以解决运维一大痛点。 审计平台介绍 数据库审计平台作用 《对于开发人员》提交代码 阅读全文
摘要:
archery SQL审核平台 项目位置:https://github.com/hhyo/archery 背景 SQL审核是对MySQL语句写法的统一化,标准化,避免因为SQL的不规范、语法错误等导致出现误删、误更新数据、数据库性能下降等问题。早期的人工审核,针对标准这个问题其实是很吃力的,标准越多 阅读全文
摘要:
1、背景 Orchestrator(orch):go编写的MySQL高可用性和复制拓扑管理工具,支持复制拓扑结构的调整,自动故障转移和手动主从切换等。后端数据库用MySQL或SQLite存储元数据,并提供Web界面展示MySQL复制的拓扑关系及状态,通过Web可更改MySQL实例的复制关系和部分配置 阅读全文