数据库备份工具mysqldump重要参数详解

1、 --single-transaction

  InnoDB 表在备份时,通常启用选项 --single-transaction 来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为:REPEATABLE READ,以确保本次会话(dump)时,不会看到其他会话已经提交了的数据。

2、--master-data

  默认启用—lock-all-tables,如果显式指定—single-transaction则弃用—lock-all-tables,此时只在dump开始时短暂获取global read lock;

执行流程

(1)FLUSH  TABLES

(2)FLUSH TABLES WITH READ LOCK

(3)SHOW MASTER STATUS

  同时使用master-data和single-transaction可以对Innodb进行Online backup

  root> mysqldump --all-databases --master-data --single-transaction > all_databases.sql

执行流程

(1)FLUSH   TABLES

(2)FLUSH TABLES WITH READ LOCK

(3)SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ

(4)START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */

(5)SHOW MASTER STATUS

(6)UNLOCK TABLES

  global read lock的持续时间很短,获取当前binlog的位置信息后立即释放;

注意:

在执行时如果当前有一个事务长时间没有结束,那么FLUSH TABLES WITH READ LOCK将会一直等待,而更加严重的是,阻塞的FLUSH TABLES WITH READ LOCK会进一步阻塞后续的DML,从而造成mysql hang;

2、--single-transaction and --master-data

  由于增加了选项 --master-data,因此还需要提交一个快速的全局读锁。

  single-transaction 选项和 lock-all-tables 选项是二选一的,前者是在导出开始时设置事务隔离状态并使用一致性快照开始事务,而后马上unlock tables,然后执行导出,导出过程不影响其它事务或业务连接,但只支持类似innodb多版本特性的引擎,因为必须保证即使导出期间其它操作(事务点t2)改变了数据,而导出时仍能取出导出开始的事务点t1时的数据。而lock-all-tables则一开始就 FLUSH TABLES WITH READ LOCK; 加全局读锁,直到dump完毕。

3、--quick, -q

  该选项用于转储大的表。它强制mysqldump从服务器一次一行地检索表中的行而不是检索所有行并在输出前将它缓存到内存中。

4、--opt

  该选项是速记;等同于指定 --add-drop-tables--add-locking --create-option --disable-keys--extended-insert --lock-tables --quick --set-charset。它可以给出很快的转储操作并产生一个可以很快装入MySQL服务器的转储文件。该选项默认开启,但可以用--skip-opt禁用。要想只禁用opt启用的选项,使用--skip形式;例如,--skip-add-drop-tables或--skip-quick。

5、--all--database,-A

  转储所有数据库中的所有表。与使用---database选项相同,在命令行中命名所有数据库。

6、--comments[={0|1}]

  如果设置为 0,禁止转储文件中的其它信息,例如程序版本、服务器版本和主机。--skip-comments与---comments=0的结果相同。 默认值为1,即包括额外信息。

7、--compact

  产生少量输出。该选项禁用注释并启用--skip-add-drop-tables、--no-set-names、--skip-disable-keys和--skip-add-locking选项。

8、--flush-logs,-F

  开始转储前刷新MySQL服务器日志文件。该选项要求RELOAD权限。请注意如果结合--all--database(或-A)选项使用该选项,根据每个转储的数据库刷新日志。例外情况是当使用--lock-all-tables或--master-data的时候:在这种情况下,日志只刷新一次,在所有 表被锁定后刷新。如果你想要同时转储和刷新日志,应使用--flush-logs连同--lock-all-tables或--master-data。

时间: 12-26

数据库备份工具mysqldump重要参数详解的相关文章

Linux系统IO分析工具之iotop参数详解(查看IO占用)

