एक mysql
खोलें कमांड विंडो और यह कमांड जारी करें:
mysql> FLUSH TABLES WITH READ LOCK;
यह सभीको लॉक कर देगा सभी . में टेबल जब तक आप UNLOCK TABLES
जारी नहीं करते, तब तक इस MySQL इंस्टेंस पर डेटाबेस (या क्लाइंट कनेक्शन को समाप्त करें जिसमें ये रीड लॉक हैं)।
इसकी पुष्टि करने के लिए, आप एक और कमांड विंडो खोल सकते हैं और ALTER
. करने का प्रयास कर सकते हैं , DROP
, RENAME
या TRUNCATE
. रीड लॉक जारी होने की प्रतीक्षा में ये आदेश लटकते हैं। प्रतीक्षा समाप्त करने के लिए Ctrl-C दबाएं।
लेकिन जब टेबल में रीड लॉक होता है, तब भी आप mysqldump
. कर सकते हैं बैकअप।
FLUSH TABLES WITH READ LOCK
कमांड हो सकता है --lock-all-tables
. का उपयोग करने जैसा ही हो mysqldump
. का विकल्प . यह पूरी तरह स्पष्ट नहीं है, लेकिन यह दस्तावेज़
इसका समर्थन करता प्रतीत होता है:
दोनों FLUSH TABLES WITH READ LOCK
और --lock-all-tables
"ग्लोबल रीड लॉक" वाक्यांश का उपयोग करें, इसलिए मुझे लगता है कि यह संभव है कि ये वही काम करें। इसलिए, आपको उस विकल्प का उपयोग करने में सक्षम होना चाहिए mysqldump
और समवर्ती ALTER, DROP, RENAME, और TRUNCATE से सुरक्षा करें।
पुनः। आपकी टिप्पणी:निम्नलिखित MySQL बग लॉग में गुइलहेम बिचोट से है जिसे आपने लिंक किया है:
इससे, ऐसा लगता है कि आप बैकअप के दौरान समवर्ती पहुंच प्राप्त नहीं कर सकते हैं, और साथ ही साथ ALTER, DROP, RENAME और TRUNCATE को ब्लॉक कर सकते हैं।