我想将一个实时生产数据库复制到我的本地开发数据库中。有没有办法在不锁定生产数据库的情况下执行此操作?我目前正在使用:mysqldump -u root --password=xxx -h xxx my_db1 | mysql -u root --password=xxx -h localhost my_db1但它在运行时锁定每个表。
3 回答
慕斯王
TA贡献1864条经验 获得超2个赞
该--lock-tables=false选项是否有效?
根据手册页,如果要转储InnoDB表,可以使用以下--single-transaction选项:
--lock-tables, -l
Lock all tables before dumping them. The tables are locked with READ
LOCAL to allow concurrent inserts in the case of MyISAM tables. For
transactional tables such as InnoDB and BDB, --single-transaction is
a much better option, because it does not need to lock the tables at
all.
对于innodb DB:
mysqldump --single-transaction=TRUE -u username -p DB
Helenr
TA贡献1780条经验 获得超4个赞
答案取决于您使用的存储引擎。理想的情况是你使用的是InnoDB。在这种情况下,您可以使用该--single-transaction
标志,该标志将在转储开始时为您提供数据库的连贯快照。
添加回答
举报
0/150
提交
取消