文档结构:

mysqldump备份影响性能,可能会把内存里面的热数据给冲刷掉,5.7后,新增一个参数,innodb_buffer_pool_dump_pct,控制每个innodb_buffer中转存活跃的使用innodb buffer pages的比例,只有当数据在1s内再次被访问时,才能放到热区域内,避免热数据被刷掉,默认值25%。

重要的参数说明:

--single-transaction

用于保证innodb 备份数据时的一致性,配合RR隔离级别一起使用;当发起事物时,读取一个事实的快照,直到备份结束时,都不会读取到本事物开始之前提交的任何数据(这个参数相当重要)

--all-databases  (-A)

备份所有数据库。

--master-data

该参数有1和2,如果等于1 ,就会在备份出来的文件中添加一个change master的语句(后期配置搭建主从架构);如果值等于2,就会在备份出来的文件中添加一个change master语句,并在语句前面添加注释符号(后期配置搭建主从架构)。

--dump-slave

该参数用于从库端备份数据,在线搭建新的从库时使用。

该参数也有1,2两个值,值为1是,也是在备份出来的文件中添加一个change master的语句;值为2时,则会在change master命令前增加注释信息。

--no-create-info(-t)

备份过程中,只备份表数据,并不备份表结构。

--no-data

备份过程中,只备份表结构,并不备份表数据。

--complete-insert

使用完整的insert语句会包含表中的列信息,这么做可以提高插入效率。

--databases

备份多个数据库。

mysqldump -S /tmp/mysql3307.sock -uroot -pmysql --set-gtid-purged=OFF --databases sys test > sys_test.sql

--default-character-set

字符集,MYSQL目前默认字符集,要与备份出的表的字符集保持一致。

--quick

相当于加 sql_no_query,意味着并不会读取缓存中的数据。

--where=name

按条件备份出想要的数据。

备份所有数据库

/usr/local/mysql5.7/bin/mysqldump --single-transaction -S /tmp/mysql3307.sock --set-gtid-purged=OFF -uroot -pmysql -A >all_20180524.sql

5.7已经开启了GTID,备份过程中不想带GTID信息,加上--set-gtid-purged=OFF

恢复全库的过程

先删除test 测试库

mysql -S /tmp/mysql3307.sock -uroot -pmysql < all_20180524.sql

查看恢复后的数据库:

备份单个数据库test的过程:

mysqldump -S /tmp/mysql3307.sock -uroot -pmysql --single-transaction --set-gtid-purged=OFF  test > 20180524test.sql

恢复单库test的过程:

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

| test               |

+--------------------+

5 rows in set (0.00 sec)

mysql> drop database test;

Query OK, 9 rows affected (0.18 sec)

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

4 rows in set (0.00 sec)

mysql> create database test;

Query OK, 1 row affected (0.00 sec)

mysql -S /tmp/mysql3307.sock -uroot -pmysql test < 20180524test.sql

mysql> use test;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| t              |

| t1             |

| t2             |

| t3             |

| t4             |

| tt             |

| ttt            |

| zs             |

| zs1            |

+----------------+

9 rows in set (0.00 sec)

备份单表:

mysql> select TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE,ENGINE,TABLE_ROWS from information_schema.TABLES where table_schema='test';

+--------------+------------+------------+--------+------------+

| TABLE_SCHEMA | TABLE_NAME | TABLE_TYPE | ENGINE | TABLE_ROWS |

+--------------+------------+------------+--------+------------+

| test         | t          | BASE TABLE | InnoDB |          6 |

| test         | t1         | BASE TABLE | InnoDB |     971290 |

| test         | t2         | BASE TABLE | InnoDB |          3 |

| test         | t3         | BASE TABLE | InnoDB |          3 |

| test         | t4         | BASE TABLE | InnoDB |          3 |

| test         | tt         | BASE TABLE | InnoDB |          4 |

| test         | ttt        | BASE TABLE | InnoDB |          2 |

| test         | zs         | BASE TABLE | InnoDB |          3 |

| test         | zs1        | BASE TABLE | InnoDB |          4 |

+--------------+------------+------------+--------+------------+

9 rows in set (0.00 sec)

mysqldump -S /tmp/mysql3307.sock -uroot -pmysql --single-transaction --set-gtid-purged=OFF test t1 >20180524_t1.sql

恢复表的过程:

先删除,在恢复。

mysql -S /tmp/mysql3307.sock -uroot -pmysql test < 20180524_t1.sql

注意:

单表恢复的时候,不需要写表的名字,只需要写库的名字。

备份test库t1表的where 条件

mysqldump -S /tmp/mysql3307.sock -uroot -pmysql --single-transaction --set-gtid-purged=OFF test t1 --where='RECEIVETIME >="2018-08-31 00:00:00" and  RECEIVETIME <="2018-10-09 00:00:00"' >/data_returnreport.sql

备份test库t1表的结构

mysqldump -S /tmp/mysql3307.sock -uroot -pmysql --single-transaction --set-gtid-purged=OFF -d test t1 > 20180504t1_meta.sql

或者

mysqldump -S /tmp/mysql3307.sock -uroot -pmysql --single-transaction --set-gtid-purged=OFF --no-data test t1 > 20180504t1_meta01.sql

把-d 换成--no-date

备份test库中t表中数据信息:

mysqldump -S /tmp/mysql3307.sock -uroot -pmysql --single-transaction --set-gtid-purged=OFF -t test t1 >20180524t1_data.sql

从表结构备份和表数据备份中恢复单表

先恢复表结构,在往里面导数据

