MySQL बाइनरी लॉग फॉर्मेट (रिप्लिकेशन प्रकार) देखना और बदलना
MySQL में बाइनरी लॉगिंग फॉर्मेट तीन प्रकार का हो सकता है: STATEMENT, ROW, या MIXED। डिफ़ॉल्ट आमतौर पर ROW होता है (MySQL 5.7.7+ से)।
वर्तमान फॉर्मेट जांचें
SHOW GLOBAL VARIABLES LIKE 'binlog_format';
उदाहरण आउटपुट
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | binlog_format | ROW | +---------------+-------+
ग्लोबल लेवल पर बदलना (स्थायी, SUPER विशेषाधिकार आवश्यक)
SET GLOBAL binlog_format = 'STATEMENT';
सत्र लेवल पर बदलना (केवल वर्तमान कनेक्शन के लिए)
SET SESSION binlog_format = 'ROW';
तीनों मोड का तुलनात्मक विवरण
| मोड | विवरण | पक्ष | विपक्ष |
|---|---|---|---|
| STATEMENT | SQL स्टेटमेंट लॉग करता है | कम डिस्क स्पेस, सरल | नॉन-डिटरमिनिस्टिक क्वेरीज़ के साथ असुरक्षित |
| ROW | प्रत्येक पंक्ति परिवर्तन लॉग करता है | सबसे सुरक्षित, सटीक रिप्लिकेशन | अधिक डिस्क स्पेस, बड़ा बाइनरी लॉग |
| MIXED | आवश्यकता अनुसार STATEMENT/ROW स्विच करता है | संतुलित | जटिलता |
सत्यापन
बदलने के बाद फिर से जांचें:
SHOW VARIABLES LIKE 'binlog_format';
नोट
GLOBALपरिवर्तन के लिएSUPERविशेषाधिकार और MySQL रीस्टार्ट के बाद भी बने रहने के लिएmy.cnf/my.iniमेंbinlog_format=ROWसेट करें।- रिप्लिकेशन टोपोलॉजी में सभी सर्वरों पर समान फॉर्मेट रखना सर्वोत्तम है।