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

ओआरए-38868

हाल ही में एक स्टैंडबाय डेटाबेस पर काम करते समय, मैं स्थिति की जांच करने के लिए डीजी ब्रोकर के पास गया और इसे प्राप्त किया:

DGMGRL> show configuration
 
Configuration - resp_ress_config
 
Protection Mode: MaxPerformance
Databases:
resp - Primary database
ress - Physical standby database
Error: ORA-16766: Redo Apply is stopped

हम्म...मेरा स्टैंडबाय फिर से लागू नहीं कर रहा है। जब मैंने प्रबंधित पुनर्प्राप्ति प्रारंभ करने का प्रयास किया, तो मुझे स्टैंडबाय अलर्ट लॉग में निम्न मिला:

Tue Dec 31 09:52:10 2013
Managed Standby Recovery starting Real Time Apply
Tue Dec 31 09:52:10 2013
MRP0: Background Media Recovery terminated with error 38868
Errors in file /u01/app/oracle/diag/rdbms/ress/ress2/trace/ress2_pr00_13905.trc:
ORA-38868: warning: the control file may have incorrect data file structure
Managed Standby Recovery not using Real Time Apply
Slave exiting with ORA-38868 exception
Errors in file /u01/app/oracle/diag/rdbms/ress/ress2/trace/ress2_pr00_13905.trc:
ORA-38868: warning: the control file may have incorrect data file structure
Recovery Slave PR00 previously exited with exception 38868
MRP0: Background Media Recovery process shutdown (ress2)

तो ORA-38868 मुझे बता रहा है कि मेरे पास एक खराब निर्देशिका संरचना है। मेरा पहला विचार यह था कि यह उस कार्य से संबंधित था जिसके बारे में मैंने कल ब्लॉग किया था। लेकिन वह काम प्राथमिक स्तर पर था। मैंने स्टैंडबाय अलर्ट लॉग को देखा और लगभग 2.5 महीने पहले इस त्रुटि की पहली घटना पाई। यदि यह एक उत्पादन प्रणाली होती, तो मैं इस मुद्दे को उस अवधि के लिए किसी का ध्यान नहीं जाने देने में बड़ी परेशानी में पड़ सकता था। लेकिन अगर मेरा प्रोडक्शन स्टैंडबाय समय की अस्वीकार्य अवधि के लिए प्राथमिक से पीछे रह जाता है, तो मुझे सचेत करने के लिए मेरे पास उपाय हैं। यह सिर्फ एक परीक्षण प्रणाली है जिसे मैं उड़ा सकता हूं और जरूरत पड़ने पर खरोंच से शुरू कर सकता हूं। लेकिन क्या मजा होगा? देखते हैं कि क्या हम समस्या को ठीक कर सकते हैं।

मेरा पहला पड़ाव मेटलिंक था। लेकिन मुझे ORA-38868 त्रुटि के लिए शून्य हिट मिली। वेब खोज करते समय, मुझे एक प्रासंगिक हिट मिली, जिसने उदाहरण को फिर से शुरू करने और फिर से लागू करने के लिए फिर से शुरू करने का एक समाधान पेश किया। मुझे संदेह हुआ, लेकिन आसान सुधार का प्रयास किया। इसमें कोई आश्चर्य की बात नहीं है कि उदाहरण के एक साधारण पुनरारंभ ने समस्या को ठीक नहीं किया। त्रुटि मुझे बता रही है कि मेरी नियंत्रण फ़ाइल में भ्रष्टाचार है। इंस्टेंस को पुनरारंभ करने से नियंत्रण फ़ाइल भ्रष्टाचार ठीक नहीं होगा। चूंकि मेटलिंक और इंटरनेट किसी काम के नहीं हैं, मुझे लगता है कि इसे ठीक करना मेरे ऊपर है। अगर बाकी सब विफल हो जाता है, तो मैं बस स्टैंडबाय छोड़ दूंगा और इसे फिर से बना दूंगा।

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

मैं एक वृद्धिशील बैकअप के माध्यम से स्टैंडबाय को आगे बढ़ाने के लिए आरएमएएन का उपयोग करके जांच करने की कोशिश कर रहा हूं। लेकिन ऐसा लगता है कि यह मेरी प्राथमिकताओं की सूची में कम है। मेरे पास एक आगामी परियोजना है जहां मुझे यह जानना होगा कि यह कैसे करना है और वह परियोजना अब एक महीने से भी कम दूर है। तो यह मेरी आगामी परियोजना के लिए इस तकनीक का अभ्यास करने और मेरे वर्तमान मुद्दे को ठीक करने का एक सही समय प्रतीत होता है। ऐसा करने के चरण इस प्रकार हैं:

Metalink Note 836986.1 Steps to Perform for Rolling Forward a Standby Database Using RMAN Incremental Backups

इस दस्तावेज़ के चरणों ने न केवल मेरे स्टैंडबाय को आगे बढ़ाया, बल्कि नियंत्रण फ़ाइलों को भी फिर से बनाया, इस प्रकार मेरी समस्या को ठीक किया।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. छुट्टियों को छोड़कर दो तिथियों के बीच सप्ताह के दिनों की संख्या प्राप्त करने का कार्य

  2. ओरेकल:अधिकतम (आईडी) +1 और अनुक्रम के बीच का अंतर। अगला

  3. Oracle तालिका का नाम बदलें या देखें

  4. Oracle एकाधिक तालिकाओं से चयन के माध्यम से सम्मिलित करें जहाँ एक तालिका में पंक्ति नहीं हो सकती है

  5. तालिका से दूसरी सबसे बड़ी या तीसरी सबसे बड़ी प्रविष्टि कैसे प्राप्त करें