继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

MySQL常用的备份工具之mysqldump

2018-10-09 09:58:056012浏览

sqlercn

4实战 · 15手记 · 2推荐
TA的实战

     mysqldump是MySQL中最常用的备份工具,在一些情况下,也是我们唯一可以选择的备份工具。mysqldump是在MySQL发行版中所提供的一种逻辑备份工具,支持对数据库进行全量备份和有条件的备份,其备份结果就是SQL转储文件。那么我们如何使用mysqldump呢?我们先来看一下mysqldump的语法

mysqldump的语法:

     mysqldump [OPTIONS] database [tables]

       OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]  

       OR     mysqldump [OPTIONS] --all-databases [OPTIONS]

     使用mysqldump --help我们可以看到,mysqldump的常用语法有三种。

     mysqldump datebases [tables] 用于对指定数据库下的某一个或是某一些表进行备分

     mysqldump -databases [OPTIONS] DB1 [DB2 DB3...]  用于对指定的数据库进行备份

     mysqldump [OPTIONS] --all-databases [OPTIONS]   用于对所有数据库进行备份

而[OPTIONS]则是一些备份的参数,常用的一些参数及功能如下:

-u 备份用户

-p 备份用户的密码

--flush-logs 在备份开始前先执行flush logs 命令刷新二进制日志到磁盘,并生成一个新的二进制日志文件

--master-data 这个参数在我们上一章中已经多次提到了,其主要用途就是在备份文件 中记录备份时MySQL实例的二进制日志文件名和偏移量信息。这个参数有两个取值1和2,当为2时会在生成的change master命令前加上注释符。

--routines 在备份文件中包括存储过程和函数 

--triggers 在备份文件中包括触发器

--events  在备份文件中包括MySQL计划任务

--where 这个参数让我们可以按照一定条件来备份某一个表的数据

--single-transaction:这个参数主要用于INNODB存储引擎,该参数在事务隔离级别设置成Repeatable Read,并在dump之前发送start transaction 语句给服务端。这在使用innodb时很有用,因为在发出start transaction时,保证了在不阻塞任何应用下的一致性状态。对myisam和memory等非事务表,还是会改变状态的,当使用此参的时候要确保没有其他连接在使用ALTER TABLE、CREATE TABLE、DROP TABLE、RENAME TABLE、TRUNCATE TABLE等语句,否则会出现不正确的内容或则失败。--add-locks和此参互斥,

那么如果我们想使用mysqldump对MySQL数据库进行全备的话,我们要如何做呢?其实很简单,只要使用下面的命令就可以了

mysqldump -u xxx -p xxxx --single-transaction --triggers --routines --events -all-databases >> all.sql 

是不是很简单呢?

同样如果我们只想备份,某一个表中的符合条件的数据的话,则可以使用下面的方法

mysqldump -uroot -p --where "count>30 " dbname tbname > tb.sql

其中--where参数就是备份的条件,就和我们在SELECT语句中使用WHERE从句时一样。


打开App,阅读手记
5人推荐
发表评论
随时随地看视频慕课网APP