ऐसा परिदृश्य हो सकता है जब कटओवर चरण विफल हो। यदि फ्लैशबैक डेटाबेस या तो डेटाबेस में सक्षम है या हमने कटओवर से पहले पूर्ण बैकअप ले लिया है, तो कटओवर (रोलबैक पैच) की पिछली स्थिति में वापस जाना संभव है।
मैं इसे पैच को रोलबैक करने के लिए डेटाबेस फ्लैशबैक के संबंध में समझाऊंगा
मैं यहां मान रहा हूं कि हमारे पास डेटाबेस में फ्लैशबैक सक्षम है। हम पुष्टि कर सकते हैं कि कमांड का उपयोग कर
SQL>v$डेटाबेस से FLASHBACK_ON चुनें;
FLASHBACK_ON
------------
हां
आप नीचे दिए गए लिंक में फ्लैशबैक डेटाबेस के बारे में अधिक जान सकते हैं
फ्लैशबैक Oracle डाटाबेस
जब हमारे पास डाटागार्ड हो तो फ्लैशबैक कैसे करें
यह अनुशंसा की जाती है कि ऑनलाइन पैचिंग कटओवर चरण ऐसे समय के लिए निर्धारित किया जाना चाहिए जब कुछ ऑनलाइन लेनदेन हों और बैच प्रोसेसिंग न्यूनतम हो। आपको पुष्टि करनी चाहिए कि कटओवर के दौरान महत्वपूर्ण समवर्ती अनुरोध निष्पादित नहीं हो रहे हैं। आपको कटओवर निष्पादित करने से पहले अनुसूचित समवर्ती अनुरोधों को होल्ड पर रखने पर भी विचार करना चाहिए क्योंकि अन्यथा कटओवर चरण कार्यक्रम के पूरा होने की प्रतीक्षा करेगा और साथ ही फ्लैशबैक के मामले में आप लेनदेन डेटा खो देंगे
आइए समस्या के मामले को देखें
केस 1
आप एक ऑनलाइन पैचिंग चक्र चला रहे हैं:
$ एडॉप फेज=तैयार करें
$ एडॉप फेज=अप्लाई पैच=99999999
$ एडॉप फेज=फाइनलाइज
$ एडॉप फेज=कटओवर
कटओवर विफल हो जाता है, और कटओवर चरण चलाने से पहले आपको सिस्टम की स्थिति में वापस जाना होगा।
यदि आपने कटओवर चरण नहीं चलाया होता, तो आप एडॉप एबॉर्ट चरण चलाकर पैच आवेदन प्रक्रिया को वापस रोल करने में सक्षम होते। हालांकि, कटओवर चलाए जाने के बाद यह संभव नहीं है।
पैच को रोलबैक करने के दो मुख्य भाग हैं:
(1) डेटाबेस पुनर्स्थापना :फ्लैशबैक डेटाबेस डेटाबेस परिवर्तनों को रोलबैक करने और समय पर वापस जाने का सबसे तेज़ तरीका है। हम डेटाबेस पुनर्स्थापना तकनीक का भी उपयोग कर सकते हैं लेकिन इसमें बहुत समय लगता है
डेटाबेस को वापस फ्लैश करना
a)। पहले, डेटाबेस को शट डाउन करें, फिर इसे माउंट अवस्था में प्रारंभ करें:
SQL>शटडाउन तत्कालडेटाबेस बंद।डेटाबेस डिसमाउंट किया गया।ORACLE इंस्टेंस शट डाउन।एसक्यूएल>स्टार्टअप माउंटORACLE इंस्टेंस शुरू हुआ।
b). फ़्लैश बैक को निर्दिष्ट समय पर पुनर्स्थापित करें।
एसक्यूएल>फ्लैशबैक डेटाबेस टू टाइम टू_डेटा(<तेह कटओवर से पहले का समय>;फ्लैशबैक पूर्ण।
c) डेटाबेस को रीड ओनली मोड में प्रारंभ करें:
एसक्यूएल>डेटाबेस को केवल पढ़ने के लिए खोलें;डेटाबेस बदल दिया गया है। उम्मीद के मुताबिक सभी की जांच करें।
d)। डेटाबेस को बंद करें, इसे माउंट अवस्था में शुरू करें, फिर इसे रीसेटलॉग विकल्प के साथ खोलें:
SQL>शटडाउन तत्कालडेटाबेस बंद।डेटाबेस डिसमाउंट किया गया।ORACLE इंस्टेंस शट डाउन।
2) फ़ाइल सिस्टम पुनर्स्थापित करें :कटओवर के विफल होने पर निर्भर करते हुए, आपको एप्लिकेशन टियर फ़ाइल सिस्टम को पुनर्स्थापित करने की भी आवश्यकता हो सकती हैफ़ाइल सिस्टम को पुनर्स्थापित करना
क्या आपको इस चरण को करने की आवश्यकता सशर्त है, यह इस पर निर्भर करता है कि फ़ाइल सिस्टम स्विच करने से पहले कटओवर विफल हुआ या नहीं। आप अपनी वर्तमान सत्र आईडी के लिए $NE_BASE/EBSapps/log/adop/
/cutover_ / में कटओवर लॉग का संदर्भ देकर पहचान सकते हैं कि इनमें से कौन सा मामला लागू होता है। केस 1 - यदि लॉग संदेश इंगित करते हैं कि फ़ाइल सिस्टम स्विच किए जाने से पहले कटओवर विफल हो गया है, तो चल रही किसी भी सेवा का क्लीन शटडाउन करें। फिर सामान्य स्टार्टअप स्क्रिप्ट का उपयोग करके सभी सेवाओं को पुनरारंभ करें,
केस 2 - यदि लॉग संदेश इंगित करते हैं कि फाइल सिस्टम स्विच करने के बाद कटओवर विफल हो गया, तो फाइल सिस्टम को वापस स्विच करने के लिए नीचे दिए गए चरण का पालन करें।
(ए) शट डाउन सेवाएं नई रन फाइल सिस्टम से शुरू हुईं
1.नए रन फाइल सिस्टम पर पर्यावरण का स्रोत।
2. $ADMIN_SCRIPTS_HOME से, सभी सेवाओं को बंद करें (adstpall का उपयोग करके) UNIX पर .sh)।
(b)एक बहु-नोड वातावरण में, सभी नोड्स पर पिछले दो चरणों को दोहराएं, व्यवस्थापक नोड को सभी स्लेव नोड्स के बाद तक छोड़ दें।(c) फाइल सिस्टम को वापस स्विच करें
उन सभी नोड्स पर जहां फाइल सिस्टम स्विच किया गया है, फाइल सिस्टम को वापस स्विच करने के लिए निम्न कमांड चलाएँ:$ perl $AD_TOP/patch/115/bin/txkADOPCutOverPhaseCtrlScript.pl \-action=ctxupdate \-contextfile=<नई रन संदर्भ फ़ाइल का पूर्ण पथ> \-patchcontextfile=<नए पैच फ़ाइल सिस्टम संदर्भ फ़ाइल का पूर्ण पथ> \-outdir=<निर्देशिका से बाहर जाने का पूरा पथ>(डी) पुराने रन फाइल सिस्टम से सभी सेवाओं को शुरू करें (यूनिक्स पर adsstrtal.sh का उपयोग करके)। और फिर स्लेव नोड्स के लिए आगे बढ़ना
निष्कर्ष
पुनर्स्थापना पूर्ण होने के बाद, आपके पास आगे बढ़ने के लिए दो बुनियादी विकल्प हैं:
(a) वर्तमान पैचिंग चक्र को निरस्त करें, यदि जिस समस्या के लिए आपको पुनर्स्थापित करने की आवश्यकता थी, वह उन पैचों के कारण हुई थी जिन्हें आप लागू करने का प्रयास कर रहे थे।यहां एक ऑनलाइन पैचिंग चक्र को निरस्त करने के चरण दिए गए हैं
यदि कोई पैचिंग चक्र विफल हो रहा है और समस्या का समाधान शीघ्रता से नहीं किया जा सकता है, तो पैचिंग चक्र को निरस्त करना और सामान्य रनटाइम ऑपरेशन पर वापस जाना संभव है। पैच संस्करण हटा दिया जाएगा।
आप कमांड चलाकर पैचिंग चक्र (बिना कोई पैच लगाए) छोड़ सकते हैं:
$ adop phase=abortपैचिंग चक्र को निरस्त करने से पैच संस्करण गिर जाएगा, लेकिन फिर आपको एक नया पैचिंग चक्र शुरू करने से पहले क्लीनअप और fs_clone चरणों को चलाना होगा। सफाई एक पूर्ण सफाई होनी चाहिए।
उदाहरण के लिए:
$ गोद लेने का चरण=तैयार करें
$ गोद लेने का चरण=पैच लागू करें=9999999
$ गोद लेने का चरण=निरस्त करें
$ गोद लेने का चरण=सफाई सफाई_मोड=पूर्ण
$ अपनाने चरण=fs_cloneवैकल्पिक रूप से, आप निम्न प्रकार से निरस्त और सफाई आदेशों को जोड़ सकते हैं:
$ एडॉप फेज=एबॉर्ट,क्लीनअप क्लीनअप_मोड=पूर्ण(बी) मौजूदा पैचिंग चक्र में किसी भी अन्य समस्या को पहचानें और ठीक करें, और पैचिंग के साथ आगे बढ़ें।