zoukankan      html  css  js  c++  java
  • 【MySQL】mysqldump参数分析

    mysqldump重要参数分析:

    -F, --flush-logs Flush logs file in server before starting dump. Note that
    if you dump many databases at once (using the option
    --databases= or --all-databases), the logs will be
    flushed for each database dumped. The exception is when
    using --lock-all-tables or --master-data: in this case
    the logs will be flushed only once, corresponding to the
    moment all tables are locked. So if you want your dump
    and the log flush to happen at the same exact moment you
    should use --lock-all-tables or --master-data with
    --flush-logs.

    —使用此参数会在导出前刷新日志文件,如果导出多个库,则在每个库导出前都会刷新一次日志;例外的是如果用了 --lock-all-tables or --master-data,则仅会刷新一次日志,对应此时刻所有表都会被锁上。

    --master-data[=#] This causes the binary log position and filename to be
    appended to the output. If equal to 1, will print it as a
    CHANGE MASTER command; if equal to 2, that command will
    be prefixed with a comment symbol. This option will turn
    --lock-all-tables on, unless --single-transaction is
    specified too (in which case a global read lock is only
    taken a short time at the beginning of the dump; don't
    forget to read about --single-transaction below). In all
    cases, any action on logs will happen at the exact moment
    of the dump. Option automatically turns --lock-tables
    off.

    —此参数为1时dump文件中有包含change master命令,若为2则change master语句是注释掉的;
    此参数会自动触发–lock-all-tables启动,除非同时使用了–single-transaction;
    即如果–master-data和–single-transaction同时使用的情况下,–lock-all-tables是不会被触发启动的,此时在dump开始的很短一段时间会有一个全局的读锁,因为–single-transaction就是会触发全局读锁。
    在任何情况下,使用–master-data都会触发–lock-tables关闭。

    --set-gtid-purged[=name]
    Add 'SET @@GLOBAL.GTID_PURGED' to the output. Possible
    values for this option are ON, OFF and AUTO. If ON is
    used and GTIDs are not enabled on the server, an error is
    generated. If OFF is used, this option does nothing. If
    AUTO is used and GTIDs are enabled on the server, 'SET
    @@GLOBAL.GTID_PURGED' is added to the output. If GTIDs
    are disabled, AUTO does nothing. If no value is supplied
    then the default (AUTO) value will be considered.

    --single-transaction
    Creates a consistent snapshot by dumping all tables in a
    single transaction. Works ONLY for tables stored in
    storage engines which support multiversioning (currently
    only InnoDB does); the dump is NOT guaranteed to be
    consistent for other storage engines. While a
    --single-transaction dump is in process, to ensure a
    valid dump file (correct table contents and binary log
    position), no other connection should use the following
    statements: ALTER TABLE, DROP TABLE, RENAME TABLE,
    TRUNCATE TABLE, as consistent snapshot is not isolated
    from them. Option automatically turns off --lock-tables.

    —使用此参数在一个单事务中创建一个一致性快照,目前只对InnoDB有效。当使用此参数进行备份时,确保没有其它的DDL语句执行,因为一致性读并不能隔离DDL语句。
    此参数自动触发–lock-tables关闭。

    -x, --lock-all-tables
    Locks all tables across all databases. This is achieved
    by taking a global read lock for the duration of the
    whole dump. Automatically turns --single-transaction and
    --lock-tables off.

    —对所有架构中的所有表上锁,则存在问题:是否锁的时间会更长?生产环境适用吗?

    -l, --lock-tables Lock all tables for read.
    (Defaults to on; use --skip-lock-tables to disable.)

    —此参数在备份过程中依次锁住每个架构下的所有表,一般用于MyISAM引擎,当备份时只能对数据库进行读取操作,不过依然可以保证备份的一致性。
    对于InnoDB引擎,不需要使用此参数,用–single-transaction即可,并且–lock-tables和–single-transaction是互斥的,不能同时使用,若同时使用了,则–single-transaction会触发–lock-tables关闭。
    如果同时备份InnoDB和MyISAM引擎,则只能使用–lock-tables了,–lock-tables只能保证每个架构下的表备份的一致性,不能保证所有架构下的表一致性。(问:那是否用–lock-all-tables就好了?)

  • 相关阅读:
    Hibernate Annotation (Hibernate 注解)
    org/objectweb/asm/Type异常解决办法
    Spring3 MVC 总结(转)
    Spring mvc 3 在controller和视图之间传递参数
    各种树tree的js控件优缺点
    Spring MVC 的请求参数获取的几种方法
    解决javax.persistence.OneToMany.orphanRemoval()Z异常办法
    ModelAndView返回自己的用法
    javax.persistence.Entity异常解决方法
    调用http://WebXml.com.cn/的webservice获取手机号段信息
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13284402.html
Copyright © 2011-2022 走看看