टेस्ट केस सेटअप
यह टेस्ट परिदृश्य एक नॉन-CDB डेटाबेस इंस्टेंस, noncdb12c, से शुरू होता है, जो मशीन ABC123.xyz.com पर चल रहा है। कार्य उसी मशीन पर एक CDB डेटाबेस, cdb12c, बनाना है। आपको यह सुनिश्चित करना होगा कि परिवर्तित CDB डेटाबेस को रखने के लिए पर्याप्त डिस्क स्थान है।
रूपांतरण टेस्ट
नॉन-CDB डेटाबेस को CDB डेटाबेस में बदलने के लिए इस अनुभाग के चरणों का उपयोग करें।
चरण 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: नॉन-CDB को शटडाउन करें
- पर्यावरण को
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: त्रुटियों की जांच करें
- पर्यावरण को
cdb12cपर सेट करें। - निम्नलिखित कमांड निष्पादित करें:
sqlplus / as sysdba - SQL प्रॉम्प्ट पर निम्नलिखित कोड चलाएं:
startup SELECT name, cause, type, message, status FROM PDB_PLUG_IN_VIOLATIONS WHERE name='NONCDB12C';
नोट: यदि कोई त्रुटि है, तो आगे बढ़ने से पहले उन्हें ठीक करें।
चरण 7: CDB से कनेक्ट करें और PDB में प्लग इन करें
- पर्यावरण को
cdb12cपर सेट करें। - निम्नलिखित कमांड निष्पादित करें:
sqlplus / as sysdba - नॉन-CDB मैनिफेस्ट फ़ाइल का उपयोग करके CDB से कनेक्ट करें और PDDB12C डेटाबेस में प्लग इन करें:
CREATE PLUGGABLE DATABASE pdb12c USING '/tmp/noncdb12c_manifest_file.xml' COPY FILE_NAME_CONVERT = ('', 'Datafile_Location_for_pdb');
नोट: निम्नलिखित विकल्प समर्थित हैं, और आप अपने वातावरण के आधार पर एक चुन सकते हैं:
- COPY:
noncdbके डेटाफाइल्स बरकरार रहते हैं, औरnoncdbको नए स्थान पर PDB बनाने के लिए कॉपी किया जाता है और मूल डेटाफाइल्स को मूल स्थान पर बरकरार रखा जाता है। इसका मतलब है कि PDB के निर्माण के बाद एक noncdb डेटाबेस अभी भी चालू है। - MOVE:
noncdbके डेटाफाइल्स को PDB बनाने के लिए नए स्थान पर ले जाया जाता है। इस मामले में, PDB बनने के बादnoncdbडेटाबेस उपलब्ध नहीं होता। - NOCOPY:
noncdbके डेटाफाइल्स का उपयोग PDB2 बनाने के लिए किया जाता है, और यहnoncdbके समान स्थान का उपयोग करता है। इस मामले में, PDB बनने के बादnoncdbडेटाबेस उपलब्ध नहीं होता।
आप FILE_NAME_CONVERT पैरामीटर का उपयोग COPY या MOVE विकल्प का उपयोग करते समय डेटाफाइल्स के नए स्थान को निर्दिष्ट करने के लिए कर सकते हैं।
चरण 8: रूपांतरण स्क्रिप्ट चलाएं
- पर्यावरण को
cdb12cपर सेट करें। - निम्नलिखित कमांड निष्पादित करें:
sqlplus / as sysdba - SQL प्रॉम्प्ट पर निम्नलिखित कोड चलाएं:
alter session set container=pdb12c @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
चरण 9: PDB शुरू करें और मोड सत्यापित करें
- पर्यावरण को
cdb12cपर सेट करें। - निम्नलिखित कमांड निष्पादित करें:
sqlplus / as sysdba - SQL प्रॉम्प्ट पर निम्नलिखित कोड चलाएं:
alter pluggable database open; SELECT name, open_mode FROM v$pdbs;
निष्कर्ष
जब आप एक नॉन-CDB डेटाबेस को CDB प्लगेबल डेटाबेस में बदलते हैं, तो आप डेटाबेस के आकार के आधार पर कई विकल्पों में से चुन सकते हैं।
यदि डेटाबेस बहुत बड़ा है, तो आप NOCOPY विकल्प का उपयोग कर सकते हैं। यह आवश्यक अतिरिक्त स्थान की मात्रा को कम करता है और रूपांतरण ऑपरेशन को करने में लगने वाले समय को कम करता है। NOCOPY विकल्प जोखिम भरा है, हालांकि, क्योंकि आप मूल डेटाबेस फ़ाइलों को बरकरार नहीं रखते। इस प्रकार, यदि आपको डेटाबेस को पिछली स्थिति में पुनर्स्थापित करने की आवश्यकता है, तो आपको रूपांतरण गतिविधि से पहले लिए गए बैकअप का उपयोग करके डेटाबेस को पुनर्स्थापित करना होगा।
यदि डेटाबेस का आकार छोटा है, तो आपको COPY विकल्प का उपयोग करना चाहिए ताकि, यदि कोई समस्या हो, तो पुराने नॉन-CDB पर फॉलबैक सीधा हो क्योंकि मूल फाइलें हमेशा बरकरार रहती हैं।