使用mysqldump命令行工具创建逻辑备份:

注意mysqldump的版本和路径
mysqldump命令创建的是逻辑备份,结果集有两种格式:一种是将数据转换成标准的SQL语句(一堆CREATE,DROP,INSERT等语句),另一种是将数据按照指定分隔符,输出成定界格式的平面文件。
[root@mydb1 ~]# mysqldump
usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump –help

 

mysqldump 参数详解:

--single-transaction
用于保证innodb备份数据一致性,配合RR隔离级别使用;当发起事务,读取一个快照版本,直到备份结束时,都不会读取到本事务开始之后提交的数据;(很重要)
-q, --quick
加 SQL_NO_CACHE 标示符来确保不会读取缓存里的数据-l
--lock-tables
发起 READ LOCAL LOCK锁,该锁不会阻止读,也不会阻止新的数据插入
--master-data
两个值 1和2,如果值等于1,就会添加一个CHANGE MASTER语句(后期配置搭建主从架构)
如果值等于2,就会在CHANGE MASTER语句前添加注释(后期配置搭建主从架构)
-c, --complete-insert;
导出完整sql语句
-d,--no-data;
不导出数据,只导表结构
-t,--no-create-info;
只导数据,不导表结构
-w, --where=name ;
按条件导出想要的数据
--set-gtid-purged,在gtid环境中使用
备份数据库:
备份单个数据库或单个数据库中的指定表:
mysqldump [OPTIONS] database [tb1] [tb2]…
备份多个数据库:
mysqldump [OPTIONS] –databases
[OPTIONS] DB1 [DB2 DB3...]
备份所有数据库:
mysqldump [OPTIONS] –all-databases
[OPTIONS]
利用mysql命令恢复数据:
mysql -uroot -proot23 db_name < table_name.sql
 

通过--where选项导出满足条件的数据
mysqldump -uroot -p --single-transaction --master-data --where='id < 10' test02 goods_code_info > TableConditon.sql
备注:--where等号的后面的条件,必须要用括号扩起来.上面的语句的作用,导出test02库下goods_code_info表中满足id<10这个条件的记录.
注意sql_log_bin和gtid_purged
time /usr/local/mysql/bin/mysqldump -uroot -pmsds007 --single-transaction --master-data=2 -A -S /app/mysqldata/3306/mysql.sock > db3306-`date +%Y%m%d`.sql
time /usr/local/mysql/bin/mysqldump -uroot -pmsds007 --single-transaction --master-data=2 --set-gtid-purged=off mytest -S /app/mysqldata/3306/mysql.sock > db3306-`date +%Y%m%d`_mytest.sql
time /usr/local/mysql/bin/mysql -uroot -pmsds007 -S /app/mysqldata/3306/mysql.sock < db3306-20170710.sql
每次导完数据,尽量flush privileges;一下
使用mysqlbinlog恢复--skip-gtids 忽略gtid信息
 

查看导出的文件,是先drop表再create表,再看有没有乱码,注意字符集

打开general log执行

time /usr/local/mysql/bin/mysqldump -uroot -pmsds007 --single-transaction --master-data=2 -A -S /app/mysqldata/3306/mysql.sock > db3306-`date +%Y%m%d`.sql

看general log的详细信息

原理图

图片转载https://blog.51cto.com/yanzongshuai/2044403