这篇文章主要介绍了Linux系统IO分析工具之iotop参数详解(查看IO占用),本文着重注解了iotop工具的参数,以及可操作命令,需要的朋友可以参考下 简介: iotop – simple top-like I/O monitoriotop是一个用来监视磁盘I/O使用状况的 top 类工具,可监测到哪一个程序使用的磁盘IO的信息(requires 2.6.20 or later) 安装: 复制代码 代码如下: yum -y install iotop 用法: 复制代码 代码如下: iotop

MySQL数据库备份工具mysqldump的使用(转)

说明:MySQL中InnoDB和MyISAM类型数据库,这个工具最新版本好像都已经支持了,以前可能存在于MyISAM的只能只用冷备份方式的说法. 备份指定库: mysqldump -h127.0.0.1 -uroot -p --lock-tables --events --triggers --routines --flush-logs --master-data=2 --databases db1 db2 db3 > ./db.sql 备份所有库: mysqldump -uroot -p -h

Linux备份数据库,mysqldump命令实例详解

mysqldump是mysql数据库中备份工具,用于将MYSQL服务器中的数据库以标准的sql语言的方式导出,并保存到文件中. 语法: mysqldump (选项) 选项: --add-drop-table :在每个创建数据表语句前添加删除数据库的语句  --add-locks:备份数据库表时锁定数据库表  --all-databases:备份mysql服务器上的所有数据库  --comments:添加注释信息  --compact:压缩模式,产生更少的输出  --complete-insert

MySQL数据库使用mysqldump导出数据详解

mysqldump是mysql用于转存储数据库的实用程序.它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等.接下来通过本文给大家介绍MySQL数据库使用mysqldump导出数据详解,需要的朋友一起学习吧 mysqldump是mysql用于转存储数据库的客户端程序.它主要产生一系列的SQL语句,可以封装到文件,该文件包含有所有重建您的数据库所 需要的 SQL命令如CREATE DATABASE,CREATE TABLE,INSERT等等.可

MySQL Study之--Mysql数据库备份工具(mysqldump)

MySQL Study之--Mysql数据库备份工具(mysqldump) 对于Mysql Database的备份方式有很多种,此次文档主要介绍mysqldump工具: mysqldump:      mysqldump工具很多方面类似相反作用的工具mysqlimport.它们有一些同样的选项.但mysqldump能够做更多的事情.它可以把整个数据库装载到一个单独的文本文件中.这个文件包含有所有重建您的数据库所需要的SQL命令.这个命令取得所有的模式(Schema,后面有解释)并且将其转换成DD

Mysqldump 参数详解(全)

Mysqldump 参数详解(全) http://www.open-open.com/lib/view/open1358172843762.html

ASP.NET性能监视参数详解

性能监视器- Performance Monitor 性能监视器是Windows自带的系统资源和性能监视工具. 性能监视器能够量化地提供CPU使用率, 内存分配状况, 异常派发情况, 线程调度频率等信息. ASP.NET能够提供每秒钟的请求数目, 请求响应时间等等. 性能监视器能够监视一段时间内上述资源的利用情况, 提供平均值和峰值. 性能监视器有助于获取关于性能的具体指标, 监视问题出现时系统资源的变化情况. 通过检查性能监视器中一些重要计数器的变化情况, 往往能够找到一些比较有用的线索. 比

Redis配置文件redis.conf参数详解

redis.conf配置文件参数详解 # Redis configuration file example. ########################################## GENERAL ######################################## daemonize yes    #是否开启在后台运行redis,默认为no,不开启 pidfile /var/run/redis/redis.pid    #redis在后台运行时,默认pid文件的存放路

rsync参数详解、利用ssh、rsync 实现数据的定时同步

rsync 简介 rsync(remote synchronize)是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机之间的文 件.也可以使用 rsync 同步本??硬盘中的不同目录. rsync 是用于替代 rcp 的一个工具,rsync 使用所谓的 rsync算法 进行数据同步,这种算法只传送两个文件 的不同部分,而不是每次都整份传送,因此速度相当快.您可以参考 How Rsync Works A PracticalOverview 进一步了解 rsync 的运作机制. rsy