Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

लापता संग्रह लॉग से स्टैंडबाय डेटाबेस को कैसे पुनर्प्राप्त करें

एक भौतिक स्टैंडबाय डेटाबेस इसके साथ समन्वयित होने के लिए प्राथमिक डेटाबेस से संग्रह लॉग के निरंतर अनुप्रयोग पर निर्भर करता है। Oracle डेटाबेस संस्करणों में 10g से पहले एक संग्रह लॉग के गायब या दूषित होने की स्थिति में, आपको स्टैंडबाय डेटाबेस को खरोंच से पुनर्निर्माण करना था। 10g से आप SCN से एक वृद्धिशील बैकअप का उपयोग कर सकते हैं और लापता संग्रह लॉग की भरपाई के लिए उसी का उपयोग करके स्टैंडबाय को पुनर्प्राप्त कर सकते हैं। इसमें, हम देखेंगे कि एक लापता संग्रह लॉग से स्टैंडबाय डेटाबेस को कैसे पुनर्प्राप्त किया जाए

तो यहां एक लापता संग्रह लॉग से स्टैंडबाय डेटाबेस को पुनर्प्राप्त करने के चरण दिए गए हैं

चरण 1:

स्टैंडबाय डेटाबेस पर वर्तमान SCN की जाँच करें

sqlplus "/ as sysdba"
SQL>set numwidth 30;
SQL>select current_scn from v$database;
CURRENT_SCN
-----------
6746747647647

चरण 2 :

प्राथमिक डेटाबेस पर उपरोक्त एससीएन से आवश्यक वृद्धिशील बैकअप बनाएं

rman target /
RMAN> {
allocate channel c1 type disk;
BACKUP INCREMENTAL FROM SCN 6746747647647 DATABASE
FORMAT /tmp/inc_standby_%U';
}

यदि डेटाबेस ने बहुत सारे परिवर्तन उत्पन्न किए हैं तो हम बैकअप निर्माण को गति देने के लिए समानांतर श्रमिकों का उपयोग कर सकते हैं

run
{allocate channel d1 type disk;
allocate channel d2 type disk;
allocate channel d3 type disk;
allocate channel d4 type disk;
allocate channel d5 type disk;
allocate channel d6 type disk;
allocate channel d7 type disk;
allocate channel d8 type disk;
allocate channel d9 type disk;
allocate channel d10 type disk;
BACKUP INCREMENTAL FROM SCN 6746747647647 DATABASE
FORMAT /tmp/inc_standby_%U';
}

चरण 3:

स्टैंडबाय डेटाबेस पर प्रबंधित पुनर्प्राप्ति रद्द करें

sqlplus "/ as sysdba"
SQL>alter database recover managed standby database cancel;
Media recovery complete.

चरण 4:

  • बैकअप फ़ाइलों को स्टैंडबाय सर्वर से /tmp फ़ोल्डर में स्कैन करें।
  • स्टैंडबाय डेटाबेस में वृद्धिशील बैकअप फ़ाइलों को सूचीबद्ध करें
rman target /
RMAN> CATALOG START WITH '/tmp/';
searching for all files that match the pattern /tmp/
List of Files Unknown to the Database
=====================================……
Do you really want to catalog the above files (enter YES or NO)? YES
cataloging files…
cataloging done

चरण 5:

स्टैंडबाय डेटाबेस में वृद्धिशील बैकअप लागू करें

rman target /
RMAN>RECOVER DATABASE NOREDO;

चरण 6:

स्टैंडबाय डेटाबेस को वापस प्रबंधित पुनर्प्राप्ति मोड में रखें।

sqlplus "/ as sysdba"
SQL>recover managed standby database disconnect;
Media recovery complete.

अलर्ट.लॉग से आप देखेंगे कि स्टैंडबाय डेटाबेस अभी भी पुरानी लॉग फाइलों की तलाश में है

FAL[client]: Failed to request gap sequence
GAP - thread 1 sequence ….

ऐसा इसलिए है क्योंकि कंट्रोलफाइल को अपडेट नहीं किया गया है। इसलिए स्टैंडबाय कंट्रोलफाइल को फिर से बनाना पड़ता है

चरण 7:

प्राथमिक पर नया स्टैंडबाय कंट्रोलफाइल बनाएं

sqlplus "/ as sysdba"
SQL> alter database create standby controlfile as ‘/tmp/standby01.ctl’;
System altered.

चरण 8:

STANDBY डेटाबेस में डेटाफ़ाइल जानकारी कैप्चर करें।
स्टैंडबाय कंट्रोलफ़ाइल को चरण #7 पर लिए गए बैकअप से ताज़ा करने की आवश्यकता होगी। चूंकि डेटा फ़ाइल नाम प्राथमिक से भिन्न होने की संभावना है, प्राथमिक बैकअप से नियंत्रण फ़ाइल को पुनर्स्थापित करने के बाद संदर्भ के लिए अपने स्टैंडबाय डेटाफ़ाइल नामों के नाम सहेजें। नीचे दी गई क्वेरी को स्टैंडबाय डेटाबेस में चलाएँ और परिणामों को आगे उपयोग के लिए सहेजें।

spool standby_datafile_names.txt
set pagesize 1000;
set lines 200
col name format a60
select file#, name from v$datafile order by file# ;
spool off

चरण 9:

स्टैंडबाय नियंत्रण फ़ाइल को स्टैंडबाय साइट पर कॉपी करें। स्टैंडबाय डेटाबेस को शट डाउन करें और स्टैंडबाय कंट्रोल फाइलों को बदलें और नीचे दिए गए कमांड का उपयोग करके प्रबंधित रिकवरी मोड में स्टैंडबाय डेटाबेस को पुनरारंभ करें

