我想將一個實時生產數據庫復制到我的本地開發數據庫中。有沒有辦法在不鎖定生產數據庫的情況下執行此操作?我目前正在使用: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
提交
取消