Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

जब एक ही समय में डीडीएल का उपयोग किया जाता है तो mysqldump और एकल-लेनदेन का उपयोग करके सही डंप कैसे प्राप्त करें?

एक 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 को ब्लॉक कर सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. दिनांकित () उदाहरण – MySQL

  2. दो टेबल से योग कैसे प्राप्त करें?

  3. sql jdbc getgeneratedkeys रिटर्न कॉलम आईडी नहीं मिला, कॉलम प्रकार अज्ञात

  4. MySQL - MM/DD/YY को यूनिक्स टाइमस्टैम्प में बदलें

  5. MySql कॉलम नाम के रूप में गतिशील पंक्ति मानों का चयन करें