2012-06-27 6 views
11

मुझे समस्या हल करने में आपकी मदद की ज़रूरत है क्योंकि मैं पोस्टग्रेज़ के लिए बिल्कुल नया हूं और मैनुअल पढ़ने में मदद नहीं करता है।पोस्टग्रेस एकाधिक डिस्क में डेटा वितरित

हमारे पास 4 आंतरिक हार्ड डिस्क वाले सर्वर हैं। हमने कुछ टेबल के साथ पोस्टग्रेज़ डेटाबेस बनाया है। हम इन 4 डिस्क में हमारे डेटा को फैलाने में सक्षम होना चाहते हैं।

हम कहीं निर्दिष्ट करना चाहते हैं (जैसे तालिका स्थान निर्माण चरण) कि तालिकाओं के एक सेट में लोड किया गया डेटा 4 डिस्क में वितरित किया जाना चाहिए।

क्या आप कृपया हमें सिंटैक्स दे सकते हैं या हमें सही दिशा में इंगित कर सकते हैं?

+2

वास्तव में, RAID का उपयोग क्यों न करें? – leonbloy

उत्तर

20
  1. चार टेबलस्पेस एक अलग डिस्क पर हर एक को बनाएं (देखें: http://www.postgresql.org/docs/current/static/sql-createtablespace.html)
  2. के रूप में आप चाहते हैं यह ALTER TABLE foobar SET tablespace = foospace का उपयोग करने की, यहाँ देख ताकि डेटा वितरित किया जाता है टेबलस्पेस के लिए टेबल की सामग्री ले जाएँ: http://www.postgresql.org/docs/current/static/sql-altertable.html
  3. alter index idx_foo set tablespace = spacefoo का उपयोग कर टेबलस्पेस के लिए टेबल 'अनुक्रमित की सामग्री ले जाएँ, यहाँ देखें: http://www.postgresql.org/docs/current/static/sql-alterindex.html
+0

इसलिए मैंने इसे एक टेबल (डिस्क पर 78 जीबी) के लिए किया है। नया पथ अब 78 जी का उपयोग करता है, लेकिन मूल विभाजन पर डिस्क उपयोग अपरिवर्तित बनी हुई है। मैं मूल स्थान को पुनः प्राप्त कैसे करूं? – keredson

+0

ने 'वैक्यूम' को बदल दिया। हालांकि, केवल एक टेबल को खाली करना बहुत अजीब नहीं था। – keredson

7

सबसे अच्छा तरीका है एक RAID -0 या RAID-10 सरणी बनाने के लिए है और ओएस इस संभालने दें तुम्हारे लिए। RAID-0 में कोई अनावश्यकता नहीं है इसलिए कोई एकल ड्राइव विफलता विनाशकारी है। RAID-10 किसी भी एक डिस्क को असफल होने की अनुमति देता है और अच्छे प्रदर्शन के साथ काम करने पर सही रहता है। बहुत खराब लेखन प्रदर्शन के कारण RAID-5 या RAID-6 से बचें।

+0

RAID समस्या का एक अच्छा समाधान हो सकता है लेकिन यह सवाल का जवाब नहीं देता है। हो सकता है कि वह एक विशिष्ट डिस्क पर विशिष्ट डेटा रखना चाहता है, जैसे कि तेज डिस्क पर एक भारी उपयोग की गई तालिका डालें और कुछ भी नहीं, इसलिए डिस्क का उपयोग केवल इस तालिका में पढ़ और लिखकर किया जाता है। – Janning

+2

क्षमा करें लेकिन आप गलत हैं। ओपी ने कहा: हम कहीं निर्दिष्ट करना चाहते हैं (जैसे टेबल स्पेस सृजन चरण) कि तालिकाओं के एक सेट में लोड किया गया डेटा 4 डिस्क में वितरित किया जाना चाहिए। ध्यान दें कि कोष्ठक में उपजाऊ खंड इसे कैसे किया जाए इस पर अनुमान लगाया जाता है। हालांकि टेबलस्पेस के साथ ऐसा करना संभव है और इसमें कोई रिडंडेंसी नहीं है, सभी उपयोगकर्ताओं का 99% का बेहतर तरीका यह है कि इसे सभी को एक बड़े RAID सरणी पर रखा जाए, तब से सभी तालिकाओं को संयुक्त गति और अनावश्यकता से लाभ हो सकता है। नाइट पिकिंग वास्तव में मदद नहीं करता है। –

+0

आपका सही है, स्कॉट। मैंने आपके उत्तर के लिए मतदान किया। – Janning

संबंधित मुद्दे