RMAN> SHUTDOWN IMMEDIATE ;
RMAN> STARTUP NOMOUNT;
RMAN> RESTORE STANDBY CONTROLFILE FROM '/tmp/standby01.ctl';

चरण 10:

स्टैंडबाय माउंट करें

RMAN> ALTER DATABASE MOUNT;

चरण 11:

यदि स्टैंडबाय और प्राथमिक में डेटाफ़ाइल्स का स्थान भिन्न है तो यह चरण आवश्यक है

यदि प्राथमिक और स्टैंडबाय में समान संरचना और डेटा फ़ाइल नाम हैं, तो इस चरण को छोड़ा जा सकता है।

Oracle इस चरण को पूरा करने से पहले अवतार को प्राथमिक और स्टैंडबाय के लिए जाँचने की अनुशंसा करता है।

example:  
RMAN> list incarnation; 

चूंकि हमने प्राथमिक से कंट्रोलफाइल को पुनर्स्थापित कर दिया है, इस बहाल स्टैंडबाय कंट्रोलफाइल में डेटाफाइल स्थान नाम प्राथमिक डेटाबेस के समान होंगे। यदि स्टैंडबाय और प्राथमिक डेटाबेस के बीच निर्देशिका संरचना भिन्न है या यदि आप Oracle प्रबंधित फ़ाइल नाम OMF का उपयोग कर रहे हैं तो यह स्टैंडबाय फ़ाइलों की पहचान करने में सक्षम नहीं होगा। इसलिए हम नाम बदलने के ऑपरेशन को निष्पादित करने के लिए RMAN के साथ STANDBY डेटाफाइल्स को सूचीबद्ध कर सकते हैं।

प्रत्येक डिस्क समूह (या निर्देशिका) के लिए स्टैंडबाय में नीचे दिया गया चरण निष्पादित करें जहां स्टैंडबाय डेटा फ़ाइलें रहती हैं।

RMAN> CATALOG START WITH '+DATA/STBY/datafile/';

यदि बैकअप SCN (हमारे उदाहरण में, scn 6746747647647) के बाद प्राथमिक में कोई डेटा फ़ाइलें जोड़ी गई हैं, तो वे डेटा फ़ाइलें स्टैंडबाय सर्वर पर स्वचालित रूप से नहीं बनाई जाएंगी, भले ही स्टैंडबाय_फाइल_मैनेजमेंट पैरामीटर सेटिंग कुछ भी हो। अतिरिक्त डेटा फ़ाइलों को स्टैंडबाय सर्वर पर पुनर्स्थापित करना होगा। यह निर्धारित करने के लिए कि स्टैंडबाय वर्तमान SCN के बाद से कोई फ़ाइल प्राथमिक में जोड़ी गई है या नहीं

SQL>SELECT FILE#, NAME FROM V$DATAFILE WHERE CREATION_CHANGE# > 6746747647647

यदि यह कोई पंक्ति देता है, तो हमें उन फ़ाइलों को प्राथमिक से स्टैंडबाय में पुनर्स्थापित करना होगा

RMAN> backup datafile <missing-1>,<missing-2> ,<missing-3> , format '/tmp/ForStandby_%U' tag 'FORSTANDBY';

इन्हें स्टैंडबाय में कॉपी करें और फिर कैटलॉग करें और उन्हें पुनर्स्थापित करें

CATALOG START WITH '/tmp/ForStandby';
run
{
set newname for datafile X to '+DISKGROUP';
set newname for datafile Y to '+DISKGROUP';
set newname for datafile Z to '+DISKGROUP';
etc.
restore datafile x,y,z,….;
}
. को पुनर्स्थापित करें

अब हम डेटाबेस को कॉपी करने के लिए स्विच कर सकते हैं

RMAN> SWITCH DATABASE TO COPY;

यदि उपरोक्त क्वेरी 0 शून्य पंक्तियों के साथ वापस आती है

RMAN> SWITCH DATABASE TO COPY;

चरण 11

स्टैंडबाय  . पर डेटाबेस, सभी स्टैंडबाय रीडो लॉग समूहों को साफ़ करें:

SQL> v$logfile से GROUP# चुनें जहां TYPE='STANDBY' Group by GROUP#;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 3;
….

चरण 12

अब आप एमआरपी शुरू कर सकते हैं

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

आशा है कि आपको लापता संग्रह लॉग से स्टैंडबाय डेटाबेस को पुनर्प्राप्त करने के तरीके के बारे में ये विस्तृत चरण पसंद आए होंगे। कृपया प्रतिक्रिया अवश्य दें। कोई गलती हो सकती है।

यह भी पढ़ता है
गैर ASM से ASM
ओरेकल में संग्रह लॉग अनुक्रम संख्या कैसे खोजें
ओरेकल में अलर्ट लॉग त्रुटियों की जांच कैसे करें
RMAN बैकअप आदेश
RMAN बैकअप आदेशों की सूची बनाएं
RMAN इंक्रीमेंटल बैकअप का उपयोग करके एक भौतिक स्टैंडबाय डेटाबेस को आगे बढ़ाने के लिए प्रदर्शन करने के लिए कदम। (डॉक्टर आईडी 836986.1)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. COSH() Oracle में फंक्शन

  2. बेसिक Oracle ट्रिगर ऑडिट टेबल

  3. मैं पीएल/एसक्यूएल में वेरिएबल कैसे घोषित और उपयोग कर सकता हूं जैसे मैं टी-एसक्यूएल में करता हूं?

  4. समय क्षेत्र के लिए Oracle दिनांक स्वरूपण मुखौटा क्या है?

  5. Oracle में बूलियन फील्ड