在不锁定表的情况下运行MySQLDump

我想将实时生产数据库复制到本地开发数据库中。有没有一种方法可以在不锁定生产数据库的情况下执行此操作

我目前正在使用:

mysqldump-u root--password=xxx-h xxx my_db1 | mysql-u root--password=xxx-h localhost my_db1

但它会在运行时锁定每个表

--lock tables=false选项有效吗

根据手册页,如果您正在转储InnoDB表,则可以使用--single transaction选项:

--锁定表,-l
在转储之前锁定所有表。这些表被READ锁定
LOCAL允许在MyISAM表的情况下进行并发插入。对于
事务表,如InnoDB和BDB,--单个事务是
一个更好的选择,因为它不需要将表锁定在
全部的

对于innodb DB:

mysqldump–single transaction=TRUE-u username-pdb

发表评论