MySQL में पंक्ति-आधारित और कथन-आधारित प्रतिकृति के बीच अंतर?


12

पंक्ति-आधारित और कथन-आधारित प्रतिकृति के बीच वास्तविक अंतर क्या है। मैं वास्तव में दास पर प्रतिकृति के प्रभाव के संदर्भ में देख रहा हूं।

यदि मैं पंक्ति-आधारित प्रतिकृति का उपयोग कर रहा हूं तो दास पर क्या प्रभाव पड़ता है और यदि मैं कथन-आधारित का उपयोग कर रहा हूं तो प्रभाव क्या है?

कृपया निम्नलिखित मानकों को भी ध्यान में रखें:

   replicate-ignore-db  and replicate-do-db 

धन्यवाद....!

जवाबों:


15

कथन-आधारित प्रतिकृति (SBR) SQL स्टेटमेंट को दोहराएगी। Mysqlbinlog डंप प्रोग्राम का उपयोग करके पढ़ना आसान है।

पंक्ति आधारित प्रतिकृति (RBR) वास्तविक डेटा परिवर्तनों को दोहराएगी। बाइनरी लॉग और रिले लॉग एसबीआर की तुलना में बहुत तेजी से बढ़ेंगे। आप उन SQL की पहचान भी नहीं कर सकते हैं जो परिवर्तन उत्पन्न करती हैं।
(कृपया MySQL 5.6.2 के लिए अद्यतन जानकारी पढ़ें। नीचे)

यहाँ एक अधिक व्यापक पेशेवरों और विपक्षों की सूची है: http://www.databasejournal.com/features/mysql/article.php/3922266/Comparing-MySQL-Statement-Based-and-Based-Replication.htm

MySQL अपने बाइनरी लॉग्स में दोनों प्रकार के स्टेटमेंट / रो फॉर्मेट की अनुमति देगा। मैं स्थिति आधारित सलाह देता हूं। डिफ़ॉल्ट बाइनरी लॉग प्रारूप MIXED है जो ठीक है।

चूंकि आप उपयोग कर रहे हैं replicate-ignore-dbऔर replicate-do-db, मैं स्टेटमेंट-आधारित प्रतिकृति पर भरोसा करूंगा।


MySQL 5.6.2 के लिए अपडेट करें:

MySQL 5.6.2 में प्रस्तुत किया गया binlog_rows_query_log_eventsसिस्टम वेरिएबल MySQL 5.6.2 या बाद के सर्वर को सूचना द्विआधारी लॉग इवेंट जैसे कि बाइनरी लॉग में सूचना लॉग इवेंट लिखने के लिए देता है। इसलिए हम उन एसक्यूएल की पहचान कर सकते हैं जो बदलाव उत्पन्न करते हैं।

संदर्भ: 17.1.4.4 बाइनरी लॉग विकल्प और चर


प्रतिकृति SBR या RBR का डिफ़ॉल्ट मोड क्या है ... ??
— अब्दुल मनाफ

1
SBR - स्टेटमेंट
— RolandoMySQLDBA

4
डिफ़ॉल्ट मोड 5.1.8 से MIXED है, जो मुख्य रूप से स्टेटमेंट आधारित प्रतिकृति का उपयोग करता है, लेकिन स्वचालित रूप से RBR पर स्विच करता है जब SBR के साथ असुरक्षित क्वेरी निष्पादित की जाती हैं। dev.mysql.com/doc/refman/5.1/en/replication-formats.html
— एरॉन ब्राउन

9

MySQL 5.5 में, स्टेटमेंट-आधारित प्रारूप डिफ़ॉल्ट है। लेकिन मिश्रित प्रारूप का उपयोग करना बेहतर है। क्योंकि उस स्थिति में, स्टेटमेंट-आधारित लॉगिंग का उपयोग डिफ़ॉल्ट रूप से किया जाता है, लेकिन स्वचालित रूप से उन मामलों में पंक्ति-आधारित लॉगिंग पर स्विच हो जाता है जहां-कभी आवश्यकता होती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.