मूल रूप से ट्राईकोर द्वारा प्रकाशित:29 अगस्त, 2017
Oracle® संस्करण 12c एकल कंटेनर डेटाबेस (CDB) के साथ होस्ट मल्टीपलप्लगेबल डेटाबेस (PDB) के लिए मल्टीटेनेंट डेटाबेस विकल्प प्रदान करता है। कभी-कभी, आपको एक गैर-सीडीबी डेटाबेस को सीडीबी प्लग करने योग्य डेटाबेस में बदलने की आवश्यकता होती है। यह ब्लॉग उन विधियों का वर्णन करता है जिनका उपयोग आप गैर-सीडीबी डेटाबेस को सीडीबीडेटाबेस में बदलने के लिए कर सकते हैं।
टेस्ट केस सेटअप
यह परीक्षण परिदृश्य एक गैर-सीडीबी डेटाबेस उदाहरण से शुरू होता है, noncdb12c
, जो मशीन पर चल रहा है ABC123.xyz.com
. कार्य एक CDBडेटाबेस बनाना है, cdb12c
, एक ही मशीन पर। आपको यह सुनिश्चित करने की आवश्यकता है कि आपके पास परिवर्तित CDB डेटाबेस को रखने के लिए पर्याप्त डिस्क स्थान है।
होस्ट सर्वर :ABC123.xyz.com
गैर-सीडीबी डेटाबेस :noncdb12c
Oracle संस्करण :12.1.0.2
निम्न छवि परीक्षण परिदृश्य दिखाती है:
रूपांतरण परीक्षण
गैर-सीडीबी डेटाबेस को सीडीबी डेटाबेस में बदलने के लिए इस खंड में दिए गए चरणों का उपयोग करें।
चरण 1:एक क्लीन शटडाउन करें
गैर-सीडीबी डेटाबेस को साफ-साफ बंद करने के लिए निम्न चरणों का पालन करें:
-
परिवेश को
noncdb12c
. पर सेट करें । -
निम्न आदेश निष्पादित करें:
sqlplus / as sysdba
-
SQL प्रांप्ट पर निम्न कोड चलाएँ:
shutdown immediate
चरण 2:डेटाबेस को केवल-पढ़ने के लिए खोलें
डेटाबेस को साफ-साफ बंद करने के बाद, डेटाबेस को माउंट एक्सक्लूसिव मोड में शुरू करने के लिए निम्न चरणों का पालन करें और डेटाबेस को रीड-ओनली मोड में खोलें:
-
परिवेश को
noncdb12c
. पर सेट करें । -
निम्न आदेश निष्पादित करें:
sqlplus / as sysdba
-
SQL प्रांप्ट पर निम्न कोड चलाएँ:
startup mount exclusive alter database open read only;
चरण 3:एक PDB मेनिफेस्ट फ़ाइल जेनरेट करें
गैर-सीडीबी से पीडीबी मेनिफेस्ट फ़ाइल जेनरेट करने के लिए निम्न चरणों का पालन करें:
-
परिवेश को
noncdb12c
. पर सेट करें । -
निम्न आदेश निष्पादित करें:
sqlplus / as sysdba
-
SQL प्रांप्ट पर निम्न कोड चलाएँ:
exec dbms_pdb.describe (pdb_descr_file=>'/tmp/noncdb12c_manifest_file.xml');
चरण 4:गैर-सीडीबी को शट डाउन करें
गैर-सीडीबी फ़ाइल को बंद करने के लिए चरण 3 पूरा होने के बाद निम्न चरणों का पालन करें।
-
परिवेश को
noncdb12c
. पर सेट करें । -
निम्न आदेश निष्पादित करें:
sqlplus / as sysdba
-
SQL प्रांप्ट पर निम्न कोड चलाएँ:
shutdown immediate
चरण 5:CDB प्रारंभ करें
यदि सीडीबी पहले से नहीं चल रहा है, तो इसे शुरू करने और संगतता की जांच करने के लिए निम्न चरणों का पालन करें:
-
परिवेश को
cdb12c
. पर सेट करें । -
निम्न आदेश निष्पादित करें:
sqlplus / as sysdba
-
SQL प्रांप्ट पर निम्न कोड चलाएँ:
startup SET SERVEROUTPUT ON; DECLARE Compatible CONSTANT VARCHAR2(3) :=CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY (pdb_descr_file => '/tmp/noncdb12c_manifest_file.xml') WHEN TRUE THEN 'YES' ELSE 'NO' END; BEGIN DBMS_OUTPUT.PUT_LINE(compatible); END; /
चरण 6:त्रुटियों की जांच करें
CDB डेटाबेस स्टार्टअप पूर्ण होने के बाद, PDB_PLUG_IN_VIOLATIONS
में त्रुटियों की जांच के लिए निम्न चरणों का पालन करें देखें:
-
परिवेश को
cdb12c
. पर सेट करें । -
निम्न आदेश निष्पादित करें:
sqlplus / as sysdba
-
SQL प्रांप्ट पर निम्न कोड चलाएँ:
startup SELECT name, cause, type, message, status FROM PDB_PLUG_IN_VIOLATIONS WHERE name='NONCDB12C';
नोट :अगर कोई त्रुटि है, तो आगे बढ़ने से पहले उन्हें ठीक करें।
चरण 7:CDB से कनेक्ट करें और PDB में प्लग करें
CDB से कनेक्ट करने और गैर-CDB मेनिफेस्ट फ़ाइल का उपयोग करके PDDB12Cडेटाबेस में प्लग इन करने के लिए निम्न चरणों का पालन करें:
-
परिवेश को
cdb12c
. पर सेट करें । -
निम्न आदेश निष्पादित करें:
sqlplus / as sysdba
-
SQL प्रांप्ट पर निम्न कोड चलाएँ:
CREATE PLUGGABLE DATABASE pdb12c USING '/tmp/noncdb12c_manifest_file.xml' COPY FILE_NAME_CONVERT = ('<Datafile_Location_for_noncdb>', 'Datafile_Location_for_pdb');
नोट :निम्नलिखित विकल्प समर्थित हैं, और आप अपने परिवेश के आधार पर किसी एक को चुन सकते हैं:
- कॉपी करें :
noncdb
. की डेटाफ़ाइलें बरकरार रहे, औरnoncdb
नए स्थान पर PDB बनाने के लिए कॉपी किया जाता है और मूल डेटा फ़ाइलों को मूल स्थान पर बरकरार रखा जाता है। इसका मतलब है कि एक गैर-सीडीबी डेटाबेस पीडीबी के निर्माण के बाद भी चालू है। - स्थानांतरित करें :
noncdb
. की डेटाफ़ाइलें एक पीडीबी बनाने के लिए एक नए स्थान पर ले जाया जाता है। इस मामले में,noncdb
PDB बनने के बाद डेटाबेस उपलब्ध नहीं होता है। - नोकॉपी :
noncdb
. की डेटाफ़ाइलें PDB2 बनाने के लिए उपयोग किया जाता है, और यह उसी स्थान का उपयोग करता है जैसेnoncdb
. इस मामले में,noncdb
पीडीबी बनने के बाद डेटाबेस उपलब्ध नहीं है।
आप FILE_NAME_CONVERT
. का उपयोग कर सकते हैं कॉपी . का उपयोग करते समय डेटा फ़ाइलों का नया स्थान निर्दिष्ट करने के लिए पैरामीटर या स्थानांतरित करें विकल्प।
चरण 8:रूपांतरण स्क्रिप्ट चलाएँ
चरण 7 के सफलतापूर्वक पूर्ण होने के बाद, PDB कंटेनर में स्विच करने और रूपांतरण स्क्रिप्ट चलाने के लिए निम्न चरणों का पालन करें,$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
:
-
परिवेश को
cdb12c
. पर सेट करें । -
निम्न आदेश निष्पादित करें:
sqlplus / as sysdba
-
SQL प्रांप्ट पर निम्न कोड चलाएँ:
alter session set container=pdb12c @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
चरण 9:PDB प्रारंभ करें और मोड सत्यापित करें
PDB प्रारंभ करने के लिए निम्न चरणों का पालन करें और सत्यापित करें कि मोड खुला है :
-
परिवेश को
cdb12c
. पर सेट करें । -
निम्न आदेश निष्पादित करें:
sqlplus / as sysdba
-
SQL प्रांप्ट पर निम्न कोड चलाएँ:
alter pluggable database open; SELECT name, open_mode FROM v$pdbs;
निष्कर्ष
जब आप एक गैर-सीडीबी डेटाबेस को सीडीबी प्लग करने योग्य डेटाबेस में कनवर्ट करते हैं, तो आप डेटाबेस के आकार के आधार पर कई विकल्पों में से चुन सकते हैं।
यदि डेटाबेस बहुत बड़ा है, तो आप NOCOPY . का उपयोग कर सकते हैं विकल्प। यह आवश्यक अतिरिक्त स्थान की मात्रा को कम करता है और रूपांतरण ऑपरेशन करने में लगने वाले समय को कम करता है। NOCOPY हालाँकि, विकल्प जोखिम भरा है, क्योंकि आप मूल डेटाबेस फ़ाइलों को बरकरार नहीं रखते हैं। इस प्रकार, यदि आपको डेटाबेस को पिछली स्थिति में पुनर्स्थापित करने की आवश्यकता है, तो आपको रूपांतरण गतिविधि से पहले लिए गए बैकअप का उपयोग करके डेटाबेस को पुनर्स्थापित करना होगा।
यदि डेटाबेस का आकार छोटा है, तो आपको कॉपी . का उपयोग करना चाहिए विकल्प ताकि, यदि कोई समस्या हो, तो पुराने गैर-सीडीबी में वापस आना सीधा है क्योंकि मूल फाइलें हमेशा बरकरार रहती हैं।
कोई टिप्पणी करने या प्रश्न पूछने के लिए प्रतिक्रिया टैब का उपयोग करें।
रैकस्पेस एप्लिकेशन सेवाओं के बारे में अधिक जानें।