查看表结构:

恢复数据:

mysql -S /tmp/mysql3307.sock -uroot -pmysql test <20180524t1_data.sql

备份test库指定条件数据

mysqldump -S /tmp/mysql3307.sock -uroot -pmysql --single-transaction --set-gtid-purged=OFF test t1 --where="id>45000" >20180524_t_part.sql

注意:

where 后面建议为双引号,以防止不识别条件。

查看备份文件:

Mysqldump逻辑备份与恢复的更多相关文章

  1. Oracle逻辑备份与恢复

      1. 备份的类型 按照备份方式的不同,可以把备份分为两类: 1.1 逻辑备份:指通过逻辑导出对数据进行备份.将数据库中的用户对象导出到一个二进制文件中,逻辑备份使用导入导出工具:EXPDP/IMP ...

  2. 数据库(表)的逻辑备份与恢复<四>

    数据库(表)的逻辑备份与恢复  介绍 逻辑备份是指使用工具 export 将数据对象的结构和数据导出到文件的过程,逻辑恢复是指当数据库对象被误操作而损坏后使用 工具 import 利用备份的文件把数 ...

  3. 3. Oracle数据库逻辑备份与恢复

    一. Oracle逻辑备份介绍 Oracle逻辑备份的核心就是复制数据:Oracle提供的逻辑备份与恢复的命令有exp/imp,expdp/impdp.当然像表级复制(create table tab ...

  4. mysqldump 逻辑备份的正确方法【转】

    1. 利用mysqldump进行逻辑备份 1)全逻辑备份: mysqldump -uxxx -p --flush-logs --delete-master-logs --all-databases & ...

  5. Oracle 数据库、表、方案的逻辑备份与恢复

    数据库(表)的逻辑备份与恢复 逻辑备份是指使用工具export将数据对象的结构和数据导出到文件的过程,逻辑恢复是指当数据库对象被破坏而使用工具import利用备份的文件把数据对象导入到数据库的过程,逻 ...

  6. Oracle逻辑备份与恢复(Data Pump)

    1. 备份的类型 按照备份方式的不同,可以把备份分为两类: 1.1 逻辑备份:指通过逻辑导出对数据进行备份.将数据库中的用户对象导出到一个二进制文件中,逻辑备份使用导入导出工具:EXPDP/IMPDP ...

  7. oracle数据处理之逻辑备份与恢复

    逻辑备份与恢复 17.1 传统的导入导出exp/imp:传统的导出导入程序指的是exp/imp,用于实施数据库的逻辑备份和恢复. 导出程序exp将数据库中的对象定义和数据备份到一个操作系统二进制文件中 ...

  8. mysql 开发进阶篇系列 42 逻辑备份与恢复(mysqldump 的完全恢复)

    一.概述 在作何数据库里,备份与恢复都是非常重要的.好的备份方法和备份策略将会使得数据库中的数据更加高效和安全.对于DBA来说,进行备份或恢复操作时要考虑的因素大概有如下: (1) 确定要备份的表的存 ...

  9. mysql 开发进阶篇系列 43 逻辑备份与恢复(mysqldump 的基于时间和位置的不完全恢复)

    一. 概述 在上篇讲到了逻辑备份,使用mysqldump工具来备份一个库,并使用完全恢复还原了数据库.在结尾也讲到了误操作是不能用完全恢复的.解决办法是:我们需要恢复到误操作之前的状态,然后跳过误操作 ...

随机推荐

  1. java.lang.ClassNotFoundException: org.objectweb.asm.ClassWriter

    转自:https://www.cnblogs.com/yfceshi/p/6814802.html Caused by: javax.xml.ws.WebServiceException: java. ...

  2. 利用Spring Hibernate注解packagesToScan的简化自动扫描方式

    转自:https://blog.csdn.net/wzygis/article/details/28256045

  3. 在nodejs使用Redis缓存和查询数据及Session持久化(Express)

    在nodejs使用Redis缓存和查询数据及Session持久化(Express) https://segmentfault.com/a/1190000002488971

  4. Windows下Word.exe在哪?

    在这里: C:\Program Files\Microsoft Office\root\Office16

  5. c++面向对象程序设计 谭浩强 第二章答案

    类体内定义成员函数 #include <iostream> using namespace std; class Time { public: void set_time(); void ...

  6. 30.QT IDE编写

    mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QTe ...

  7. POJ 1414 暴搜

    题意比较复杂 (但是很好理解) 大概意思是给你等边三角形(详见题目中的图). 最后一行有n个数,下一次要填的数是c. 里面预先已经填好了数字.(0为未填) 得分的标准是这个分数的连通块周围没有空的地方 ...

  8. MySQL高级查询和编程基础

    第一章 数据库设计 一.数据需求分析: 数据需求分析是为后续概念设计和逻辑结构设计做准备. 结构:(1)对现实世界要处理的对象进行详细的调查. (2)收集基础数.据. (3)对所收集的数据进行处理. ...

  9. 理解UIView的绘制

    界面的绘制和渲染 UIView是如何到显示的屏幕上的. 这件事要从RunLoop开始,RunLoop是一个60fps的回调,也就是说每16.7ms绘制一次屏幕,也就是我们需要在这个时间内完成view的 ...

  10. VMware虚拟机共享文件夹

    安装好虚拟文件夹后,第二次开机时发现/mnt/hgfs目录下找不到共享的文件夹,原因是vmfg-fuse服务没有开启. 在root的配置文件中添加如下代码,设置开机自启: /usr/bin/vmhgf ...