mysqldump原理1

http://blog.csdn.net/linwaterbin/article/category/1299332 

mysqldump -S /tmp/mysql.sock --single-transaction --force  --databases test > v1.sql 
[[email protected] data]# cat v1.sql
-- MySQL dump 10.13  Distrib 5.6.28, for Linux (x86_64)
--
-- Host: localhost    Database: test
-- ------------------------------------------------------
-- Server version       5.6.28-debug-log

/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @[email protected]@TIME_ZONE */;
/*!40103 SET TIME_ZONE=‘+00:00‘ */;
/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE=‘NO_AUTO_VALUE_ON_ZERO‘ */;
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;

--
-- Current Database: `test`
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;

USE `test`;

--
-- Table structure for table `user`
--

DROP TABLE IF EXISTS `user`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `user` (
  `id` varchar(20) NOT NULL,
  `name` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `user`
--

LOCK TABLES `user` WRITE;
/*!40000 ALTER TABLE `user` DISABLE KEYS */;
INSERT INTO `user` VALUES (‘1‘,‘Michael‘);
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET [email protected]_TIME_ZONE */;

/*!40101 SET [email protected]_SQL_MODE */;
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;
/*!40014 SET [email protected]_UNIQUE_CHECKS */;
/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
/*!40101 SET [email protected]_COLLATION_CONNECTION */;
/*!40111 SET [email protected]_SQL_NOTES */;

-- Dump completed on 2016-07-08  6:12:19

general_log:生成的日志

[[email protected] data]# cat localhost.log
mysqld, Version: 5.6.28-debug-log (Source distribution). started with:
Tcp port: 3306  Unix socket: /tmp/mysql.sock
Time                 Id Command    Argument
160708  6:12:18     8 Connect   root@localhost on
                    8 Query     /*!40100 SET @@SQL_MODE=‘‘ */
                    8 Query     /*!40103 SET TIME_ZONE=‘+00:00‘ */
                    8 Query     SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ       RR级别
                    8 Query     START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */        开始一个事务
                    8 Query     SHOW VARIABLES LIKE ‘gtid\_mode‘
                    8 Query     UNLOCK TABLES
                    8 Query     SELECT LOGFILE_GROUP_NAME, FILE_NAME, TOTAL_EXTENTS, INITIAL_SIZE, ENGINE, EXTRA FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = ‘UNDO LOG‘ AND FILE_NAME IS NOT NULL AND LOGFILE_GROUP_NAME IN (SELECT DISTINCT LOGFILE_GROUP_NAME FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = ‘DATAFILE‘ AND TABLESPACE_NAME IN (SELECT DISTINCT TABLESPACE_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA IN (‘test‘))) GROUP BY LOGFILE_GROUP_NAME, FILE_NAME, ENGINE ORDER BY LOGFILE_GROUP_NAME
                    8 Query     SELECT DISTINCT TABLESPACE_NAME, FILE_NAME, LOGFILE_GROUP_NAME, EXTENT_SIZE, INITIAL_SIZE, ENGINE FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = ‘DATAFILE‘ AND TABLESPACE_NAME IN (SELECT DISTINCT TABLESPACE_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA IN (‘test‘)) ORDER BY TABLESPACE_NAME, LOGFILE_GROUP_NAME
                    8 Query     SHOW VARIABLES LIKE ‘ndbinfo\_version‘
                    8 Init DB   test
                    8 Query     SHOW CREATE DATABASE IF NOT EXISTS `test`
                    8 Query     SAVEPOINT sp                                           //   save sp
                    8 Query     show tables
                    8 Query     show table status like ‘user‘
                    8 Query     SET SQL_QUOTE_SHOW_CREATE=1
                    8 Query     SET SESSION character_set_results = ‘binary‘
                    8 Query     show create table `user`
                    8 Query     SET SESSION character_set_results = ‘utf8‘
                    8 Query     show fields from `user`
                    8 Query     SELECT /*!40001 SQL_NO_CACHE */ * FROM `user`
                    8 Query     SET SESSION character_set_results = ‘binary‘
                    8 Query     use `test`
                    8 Query     select @@collation_database
                    8 Query     SHOW TRIGGERS LIKE ‘user‘
                    8 Query     SET SESSION character_set_results = ‘utf8‘
                    8 Query     ROLLBACK TO SAVEPOINT sp
                    8 Query     RELEASE SAVEPOINT sp
160708  6:12:19     8 Quit
时间: 2024-10-20 08:35:57

mysqldump原理1的相关文章

mysqldump原理2

本文主要探讨 mysqldump 的几种主要工作方式,并且比较一下和 mk-parralel-dump的一些差异,为备份方式的选择提供更多的帮助. 首先来看下 mysqldump 的几个主要参数的实际工作方式. mysqldump 几个主要选项1. -q很简单,什么都不做,只是导出时加了一个SQL_NO_CACHE 来确保不会读取缓存里的数据. 081022 17:39:33 7 Connect [email protected] on 7 Query /*!40100 SET @@SQL_MO

mysqldump原理3

现网中数据库运维时,要经常对数据库做热备.为保证恢复时数据的完整性与一致性, 一种方法是在备份之前锁表,但锁表会影响正在运行的业务. mysqldump是当前MySQL中最常用的备份工具,通过mysqldump --help可以查看很多选项. 在mysqldump开始备份后,执行其它的更新数据库操作,mysqldump备份的结果会不会包含备份结束前对数据库的更改呢?在一个时间点备份,最理想的结果是备份的结果就是备份开始时的数据库快照.通过选择合适的选项做备份,mysqldump可以保证数据一致性

mysqldump原理及实验

**********************mysqldump 所需权限************************************* dump tables:SELECT dump views:SHOW VIEW dump triggers:TRIGGER LOCK TABLES(如果不使用--single-transaction) RELOAD,SUPER, REPLICATION CLIENT (--master-data=2) 数据库字符集更改:ALTER DATABASE

mysqldump原理4

http://blog.csdn.net/dba_waterbin/article/details/23611601?utm_source=tuicool&utm_medium=referral mysqldump的一个地雷 1 默认备份 [ 18:22:[email protected]:~ ]#mysqldump -S /data/mysql/test_3312/mysql.sock --single-transaction --force test > s1.sql 2. 加--ski

mysqldump原理5

http://blog.csdn.net/niu870781892/article/details/6186078 导出多张表的时候表之间用空格分开: # mysqldump -h192.168.254.102 -uroot test testaa testbb >zbb.sql 错误写法: # mysqldump -h192.168.254.102 -uroot test testaa,testbb >zbb.sql mysqldump: Couldn't find table: "

MySQL mysqldump 原理浅析

百度百科这么解释:把整个数据库装载到一个单独的文本文件中.这个文件包含有所有重建您的数据库所需要的SQL命令.这个命令取得所有的模式(Schema,后面有解释)并且将其转换成DDL语法(CREATE语句,即数据库定义语句),取得所有的数据.并且从这些数据中创建INSERT语句 mysqldump的大概流程整理如下(白话):1:连接数据库,校验账户,密码,IP2:进入INFORMATION_SCHEMA库,获取要备份的数据库的信息,包含存储过程,视图,表3:进入INFORMATION_SCHEMA

[转]深入理解mysqldump原理 --single-transaction --lock-all-tables --master-data

本文转至:http://blog.csdn.net/cug_jiang126com/article/details/49824471 在mysqldump过程中,之前其实一直不是很理解为什么加了--single-transaction就能保证innodb的数据是完全一致的,而myisam引擎无法保证,必须加--lock-all-tables,前段时间抽空详细地查看了整个mysqldump过程. 理解master-data和--dump-slave --master-data=2表示在dump过程

mysqldump,mydumper以及xtrabackup备份流程简述

mysqldump备份原理 备份的基本流程如下: 1.调用FTWRL(flush tables with read lock),全局禁止读写 2.开启快照读,获取此时的快照(仅对innodb表起作用) 3.备份非innodb表数据(*.frm,*.myi,*.myd等) 4.非innodb表备份完毕后,释放FTWRL锁 5.逐一备份innodb表数据 6.备份完成. Mydumper Mydumper原理与Mysqldump原理类似,最大的区别是引入了多线程备份,每个备份线程备份一部分表,当然并

MySQL备份原理详解

备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(RTO),前者重点关注能恢复到什么程度,而后者则重点关注恢复需要多长时间.这篇文章主要讨论MySQL的备份方案,重点介绍几种备份方式的原理,包括文件系统快照(LVM),逻辑备份工具Mysqldump,Mydumper,以及物理备份工具Xtrabackup,同时会详细讲解几种方案的优缺点,以及可能遇到的