当前位置: 首页 > 科技观察

MySQLDump备份小技巧

时间:2023-03-13 12:08:52 科技观察

前言:mysqldump是日常生活中常用的一个工具。它经常在导出数据库时使用。本文将介绍如何使用mysqldump工具并分享一些备份技巧。一、mysqldump使用介绍mysqldump是MySQL系统自带的逻辑备份工具,主要用于dump数据库。它主要生成一系列的SQL语句,可以封装成一个文件,里面包含了重建数据库所需要的SQL命令,比如CREATEDATABASE、CREATETABLE、INSERT等,当我们需要恢复这些数据时,我们只需要需要执行这个文件来恢复相应的数据。mysqldump的基本使用语法如下:Usage:mysqldump[OPTIONS]database[tables]ORmysqldump[OPTIONS]--databases[OPTIONS]DB1[DB2DB3...]ORmysqldump[OPTIONS]--all-databases[OPTIONS]executemysqldump--help或参考MySQL官方文档。我们发现mysqldump工具可以配置的参数有很多。下面简单介绍一些常用的参数。上表显示了一些常见的mysqldump相关选项。当你不明白某个参数的作用时,可以执行mysqldump--help来获得帮助。对于布尔型参数,一般有一个相反的参数,比如--triggers是默认开启的,你可以使用--skip-triggers来关闭它。2.一些备份技巧虽然mysqldump不适合大量数据的备份,但由于其灵活方便,可以根据场景自定义参数等优点,在数据导出领域仍然被广泛使用。笔者根据自己的经验,简单分享一些mysqldump备份的小技巧:推荐使用--single-transaction参数来获取一致性备份,减少表锁。按需导出,只要你想要的数据,尽量减少导出文件的大小。如果要用它来建从库,建议使用--master-data=2参数记录主库的binlog信息。如果要备份存储过程、自定义函数和事件,请添加-R-E参数,默认不启用。看不懂的参数不要加,按默认即可。下面介绍几种mysqldump在不同场景下的使用方法:#备份所有数据库(包括存储过程、自定义函数和事件)sql#需要记录binlog位置信息可以用来建从库mysqldump-uroot-pxxxxxx--single-transaction-R-E--all-databases--master-data=2>/tmp/all_database.sql#备份指定数据库mysqldump-uroot-pxxxxxx--single-transaction-R-E--databasesdb1>/tmp/db1.sqlmysqldump-uroot-pxxxxxx--single-transaction-R-E--databasesdb1db2>/tmp/db1_db2.sql#Backupsometablesmysqldump-uroot-pxxxxxx--single-transactiondb1tb1>/tmp/tb1.sqlmysqldump-uroot-pxxxxxx--single-transactiondb1tb1tb2tb3>/tmp/tb.sql#导出一个表,数据单行显示insertmysqldump-uroot-pxxxxxx--single-transaction--skip-extended-insertdb1tb1>/tmp/tb1.sql#导出单表部分数据mysqldump-uroot-pxxxxxx--single-transactiondb1tb1--where="create_time>='2021-06-0100:00:00'">/tmp/tb1.sqlmysqldump-uroot-pxxxxxx--single-transactiondb1tb1--where='id<10'>/tmp/tb1.sql#Excludecertaintablesfromexportingmysqldump-uroot-pxxxxxx--单事务--数据库db1--ignore-table=db1.tb1--ignore-table=db1.tb2>/tmp/db1.sql#Exportonlystructureoronlyexportdatamysqldump-uroot-pxxxxxxdb1--no-data>/tmp/db1_jiegou.sqlmysqldump-uroot-pxxxxxxdb1--no-create-info>/tmp/db1_data.sql#只导出一个库的存储过程和自定义函数mysqldump-uroot-pxxxxxx-d-t-Rdb1>/tmp/db1_routine.sql#远程导出即,MySQL服务器不在本地mysqldump-uroot-pxxxxxx-hxxx.xxx.xx-P3306--single-transaction--databasesdb1>/tmp/db1.sql总结:本文主要介绍mysqldump工具的使用和somecommonScenariomysqldump是一个实用的工具,希望大家可以上手学习,比Navicat等图形界面导出速度更快,文件体积小。