服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - MySQLDump的备份小技巧

MySQLDump的备份小技巧

2021-07-19 02:02MySQL技术 Mysql

mysqldump 是日常比较常用的一个工具了,在对数据库进行导出工作时,经常会用到 mysqldump 。本篇文章将介绍 mysqldump 工具的使用方法并分享几点备份技巧。

MySQLDump的备份小技巧

前言:

mysqldump 是日常比较常用的一个工具了,在对数据库进行导出工作时,经常会用到 mysqldump 。本篇文章将介绍 mysqldump 工具的使用方法并分享几点备份技巧。

1.mysqldump使用简介

 

mysqldump 是 MySQL 系统自带的逻辑备份工具,主要用于转储数据库。它主要产生一系列的 SQL 语句,可以封装到文件,该文件包含重建数据库所需要的 SQL 命令如 CREATE DATABASE ,CREATE TABLE ,INSERT 等等。当我们需要还原这些数据时,只需要执行此文件,即可将对应的数据还原。

mysqldump 基础使用语法如下:

  1. Usage: mysqldump [OPTIONS] database [tables] 
  2. OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] 
  3. OR     mysqldump [OPTIONS] --all-databases [OPTIONS] 

执行 mysqldump --help 或参考 MySQL 官方文档,我们发现 mysqldump 工具可配置的参数有很多,以下简要说明部分常用的参数。

MySQLDump的备份小技巧

上表展示了一些常见的 mysqldump 相关选项,当你不了解某个参数的作用时,可以执行 mysqldump --help 来获取帮助。对于布尔类型的参数,一般还存在一个与之对立的参数,如 --triggers 默认开启,可以使用 --skip-triggers 来禁用它。

2.几点备份小技巧

 

虽然 mysqldump 不太适用于大数据量的备份,但因其具有灵活方便、可根据场景定制参数等优点,还是被广泛应用在数据导出领域。

笔者根据自己的使用经验,简单分享几点 mysqldump 备份小技巧:

  • 建议使用 --single-transaction 参数来获得一致性备份,减少锁表。
  • 按需求来导出,只要自己想要的数据,尽量减少导出文件大小。
  • 若想用于搭建从库,建议使用 --master-data = 2 参数记录主库 binlog 信息。
  • 若想备份存储过程、自定义函数及事件,请加 -R -E 参数,此二者默认不开启。
  • 不了解的参数不要随意加,按默认即可。

下面分享几个不同场景下的 mysqldump 使用方法:

  1. # 备份全部数据库(包含存储过程、自定义函数及事件) 
  2. mysqldump -uroot -pxxxxxx --single-transaction -R -E --all-databases > /tmp/all_database.sql 
  3.  
  4. # 要求记录 binlog 位点信息 可用于搭建从库 
  5. mysqldump -uroot -pxxxxxx --single-transaction -R -E --all-databases --master-data=2 > /tmp/all_database.sql 
  6.  
  7. # 备份指定数据库 
  8. mysqldump -uroot -pxxxxxx --single-transaction -R -E --databases db1 > /tmp/db1.sql 
  9. mysqldump -uroot -pxxxxxx --single-transaction -R -E --databases db1 db2 > /tmp/db1_db2.sql 
  10.  
  11. # 备份部分表 
  12. mysqldump -uroot -pxxxxxx --single-transaction db1 tb1 > /tmp/tb1.sql 
  13. mysqldump -uroot -pxxxxxx --single-transaction db1 tb1 tb2 tb3 > /tmp/tb.sql 
  14.  
  15. # 导出某个表,数据以单行insert显示 
  16. mysqldump -uroot -pxxxxxx --single-transaction --skip-extended-insert db1 tb1 > /tmp/tb1.sql 
  17.  
  18. # 导出单表的部分数据 
  19. mysqldump -uroot -pxxxxxx --single-transaction db1 tb1 --where=" create_time >= '2021-06-01 00:00:00' " > /tmp/tb1.sql 
  20. mysqldump -uroot -pxxxxxx --single-transaction db1 tb1 --where='id < 10' > /tmp/tb1.sql 
  21.  
  22. # 排除某些表导出 
  23. mysqldump -uroot -pxxxxxx --single-transaction --databases db1 --ignore-table=db1.tb1 --ignore-table=db1.tb2 > /tmp/db1.sql 
  24.  
  25. # 只导出结构或只导出数据 
  26. mysqldump -uroot -pxxxxxx db1 --no-data > /tmp/db1_jiegou.sql 
  27. mysqldump -uroot -pxxxxxx db1 --no-create-info > /tmp/db1_data.sql 
  28.  
  29. # 只导出某个库的存储过程及自定义函数 
  30. mysqldump -uroot -pxxxxxx -d -t -R db1 > /tmp/db1_routine.sql 
  31.  
  32. # 远程导出 即MySQL服务端不在本地 
  33. mysqldump -uroot -pxxxxxx -hxxx.xxx.xx -P3306 --single-transaction --databases db1 > /tmp/db1.sql 

总结:

 

本篇文章主要介绍了 mysqldump 工具的使用方法及一些常见场景。mysqldump 作为一个实用工具,希望各位都能上手学习下,比用 Navicat 等图形化界面导出更快速,且文件体积小。

原文链接:https://mp.weixin.qq.com/s/n7DSeI7F6t2drX-rlmre8A

延伸 · 阅读

精彩推荐
  • MysqlMySQL 数据备份与还原的示例代码

    MySQL 数据备份与还原的示例代码

    这篇文章主要介绍了MySQL 数据备份与还原的相关知识,本文通过示例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    逆心2962019-06-23
  • Mysql解决MySQl查询不区分大小写的方法讲解

    解决MySQl查询不区分大小写的方法讲解

    今天小编就为大家分享一篇关于解决MySQl查询不区分大小写的方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起...

    Veir_dev5592019-06-25
  • MysqlMySQL锁的知识点总结

    MySQL锁的知识点总结

    在本篇文章里小编给大家整理了关于MySQL锁的知识点总结以及实例内容,需要的朋友们学习下。...

    别人放弃我坚持吖4362020-12-14
  • MysqlMySQL数据库varchar的限制规则说明

    MySQL数据库varchar的限制规则说明

    本文我们主要介绍了MySQL数据库中varchar的限制规则,并以一个实际的例子对限制规则进行了说明,希望能够对您有所帮助。 ...

    mysql技术网4192019-11-23
  • Mysql详解MySQL中的分组查询与连接查询语句

    详解MySQL中的分组查询与连接查询语句

    这篇文章主要介绍了MySQL中的分组查询与连接查询语句,同时还介绍了一些统计函数的用法,需要的朋友可以参考下 ...

    GALAXY_ZMY5432020-06-03
  • MysqlERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event(): read error, data_len: 438, event_type: 2 ...

    MYSQL教程网6402020-03-13
  • Mysqlmysql 不能插入中文问题

    mysql 不能插入中文问题

    当向mysql5.5插入中文时,会出现类似错误 ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column ...

    MYSQL教程网5722019-11-25
  • Mysql浅谈mysql 树形结构表设计与优化

    浅谈mysql 树形结构表设计与优化

    在诸多的管理类,办公类等系统中,树形结构展示随处可见,本文主要介绍了mysql 树形结构表设计与优化,具有一定的参考价值,感兴趣的小伙伴们可以参...

    小码农叔叔5242021-11-16