MySQL 一个select把实例搞崩了,原来是表数据异常
问题背景几天前,该环境ibdata1的size被置为0,无法启动,使用传输表空间等特殊恢复手段,恢复数据到新实例。再次收到通知,MySQL无法访问了,来看看。错误日志如下起初,以为是一条关联select触发了mysql bug导致实例崩溃。相关表的表结构,如下所示。既然之前该实例是经过特殊恢复重建的,能不能把数据导出再导入呢?发现导出时 interface_mng 表访问存在异常。select c
mysql之 事务prepare 与 commit 阶段分析
打开binlog选项后,执行事务提交命令时,就会进入两阶段提交模式。两阶段提交分为prepare阶段和commit两个阶段。流程如下 :这里面涉及到两个重要的参数:innodb_flush_log_at_trx_commit和sync_binlog,参数可以设置不同的值,具体可以查看mysql的帮助手册。我这里设置的是双一模式(innodb_flush_log_at_trx_commit=1,sy
mysql之 innobackupex备份+binlog日志的完全恢复(命令行执行模式)
前言:MySQL的完全恢复,我们可以借助于完整的 备份+binlog 来将数据库恢复到故障点。备份可以是热备与逻辑备份(mysqldump),只要备份与binlog是完整的,都可以实现完全恢复。1. 准备实验环境mysql> select version();+------------+| version() |+------------+| 5.6.25-log |+------------+1 row in set (...
mysql之 Innobackupex(全备+增量)备份恢复
MySQL的热备(物理备份)可以采取全备加增量备份的方式来减轻数据库I/O压力及系统资源的占用。增量备份主要是以全备或增量备份为基础,备份那些变更过的页面。其备份的原理是基于一个不断增长的LSN序列,这个LSN与Oracle的SCN类似。在恢复期间,我们需要将已提交的事务前滚,未提交的事务回滚。本文主要描述了增量备份及增量...
mysql之 Innobackupex全备恢复(原理、演示)
一、 Innobackupex恢复原理 After creating a backup, the data is not ready to be restored. There might be uncommitted transactions to be undone or transactions in the logs to be replayed. Doing those pending operations will make the data ?les consistent and it is the purpos...
mysql之 double write 浅析
http://blog.itpub.net/22664653/viewspace-1140915/介绍double write之前我们有必要了解partial page write 问题 : InnoDB 的Page Size一般是16KB,其数据校验也是针对这16KB来计算的,将数据写入到磁盘是以Page为单位进行操作的。而计算机硬件和操作系统,在极端情况下(比如断电)往往并不能...
mysql之 mysqldump 备份恢复详解
mysqldump是MySQL用于转存储数据库的客户端程序。转储包含创建表和/或装载表的SQL语句 ,用来实现轻量级的快速迁移或恢复数据库,是mysql数据库实现逻辑备份的一种方式。 mysqldump不适用于大型数据库备份与恢复,速度慢,不支持并行,其次SQL重放将耗用大量的I/O。1、查看详细 mysqldump 帮助信息[root@my...