मेरे पास Oracle 19.3 मल्टीटेनेंट डेटाबेस है जिसे मैं 19.7 रिलीज़ अपडेट लागू करने का प्रयास कर रहा हूं। आरयू को ओपच द्वारा ठीक से स्थापित किया गया था। लेकिन डाटापैच में ORA-1114 त्रुटि होगी। मुझे निम्न में से किसी एक लॉग में त्रुटियाँ मिलती हैं:
SQL> प्लग करने योग्य डेटाबेस को बदलें GOLD2020_06_18_123653 ओपन रीड राइट इंस्टेंस =सभी;
प्लग करने योग्य डेटाबेस को बदलें GOLD2020_06_18_123653 ओपन रीड राइट इंस्टेंस =सभी
*
पंक्ति 1 पर त्रुटि:
ORA-65107:उदाहरण पर वर्तमान कार्य को संसाधित करते समय त्रुटि आई:1
ORA-17500:ODM त्रुटि:अमान्य तर्क
ORA-01114:12346 फ़ाइल करने के लिए IO त्रुटि लेखन ब्लॉक (ब्लॉक # 1)
ORA-17500:ODM त्रुटि:अमान्य तर्क
ORA-01114:12345 फ़ाइल करने के लिए IO त्रुटि लेखन ब्लॉक (ब्लॉक # 1)
ORA-17500:ODM त्रुटि:अमान्य तर्क
इससे पहले कि मैं यह समझा सकूं कि समस्या क्या है, मुझे चर्चा करनी चाहिए कि हम अपने वातावरण में मल्टीटेनेंट का उपयोग कैसे करते हैं। सप्ताह में एक बार, हमारे पास एक क्रॉन जॉब होता है जो हमारे उत्पादन डेटाबेस (डिस्क-आधारित हार्डवेयर स्नैपशॉट का उपयोग करके) की एक प्रति बनाता है। हम उत्पादन की इस प्रति को अपनी "सुनहरी छवि" कहते हैं। यह सुनहरी छवि हमारे डेटाबेस में हमारे पीडीबी में से एक के रूप में जुड़ी हुई है। पीडीबी नाम गोल्ड प्रारूप का हैyyyy_mm_dd_hhmiss ताकि हम जान सकें कि वह PDB कब बनाया गया था।
हमारे सभी देव और परीक्षण डेटाबेस तब इस सुनहरी छवि पीडीबी से बनाए जाते हैं। जब मुझे DEV1 या TEST को रीफ्रेश करने की आवश्यकता होती है, तो हम केवल DEV1 या TEST के लिए PDB को बंद कर देते हैं और उसे छोड़ देते हैं। फिर हम नवीनतम गोल्डन इमेज का एक स्नैपशॉट क्लोन बनाते हैं। स्नैपशॉट क्लोन की सुविधा के लिए गोल्डन इमेज पीडीबी रीड ओनली मोड में है।
जैसा कि मैंने यहां के बारे में लिखा है, जब स्नैपशॉट क्लोन के लिए एक पीडीबी का उपयोग स्रोत के रूप में किया जाता है, तो ओरेकल फ़ाइल अनुमतियों को 220 में बदल देगा। यह ओरेकल हमें खुद से बचा रहा है। हमें स्नैपशॉट क्लोन के स्रोत को संशोधित करने की अनुमति नहीं दी जानी चाहिए, इसलिए Oracle डेटाफ़ाइल्स को केवल पढ़ने के लिए बनाता है। Oracle में जिसने भी फ़ाइल अनुमतियों को बदलने का निर्णय लिया, वह एक अच्छा विचार था, इसके बारे में डेटापैच डेवलपर्स के साथ बात नहीं की।
डेटापैच केवल पढ़ने के लिए पीडीबी देखता है और इसे पढ़ने के रूप में खोलना चाहता है, पीडीबी के अंदर पैच करना चाहता है, और फिर केवल पढ़ने के लिए वापस सेट करना चाहता है। हालाँकि, डेटापैच PDB को रीड राइट मोड में नहीं खोल सकता क्योंकि फ़ाइल अनुमतियाँ इसकी अनुमति नहीं देती हैं। इसलिए मुझे जो त्रुटियां मिल रही हैं।
Oracle ने मेरे साथ ऐसा किया ... उन्होंने फ़ाइल अनुमतियों को एक तरह से मजबूर किया और फिर डेटापैच वह नहीं कर सकता जो वे अब करना चाहते हैं।
मुझे अभी तक अपने सेवा अनुरोध के बारे में आधिकारिक जानकारी नहीं मिली है, लेकिन मुझे उम्मीद है कि यह एक बग बन जाएगा। डेटापैच को किसी भी पीडीबी को छोड़ देना चाहिए जो स्नैपशॉट क्लोन के स्रोत हैं, मेरी राय में।
इस बीच, आप इसके माध्यम से अपना रास्ता जबरदस्ती कर सकते हैं। मैंने डेटापैच के लिए -exclude_pdbs पैरामीटर का उपयोग करने की कोशिश की, लेकिन यह काम नहीं किया। स्पष्ट रूप से एक ज्ञात बग है जहां वह पैरामीटर काम नहीं करता है यदि आपकी पीडीबी की सूची में अल्पविराम है। इसलिए मुझे डेटापैच को निम्नानुसार चलाना पड़ा:\
./datapatch -verbose -pdbs cdb\$root
./datapatch -verbose -pdbs pdb\$seed
./datapatch -verbose -pdbs dev1,dev2
सबसे पहले, मैंने सीडीबी $ रूट को पैच करने के लिए डेटापैच चलाया। फिर मैंने PDB$SEED को पैच किया। तब मैंने अपने देव पीडीबी को पैच किया। मैंने अभी अपनी सुनहरी छवि पीडीबी को पैच नहीं किया है।