मैं एक अनुमान लगाने जा रहा हूं कि आप स्वचालित भंडारण का उपयोग कर रहे हैं। (ऐसा नहीं है कि यह अन्यथा हो सकता है ... स्वचालित भंडारण के साथ ऐसा होना आसान है।
यह समस्या सबसे अधिक संभावना है कि आपके डेटाबेस ने अपने लिए स्थान पुनः प्राप्त कर लिया लेकिन डिस्क को ऑपरेटिंग सिस्टम पर वापस नहीं छोड़ा। तालिकाओं के लिए हाई वॉटर मार्क की जांच करके इसे बहुत आसानी से दिखाया जा सकता है।
एक निम्नलिखित करें
db2 list tablespaces show detail
यह आपको प्रत्येक टेबलस्पेस दिखाएगा और डिस्क पर इसका क्या उपयोग कर रहा है। Used pages
डेटाबेस के उपयोग के कितने पृष्ठ डिस्क है। तुलना करने पर कि total pages
(डिस्क पर मौजूद कुल दावा) और High water mark (pages)
आपको दिखाएगा कि क्या आप वास्तव में जरूरत से ज्यादा "दावा" कर रहे हैं। (यानी, कम उपयोग किए गए पृष्ठ, बहुत उच्च कुल पृष्ठ और कुल पृष्ठों के करीब एक हाई वॉटर मार्क)।
इस अप्रयुक्त स्थान से छुटकारा पाने के लिए और इसे ऑपरेटिंग सिस्टम पर वापस करने के लिए आप निम्नलिखित (स्वचालित भंडारण के तहत) जारी करेंगे db2 alter tablespace <tablespace name> reduce max
:। उदाहरण
db2 alter tablespace ts1 reduce max;
यह DB2 को उच्च पानी के निशान को कम करने और अप्रयुक्त डिस्क को ऑपरेटिंग सिस्टम पर वापस भेजने का कारण होगा। (ध्यान दें आप इसे केवल नियमित और बड़े टेबलस्पेस के लिए कर सकते हैं, सिस्टम अस्थायी या उपयोगकर्ता अस्थायी टेबलस्पेस के लिए नहीं)।
यदि आप बिना स्वचालित भंडारण के डीएमएस का उपयोग कर रहे हैं, तो आपको कुछ अलग प्रकार के कमांड का उपयोग करने की आवश्यकता है:
db2 alter tablespace <tablespace name> lower high water mark;
db2 alter tablespace reduce (<containter name> or [all containers] integer K|M|G or integer PERCENT);
उदाहरण
db2 alter tablespace ts1 lower high water mark;
db2 alter tablespace reduce (all containers 500 M);
जहां हम काम करते हैं, हम इसे अपनी कुछ रखरखाव लिपियों में डालते हैं ताकि हम यह सुनिश्चित करने के बाद कि हम पुन: निर्माण कर सकें, यह सुनिश्चित करने के लिए कि हम पुनरावर्ती स्थान को पुन: व्यवस्थित करें। हमारे मामले में हम DB2 LUW 9.7 FP 4 का उपयोग करते हैं, इसलिए यह सुनिश्चित करने के लिए कि आपके पास अपने संस्करण के लिए सही जानकारी तक पहुंच है, यह सुनिश्चित करने के लिए 9.5 के लिए सूचना केंद्र को दोगुना करने के लिए चोट नहीं पहुंचाता है।
EDIT: यदि आपके टेबलस्पेस डेटाबेस से DB2 9.7 में अपग्रेड किए गए हैं, तो संभवतः आपके पास पुनः प्राप्त करने योग्य भंडारण विशेषता सेट नहीं होगी। यदि आप DMS से स्वचालित संग्रहण में अपग्रेड करते हैं, तो भी यह सत्य है। किसी भी तरह से काटता है क्योंकि आप वास्तव में उच्च पानी के निशान को कम नहीं कर सकते हैं। आपको टेबल को डंप करना होगा और डेटा बाहर करना होगा, टेबलस्पेस को ड्रॉप करना होगा। फिर स्वचालित भंडारण का उपयोग करके टेबलस्पेस को फिर से बनाएं और अपनी तालिकाओं के लिए डेटा आयात करें।