共计 2329 个字符,预计需要花费 6 分钟才能阅读完成。
MySQLump 中 Lock-Tables 参数的作用是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
mysqldump 有一个参数 –lock-tables,以前对这个参数也没有深入、详细了解过,直到上次有个网友问“参数 lock-tables 是一次性锁定当前库的所有表,还是锁定当前导出表?“,之前一直以为只是锁定当前导出表,后面看了参数说明后,
-l, --lock-tables Lock all tables for read. (Defaults to on; use --skip-lock-tables to disable.)
自己也不怎么确认了,当时就测试了一下。准备一个稍微大一点的库,如果数据库太小,那么可能 mysqldum 命令一下子就导出了所有库,很难清晰的看到实验结果。
执行下面命令做逻辑备份
[root@DB-Server ~]# mysqldump -u root -p --default-character-set=utf8 --opt --extended-insert=false --lock-tables MyDB db_backup_MyDB.sql Enter password:
同时立即执行下面命令
mysql show open tables where in_use +----------+--------------------------------+--------+-------------+ | Database | Table | In_use | Name_locked | +----------+--------------------------------+--------+-------------+ | MyDB | AO_60DB71_VERSION | 1 | 0 | | MyDB | AO_AEFED0_TEAM_TO_MEMBER | 1 | 0 | | MyDB | AO_4B00E6_STASH_SETTINGS | 1 | 0 | | MyDB | AO_2D3BEA_FOLIOCF | 1 | 0 | | MyDB | AO_AEFED0_TEAM_ROLE | 1 | 0 | | MyDB | AO_60DB71_DETAILVIEWFIELD | 1 | 0 | | MyDB | AO_60DB71_LEXORANK | 1 | 0 | | MyDB | AO_6714C7_REPORT_SCHEDULE | 1 | 0 | | MyDB | AO_E8B6CC_SYNC_AUDIT_LOG | 1 | 0 | | MyDB | cwd_application | 1 | 0 | | MyDB | clusternode | 1 | 0 | | MyDB | AO_86ED1B_GRACE_PERIOD | 1 | 0 | | MyDB | AO_60DB71_WORKINGDAYS | 1 | 0 | | MyDB | cwd_directory | 1 | 0 | | MyDB | AO_2D3BEA_BASELINE | 1 | 0 | | MyDB | fieldlayoutitem | 1 | 0 | | MyDB | JQUARTZ_BLOB_TRIGGERS | 1 | 0 | | MyDB | AO_013613_HD_SCHEME_MEMBER | 1 | 0 | | MyDB | AO_2D3BEA_ALLOCATION | 1 | 0 | | MyDB | AO_013613_WL_SCHEME | 1 | 0 | | MyDB | AO_7DEABF_EXEC_CLUSTER_MESSAGE | 1 | 0 | ....................................................................
如上截图,执行 mysqldump 命令的时候,使用 show open tables where in_use 0 命令,你会看到 MyDB 里面的所有表的 In_use 的值都为 1,意味着是当执行 mysqldump 命令时,是一次性锁定当前库的所有表。而不是锁定当前导出表。
In_use 说明
The number of table locks or lock requests there are for the table. For example, if one client acquires a lock for a table using LOCK TABLE t1 WRITE, In_use will be 1. If another client issues LOCK TABLE t1 WRITE while the table remains locked, the client will block waiting for the lock, but the lock request causes In_use to be 2. If the count is zero, the table is open but not currently being used. In_use is also increased by the HANDLER … OPEN statement and decreased by HANDLER … CLOSE.
关于 MySQLump 中 Lock-Tables 参数的作用是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注丸趣 TV 行业资讯频道了解更多相关知识。