mysqldump原理及实战的更多相关文章

  1. jQuery源码:从原理到实战

    jQuery源码:从原理到实战 jQuery选择器对象 $(".my-class"); document.querySelectorAll*".my-class" ...

  2. Keepalived原理与实战精讲--VRRP协议

    . 前言 VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,最新协议在RFC3768中定义,原来的定义RFC2338被废除,新协议相对还简 ...

  3. Spark MLlib特征处理:OneHotEncoder OneHot编码 ---原理及实战

    http://m.blog.csdn.net/wangpei1949/article/details/53140372 Spark MLlib特征处理:OneHotEncoder OneHot编码 - ...

  4. Istio 流量治理功能原理与实战

    一.负载均衡算法原理与实战 负载均衡算法(load balancing algorithm),定义了几种基本的流量分发方式,在Istio中共有4种标准负载均衡算法. •Round_Robin: 轮询算 ...

  5. Oracle特殊恢复原理与实战(DSI系列)

    1.深入浅出Oracle(DSI系列Ⅰ) 2.Oracle特殊恢复原理与实战(DSI系列Ⅱ) 3.Oracle SQL Tuning(DSI系列Ⅲ)即将开设 4.Oracle DB Performan ...

  6. Java并发编程原理与实战五:创建线程的多种方式

    一.继承Thread类 public class Demo1 extends Thread { public Demo1(String name) { super(name); } @Override ...

  7. Zookeeper原理和实战开发经典视频教程 百度云网盘下载

    Zookeeper原理和实战开发 经典视频教程 百度云网盘下载 资源下载地址:http://pan.baidu.com/s/1o7ZjPeM   密码:r5yf   

  8. Identity Server 4 原理和实战(完结)_汇总贴

    视频地址:https://www.bilibili.com/video/av42364337 语雀地址:https://www.yuque.com/yuejiangliu/dotnet/solenov ...

  9. DNS tunnel的原理及实战

    DNS tunnel的原理及实战 摘自:http://netsec.ccert.edu.cn/zhengming/2011/11/01/%E8%BD%AC%E8%BD%BD%EF%BC%9Adns-t ...

随机推荐

  1. Feeding Chicken

    D - Feeding Chicken 从左上角开始,往右下角开始遍历,但是遍历的时候需要注意一点,就是遍历的时候需要连起来,就比如第一行从左往右进行遍历,但是第二行不能从左往右了,因为这样就分开了, ...

  2. kubernetes案例 tomcat+mysql

    该文章参考<kubernetes 权威指南> 环境: [root@master tomcat-mysql]# kubectl get nodesNAME      STATUS    AG ...

  3. tomcat发布web项目

    转:https://www.cnblogs.com/skyblue-li/p/7888951.html Tomcat是一种Web服务器,我们自己做好了一个Web项目,就可以通过Tomcat来发布.服务 ...

  4. CISCO实验记录九:NAT地址转换

    1.静态NAT地址转换 #ip nat inside source static 192.168.12.1 192.168.23.4 //将12.1转为23.4 必须精确到主机IP 而不能是某个网段 ...

  5. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_18-异常处理-不可预知异常处理

    框架抛出来的或者一些第三方的组件抛出来的异常.我们根本不知道它所对应的错误代码的信息,所以我们也没有办法给用户返回具体的错误代码和错误信息. 我们先在Map中定义有一些不可预知的异常,定义错误代码和错 ...

  6. css简单学习属性

      1:内联元素和块级元素 1).块级元素,默认是:内联元素可以变成块级元素,块级元素可以变成内联元素. <!DOCTYPE html> <html lang="en&qu ...

  7. [Scikit-learn] Dynamic Bayesian Network - Conditional Random Field

    李航,第十一章,条件随机场 参考:[PGM] Markov Networks 携代码:用 Python 通过马尔可夫随机场(MRF)与 Ising Model 进行二值图降噪[推荐!] CRF:htt ...

  8. 怎样获取java新IO的Path文件大小

    import org.junit.Test; import java.io.IOException; import java.nio.file.Files; import java.nio.file. ...

  9. Spark + sbt + IDEA + HelloWorld + MacOS

    构建项目步骤 首先要安装好scala.sbt.spark,并且要知道对应的版本 sbt版本可以在sbt命令行中使用sbtVersion查看 spark-shell可以知晓机器上spark以及对应的sc ...

  10. Git常用命令速查表,新手必备版本控制

    Git 跟 SVN 一样,都是用于管理代码的版本控制工具.无论在项目中,我们负责哪一块,只要需要编写代码,就必须熟悉Git(依公司要求而定). 当然,用的越熟练,处理的项目越顺利,离出任CTO.迎娶白 ...