जब हम मल्टीटेनेंट की ओर कदम बढ़ा रहे हैं तो मैं अपने नए मल्टीटेनेंट वातावरण में एक गैर-सीडीबी प्लग करने की कोशिश कर रहा था। मैं अपने उत्पादन गैर-सीडीबी की एक सुनहरी छवि बनाने जा रहा हूं और फिर सभी देव और परीक्षण डेटाबेस सुनहरे छवि से क्लोन हो जाएंगे। लेकिन सबसे पहले, मुझे गैर-सीडीबी प्लग इन करने की आवश्यकता है। मेरे पास डिस्क स्नैपशॉट मल्टीटेनेंट डेटाबेस सर्वर पर आरोहित है। मैंने एक्सएमएल फाइल भी तैयार की है और मैं इस कमांड के साथ गैर-सीडीबी में प्लग इन करने के लिए तैयार हूं:
CREATE PLUGGABLE DATABASE gold180904 USING '/home/oracle/source_db.xml' NOCOPY SOURCE_FILE_NAME_CONVERT=('/u01/app/oracle/oradata/data01', '/u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data01', '/u01/app/oracle/oradata/data02','/u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data02', '/u01/app/oracle/oradata/data03','/u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data03', '/u01/app/oracle/oradata/data04','/u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data04') TEMPFILE REUSE;
दुर्भाग्य से, मुझे निम्न त्रुटि का सामना करना पड़ा:
CREATE PLUGGABLE DATABASE gold180904 * ERROR at line 1: ORA-65139: Mismatch between XML metadata file and data file /u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data03/datafile12.dbf for value of rdba (4194824 in the plug XML file, 4458552 in the data file)
मेरे शोध में, ORA-65139 त्रुटि सामान्य रूप से तब देखी जाती है जब XML फ़ाइल को रीड राइट के रूप में खुले डेटाबेस के साथ उत्पन्न किया गया था। लेकिन मुझे इस तथ्य के बारे में पता है कि मेरा डेटाबेस केवल तब पढ़ा गया था जब एक्सएमएल फ़ाइल उत्पन्न हुई थी। फरहटरमोर, एमओएस और Google खोजों में मुझे मिले सभी समान मुद्दों में "एफसीपीएसबी का मूल्य" था, जबकि मेरे त्रुटि संदेश की अंतिम पंक्ति "आरडीबीए का मूल्य" कहती है। खैर, मुझे यकीन नहीं है कि आरडीबीए का इससे क्या लेना-देना है और संदेश में डेटाफाइल सूची में त्रुटि संदेश मानचित्र में कोई भी मान नहीं है। तो यह मेरे लिए एक पहेली थी।
कुछ अलग चीजों को आजमाने के बाद, मैंने प्लगइन संगतता के लिए चेक चलाने का फैसला किया।
DECLARE compatible BOOLEAN; BEGIN compatible:=DBMS_PDB.CHECK_PLUG_COMPATIBILITY( pdb_descr_file=>'/home/oracle/source_db.xml', pdb_name=>'GOLD180904'); END; /
PDB_PLUG_IN_VIOLATIONS क्वेरी करते समय, एक पंक्ति में त्रुटि थी। उस दृश्य में इसके संदेश ने कहा:
पीएसयू बंडल पैच 180717 (डेटाबेस पैच सेट अद्यतन 12.1.0.2.180717):पीडीबी में स्थापित लेकिन सीडीबी में नहीं।
यह अब और अधिक समझ में आता है। स्रोत डेटाबेस एक उत्पादन वातावरण है जिसमें नवीनतम पीएसयू लागू होता है। सीडीबी एकदम नया है और अभी तक कोई पैच नहीं देखा है। मैंने नवीनतम पीएसयू को सीडीबी में लागू किया और प्लगइन ऑपरेशन ने अगले प्रयास में सफलतापूर्वक काम किया।
अंत में, यह स्पष्ट था कि त्रुटि संदेश का समस्या के मूल कारण से कोई लेना-देना नहीं था। कम से कम मेरे लिए तो नहीं।