Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> डेटाबेस

एक गैर-कंटेनर डेटाबेस को एक मल्टीटेनेंट प्लग करने योग्य डेटाबेस में कनवर्ट करें

मूल रूप से ट्राईकोर द्वारा प्रकाशित: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 हालाँकि, विकल्प जोखिम भरा है, क्योंकि आप मूल डेटाबेस फ़ाइलों को बरकरार नहीं रखते हैं। इस प्रकार, यदि आपको डेटाबेस को पिछली स्थिति में पुनर्स्थापित करने की आवश्यकता है, तो आपको रूपांतरण गतिविधि से पहले लिए गए बैकअप का उपयोग करके डेटाबेस को पुनर्स्थापित करना होगा।

यदि डेटाबेस का आकार छोटा है, तो आपको कॉपी . का उपयोग करना चाहिए विकल्प ताकि, यदि कोई समस्या हो, तो पुराने गैर-सीडीबी में वापस आना सीधा है क्योंकि मूल फाइलें हमेशा बरकरार रहती हैं।

कोई टिप्पणी करने या प्रश्न पूछने के लिए प्रतिक्रिया टैब का उपयोग करें।

रैकस्पेस एप्लिकेशन सेवाओं के बारे में अधिक जानें।


  1. हमेशा मुक्त स्वायत्त डेटाबेस का परिचय

    यह पोस्ट स्वायत्त डेटाबेस . का परिचय देता है और वर्णन करता है कि Oracle⪚ Cloud Infrastructure पर AlwaysFree Autonomous Database विकल्प कैसे बनाएं और उपयोग करें। स्वायत्त डेटाबेस क्या है? एक स्वायत्त डेटाबेस Oracle का एक आधुनिक क्लाउड डेटाबेस है, जो पूरी तरह से स्वचालित डेटाबेस और डेटा केंद्र संचालन

  1. SYSAUX टेबलस्पेस प्रबंधित करें

    Oracle® 10g ने स्थायी जैसी अनिवार्य विशेषताओं के साथ SYSAUX नामक एक नया अनिवार्य टेबलस्पेस पेश किया , लिखें पढ़ें ,विस्तार प्रबंधन स्थानीय , और सेगमेंट स्पेस मैनेजमेंट ऑटो . यह पोस्ट एक्सप्लोर करता है कि इस टेबलस्पेस के बढ़ने के साथ इसे कैसे प्रबंधित किया जाए। परिचय आप निम्नलिखित कार्यों को करने के

  1. MongoDB में प्रायोगिक प्लग करने योग्य स्टोरेज इंजन

    पिछले महीने MongoDB वर्ल्ड में MongoDB के संस्थापक और CTO एलियट होरोविट्ज़ ने 2.8 रिलीज़ के लिए निर्धारित प्लगेबल स्टोरेज इंजन के लिए समर्थन की घोषणा की। यह रोमांचक सामान है क्योंकि इसका मतलब है कि मोंगो उपयोगकर्ता अब एक स्टोरेज इंजन चुनने में सक्षम होंगे जो उनके वर्कलोड के लिए सबसे उपयुक्त है और एप