क्या वास्तव में mysql में iblog फाइलें हैं


15

मैं इन ibdata फ़ाइलों को समझना चाहूंगा क्योंकि ये क्रैश रिकवरी प्रक्रिया में महत्वपूर्ण भूमिका निभाते हैं। मुझे इसके लिए वेब पर उचित संसाधन नहीं मिले।

जवाबों:


17

ibdata1

फ़ाइल ibdata1, InnoDB इन्फ्रास्ट्रक्चर के लिए सिस्टम टेबलस्पेस है।

इसमें InnoDB के लिए महत्वपूर्ण जानकारी के लिए कई कक्षाएं शामिल हैं

  • तालिका डेटा पृष्ठ
  • टेबल इंडेक्स पेज
  • डेटा शब्दकोश
  • MVCC नियंत्रण डेटा
    • अंतरिक्ष को पूर्ववत करें
    • रोलबैक सेगमेंट
  • डबल लिख बफर (ओएस कैशिंग से बचने के लिए पृष्ठभूमि में लिखे गए पृष्ठ)
  • बफ़र सम्मिलित करें (द्वितीयक अनुक्रमणिका में परिवर्तन)

एक चित्रात्मक प्रतिनिधित्व देखने के लिए यहां क्लिक करें

आप innodb_file_per_table को सक्षम करके ibdata1 से डेटा और इंडेक्स पेज को तलाक दे सकते हैं । यह किसी भी नई बनाई गई InnoDB तालिका को बाहरी .ibdफ़ाइल में डेटा और इंडेक्स पेज संग्रहीत करने का कारण बनेगा ।

उदाहरण

  • डेटादिर / var / lib / mysql है
  • CREATE TABLE mydb.mytable (...) ENGINE=InnoDB;, बनाता है /var/lib/mysql/mydb/mytable.frm
    • innodb_file_per_table सक्षम किया गया, डेटा / इंडेक्स पेज संग्रहीत किए गए /var/lib/mysql/mydb/mytable.ibd
    • innodb_file_per_table अक्षम, डेटा / सूचकांक पृष्ठ ibdata1 में संग्रहीत

कोई बात नहीं जहां InnoDB तालिका संग्रहीत की जाती है, InnoDB की कार्यक्षमता को AC मेटा अनुपालन और लेनदेन अलगाव का समर्थन करने के लिए MVCC जानकारी को संग्रहीत करने और पुनर्प्राप्त करने की आवश्यकता होती है ।

यहाँ ibdata1 से टेबल डेटा और इंडेक्स को अलग करने पर मेरे पिछले लेख हैं

iblog फ़ाइलें (उर्फ ib_logfile0, ib_logfile1)

यदि आप यह जानना चाहते हैं कि क्या हैं ib_logfile0और क्या ib_logfile1हैं, तो वे InnoDB Redo Logs हैं। जब तक mysqld का पूर्ण सामान्य शटडाउन नहीं हुआ है, तब तक उन्हें कभी भी मिटाया या आकार नहीं दिया जाना चाहिए । यदि mysqld कभी दुर्घटनाग्रस्त हो जाता है, तो बस mysqld शुरू करें। यह भर में पढ़ा जाएगा ib_logfile0और ib_logfile1किसी भी डेटा परिवर्तन है कि में डबल लिखने बफर करने के लिए तैनात नहीं किया गया है के लिए जाँच करने के लिए ibdata1। यह उन बदलावों को फिर से करेगा। एक बार जब वे पुन: व्यवस्थित और संग्रहीत हो जाते हैं, तो mysqld नए DB कनेक्शंस के लिए तैयार हो जाता है।


इन लॉग फ़ाइलों में स्थान कैसे रखा जाएगा ...? मेरे कहने का मतलब है ... "नए अंतरतम लेनदेन के लिए कैसे एक ही लॉग फाइल का उपयोग किया जाए अगर ये पूरी तरह से भर जाएं ...."
उदय

मेरी पिछली टिप्पणी ib_log फ़ाइलों के बारे में है ....
उदय

1
@ उदय जब तक लॉगबफ़र खाली नहीं हो जाता तब तक अंतरिक्ष को iblog फ़ाइलों पर बरकरार नहीं रखा जाएगा। यह एक गतिशील प्रक्रिया है, जहां लॉग बफर में दर्ज किए गए रुके हुए लेनदेन परिवर्तनों के आधार पर लॉग स्पेस पर कब्जा हो जाता है और जारी किया जाता है। इन लॉग फ़ाइलों पर पूरी तरह से कब्जा हो जाता है, जब आप कभी-कभी कुछ भारी डेटा लोड करते हैं, जो "इनोबीडी: जो लॉग समूह की क्षमता से अधिक है" बताते हुए इनोडब त्रुटियों की ओर जाता है।, जिसका अर्थ है कि लॉग फ़ाइल का आकार चीजों को करने के लिए बड़ा होना चाहिए। आशा है कि मेरे स्पष्टीकरण ने आपके संदेह को साफ़ कर दिया।
गोपीनाथ

innodb_file_per_table disabled, Data/Index Pages Stored in /var/lib/mysql/mydb/mytable.ibdऔर innodb_file_per_table enbled, Data/Index Pages Stored in ibdata1इसके विपरीत, यह नहीं होना चाहिए?
रबूददे

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