使用pt-table-checksum&pt-table-sync检查和修复主从数据一致性
一、背景 公司数据中心从托管机房迁移到阿里云,需要对MySQL迁移(Replication)后的数据一致性进行校验,但又不能对生产环境使用造成影响,pt-table-checksum成为了绝佳也是唯一的检查工具。所以就利用pt-table-checksum工作来检查主从的一致性,以及通过pt-table-sync如何修复这些不一致的数据。 pt-table-……
SQL中的where条件,在数据库中提取与应用浅析
一、问题描述 一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣。当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析、语法解析、权限检查、查询优化、SQL执行等一系列的步骤,简短的篇幅是绝对无能为力的。因此,本文挑选了其中的部分内容,也是我一直都想写的一个内容,做重点介绍: 给定一条SQL,如……
MySQL InnoDB加锁处理分析(何登成)
一、背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?……
MySQL备份恢复:Xtrabackup原理阐述
一、Xtrabackup介绍 Percona XtraBackup(简称 PXB)是 Percona 公司开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQL(Oracle)、Percona Server和 MariaDB,并且全部开源,真可谓是业界良心。据官方介绍,这也是世界上唯一一款开源的能够对Innodb和Xtradb存储引擎进行物理……
MySQL备份恢复:Xtrabackup使用实践
一、Xtrabackup安装 安装依赖包 $ yum install perl-Time-HiRes perl-DBI libev 1 $ yum install perl-Time-HiRes perl-DBI libev ……
MySQL触发器(trigger)
一、触发器介绍 MySQL的触发器和存储过程一样,都是嵌入到MySQL的一段程序,触发器是个特殊的存储过程。它们不同的是执行存储过程要使用CALL语句来调用,而触发器是由事件来触发某个操作,这些事件包括INSERT、UPDATE和DELETE语句。如果定义了触发程序,当对表执行INSERT、DELETE或UPDATE语句时,将激活触发程序。可以将触发程序设计……
MySQL视图(view)
一、视图的含义 在MySQL数据库中,视图(view)是一个命名的虚拟表,它由一个SQL查询来定义,或者说视图是从数据库中一个或多个表中导出来的表,并且视图还可以从已经存在的视图的基础上定义。视图可以当表使用,对视图的操作与对表的操作一样,可以对其进行查询、修改和删除。当对通过视图看到的数据进行修改时,相对的基本表的数据也要发送变化;同时,若基本表的数据发送……
MySQL存储过程和存储函数(二)
一、流程控制的使用 在存储过程中可以定义流程控制语句,流程控制语句用来根据条件控制语句的执行,MySQL中的用来构造控制流程的语句有:IF语句、CASE语句、LOOP语句、WHILE语句、LEAVE语句、ITERATE语句和REPEAT语句。每个流程中可能包含一个单独语句,或者是使用BEGIN…END构造的复合语句,构造可以被嵌套。下面介绍这些流程控制语句 ……
MySQL存储过程和存储函数(一)
一、存储过程与函数介绍 简单地说,存储过程就是一条或者多条SQL语句的集合,可视为批文件,但是其作用不仅限于批处理。 存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别是CREATE PROCEDURE和CREATE FUNCTION。 MySQL存储过程和函数有什么区别?在本质上他们都是存储程序,函数只能通过return语句返回单……
MySQL备份恢复:单线程mysqldump工具使用
一、mysqldump介绍 对于搞数据库的应该都知道,mysqldump是MySQL官方提供的用于逻辑备份的工具。 mysqldump优点:mysqldump的优点就是逻辑备份,把数据生成sql形式保存,在单库,单表数据迁移,备份恢复等场景方便,sql形式的备份文件通用,也方便在不同数据库之间移植。对于innodb表可以在线备份。 mysqldump缺点:……
MySQL备份恢复:磁盘LVM快照
LVM快照备份数据 LVM快照属于几乎热备,因为要先请求全局锁,而后创建快照,并在创建快照完成后释放全局锁,无法做到增量备份,并且数据目录必须在LVM逻辑卷上存放。 一、创建一个逻辑卷并挂载使用 1)先创建两个主分区类型为8e $ fdisk /dev/sdb Command (m for help): n Command ……
MySQL数据备份与恢复理论
一、数据备份方式 数据库作为一个系统中唯一或者主要的持久化组件,对服务的可用性和数据的可靠性要求较高。 作为能够有效应对因为系统软硬件故障、人工误操作导致数据丢失的预防手段,备份是目前最为常见的数据库运维操作。根据备份方式不同, 分为物理备份(physical backup)和逻辑备份(logical backup)。 物理备份:包括存储数据库内容的目录和文……