बड़े डेटा आंदोलन


11

मैं स्कीमा 1.table1 से बिलकुल पंक्तियों को नए स्कीमा 2.table2 में ले जाना चाहता हूं, जहां table2 टेबल 1 से एक रिफैक्टर्ड है। इसलिए उनकी तालिका संरचना अलग है। टेबल 1 और टेबल 2 दोनों का विभाजन किया गया है लेकिन टेबल 2 खाली है। ये दोनों स्कीमा एक ही ओरेकल डीबी में हैं। इस डेटा माइग्रेशन को करने के लिए प्रदर्शन कुशल तरीका क्या है? क्या आप केवल बहुत ही अंत में प्रतिबद्ध प्रदर्शन करना चाहते हैं या वृद्धिशील प्रतिबद्धता का विकल्प चुनना चाहते हैं? यानी मान लीजिए कि डेटा का माइग्रेशन 99% काम पूरा करने के बाद विफल हो जाता है, जिसमें कुछ घंटे लगते हैं। क्या अब आप रोलबैक करते हैं? यदि आप वेतन वृद्धि करते हैं, तो आप विफलता को कैसे संभालते हैं?

जवाबों:


8

के INSERT APPENDसाथ समानांतर NOLOGGINGऐसा करने का तरीका होगा, फिर सभी NOLOGGING संचालन के साथ, पूरा होने पर तुरंत बैकअप लें। मार्क पहले अनुपयोगी होते हैं, बाधाओं को अक्षम करते हैं, तालिका को बदलते हैं, ऑपरेशन करते हैं, फिर बाधाओं को फिर से सक्षम करते हैं आदि।

अपेंड ने ओरेकल को हमेशा वर्तमान उच्च पानी के निशान से ऊपर मुक्त स्थान हथियाने का कारण बनता है, इसलिए यह खंड में अंतरिक्ष का पुन: उपयोग करने में कुशल नहीं है, लेकिन यह फ्रीलास्ट और यूएनडीओ ओवरहेड के साथ टकराव से बचाता है। यदि आपको किसी भी कारण से फिर से शुरू TRUNCATEकरना है, तो, नहीं DELETE

वृद्धिशील प्रतिबद्धता के अनुसार, यह इस बात पर निर्भर करेगा कि आपका डेटा किस प्रकार खंडित है, क्या आप आसानी से कह सकते हैं कि एक महीने में एक महीने का मूल्य बढ़ सकता है (जैसे कि विभाजन योजना स्रोत और लक्ष्य में समान है)? क्योंकि याद रखें कि यदि आपको कुछ विधेय को संतुष्ट करने की आवश्यकता है, तो यह स्पष्ट रूप से आपको धीमा कर देगा। यह सुनिश्चित करने के लिए कि ऑपरेशन तार्किक रूप से विफल नहीं होने वाला है (जैसे स्रोत और लक्ष्य में असंगत डेटाैटिप्स) तब पर्याप्त संसाधन आवंटित करें और बस एक लेनदेन में इसके लिए जाएं। सौभाग्य!


मुझे पता है कि ऑनलाइन रिफ़ का उपयोग धीमा होने वाला है लेकिन dbms_redef भी उपरोक्त परिदृश्य का समर्थन नहीं कर सकता है?
जॉन

3

यदि विभाजन योजना समान है (तालिका 1 में विभाजन का डेटा एक तालिका 2 आदि में विभाजन के लिए जाता है) तो मैं कई सत्रों के लिए जाऊंगा और प्रत्येक सत्र को अपने स्वयं के विभाजन में अपना डेटा संलग्न करना होगा। यह बहुत सारे लॉकिंग को रोकता है और इसमें सबसे अच्छी गति है। हार्डवेयर के आधार पर आप उनकी गर्दन तक HBA कार्ड भर सकते हैं। प्रत्येक विभाजन के लिए एक प्रतिबद्धता - प्रत्येक विभाजन के लिए कुछ पंक्तियों से अधिक मान लेना - कोई समस्या नहीं होगी और मैं निश्चित रूप से ऐसा करूंगा। यह मानते हुए कि एप्लिकेशन माइग्रेशन के दौरान डाउन है, फ़ॉलबैक सरल है: ऐप को न बदलें और दोबारा कोशिश करने से पहले टेबल 2 के विभाजनों को कम कर दें, कम से कम उन हिस्सों के लिए जहां ऐप एक दूसरे रन से पहले डेटा बदल सकता था।

आशा है कि ये आपकी मदद करेगा

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