"ORA-03113: संचार पर एंड-ऑफ-फ़ाइल फ़ाइल" स्टार्टअप पर


22

मैं ओरेकल सपोर्ट पर यहाँ पोस्ट पढ़ रहा हूँ, और कहीं भी मैं पिछले तीन दिनों के लिए पा सकता हूँ और मैंने इस समस्या को छोड़ दिया है ...

एक Oracle डेटाबेस लटका दिया गया। डेटाबेस का शटडाउन कुछ घंटों के लिए बैठ गया और फिर इसे छोड़ दिया गया। यह पुनः आरंभ नहीं होगा। सर्वर को फिर से शुरू किया गया। ओरेकल को फिर से शुरू किया गया। स्टेप बाय स्टेप: स्टार्टअप नोमाउंट काम करता है, डेटाबेस माउंट कार्यों में बदलाव करता है, डेटाबेस ओपन रिटर्न ORA-03113 में परिवर्तन करता है। यह सब लोकलहोस्ट पर है - नेटवर्क पर नहीं। मशीन में किसी भी प्रकार की कोई फ़ायरवॉल नहीं है।

किसी भी विचार कैसे इस ORA-03113 त्रुटि अतीत पाने के लिए? मैं पिछले 4.5 घंटों से भारत में समर्थन के साथ फोन पर हूं और मुझे अभी तक कोई मददगार नहीं मिला है।


1
अलर्ट लॉग के बाद का अंश ALTER DATABASE OPENऔर उसके बाद की त्रुटियां।
मिन्डुगास रियाउबा

1
खोज (grep) अंतिम सफल स्टार्टअप और वर्तमान असफल स्टार्टअप के बीच सभी अलर्ट लॉग और इस सभी समय अवधि में ALTER SYSTEM SET की खोज करें। हो सकता है कि किसी ने गैर-मानक तरीके से कुछ उदाहरण पैरामीटर को बदल दिया हो।
कुबंझक

जवाबों:


35

आधिकारिक ओरेकल समर्थन से घंटों के गलत होने के बाद, मैंने अपने दम पर यह काम किया और इसे ठीक किया। मैं इसे यहाँ प्रलेखित कर रहा हूँ अगर किसी और को यह समस्या है।

ऐसा करने के लिए, आपको oracle उपयोगकर्ता होना चाहिए:

$ su - oracle

चरण 1: आपको चेतावनी लॉग को देखने की जरूरत है। यह अपेक्षित रूप में / var / log में नहीं है। आपको Oracle लॉग रीडिंग प्रोग्राम चलाना है:

$ adrci
ADRCI: Release 11.2.0.1.0 - Production on Wed Sep 11 18:27:56 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
ADR base = "/u01/app/oracle"
adrci>

एडीआर बेस को नोटिस करें। वह इंस्टॉल नहीं है। आपको घरों को देखने की आवश्यकता है ताकि आप अपने द्वारा उपयोग किए जाने वाले से जुड़ सकें।

adrci> show homes
ADR Homes:
diag/rdbms/cci/CCI
diag/tnslsnr/cci/listener
diag/tnslsnr/cci/start
diag/tnslsnr/cci/reload

सीसीआई घर है। वह सेट करें।

adrci> set home diag/rdbms/cci/CCI
adrci>

अब, आप चेतावनी लॉग देख सकते हैं। यह बहुत अच्छा होगा यदि वे / var / लॉग में थे ताकि आप लॉग को आसानी से पार्स कर सकें। बस चाहना बंद करो और इस इंटरफेस से निपटो। कम से कम आप पूंछ सकते हैं (और मुझे आशा है कि आपके पास स्क्रॉलबैक बफर है):

adrci> show alert -tail 100

त्रुटियों को देखने तक वापस स्क्रॉल करें। आप FIRST त्रुटि चाहते हैं। पहली त्रुटि के बाद किसी भी त्रुटि के कारण पहली त्रुटि हो सकती है। मेरे मामले में, पहली त्रुटि थी:

ORA-19815: WARNING: db_recovery_file_dest_size of 53687091200 bytes is 100.00% used, and has 0 remaining bytes available.

यह लेन-देन के कारण होता है। Oracle का उपयोग करने के लिए डिज़ाइन नहीं किया गया है। यदि आप इसमें बहुत अधिक डेटा पुश करते हैं, तो यह लेन-देन लॉग बचाता है। वे रिकवरी फ़ाइल क्षेत्र में जाते हैं। एक बार जो भरा हुआ है (इस मामले में 50GB पूर्ण)। तब, ओरेकल की मृत्यु हो जाती है। डिज़ाइन के अनुसार, यदि कुछ भी गड़बड़ है, तो Oracle बंद करके जवाब देगा।

दो समाधान हैं, उचित एक और त्वरित और गंदा एक। त्वरित और गंदे को db_recovery_file_dest_size बढ़ाना है। सबसे पहले, adrci से बाहर निकलें।

adrci> exit

अब, डेटाबेस को खोले बिना sqlplus में जाएं, बस इसे माउंट करें (आप डेटाबेस को माउंट किए बिना ऐसा करने में सक्षम हो सकते हैं, लेकिन मैं इसे वैसे भी माउंट करता हूं)।

$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 11 18:40:25 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> connect / as sysdba
Connected.
SQL> startup mount

अब, आप अपने वर्तमान db_recovery_file_dest_size को बढ़ा सकते हैं, मेरे मामले में 75G तक बढ़ा सकते हैं:

SQL> alter system set db_recovery_file_dest_size = 75G scope=both

अब, आप फिर से शटडाउन और स्टार्टअप कर सकते हैं और पिछली त्रुटि को दूर किया जाना चाहिए।

पुनर्प्राप्ति फ़ाइलों से छुटकारा पाने के लिए उचित समाधान है। आप RMAN का उपयोग करते हैं, SQLPLUS या ADRCI का नहीं।

$ rman
Recovery Manager: Release 11.2.0.1.0 - Production on Wed Sep 11 18:45:11 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
RMAN> backup archivelog all delete input;

यदि आपको मिल गया है RMAN-06171: not connected to target database, तो rman target /बस के बजाय उपयोग करने का प्रयास करेंrman

लंबे समय तक प्रतीक्षा करें और आपका संग्रह (जो कि सभी जगह का उपयोग कर रहा था) चला जाएगा। तो, आप अपने डेटाबेस को बंद / स्टार्टअप कर सकते हैं और व्यवसाय में वापस आ सकते हैं।


मुझे अपने oracle linux सर्वर में कमांड adrci नहीं मिलती है। मैं इसे कैसे स्थापित करूं? धन्यवाद।

3
धन्यवाद! यह काम करता हैं। लेकिन rman का सही कमांड है: export ORACLE_SID=my_oracle//rman target /

मेरे 2 सेंट जोड़ने के लिए - आप यहां इस लेख को देख सकते हैं, जिसमें एक कमांड है जिसका उपयोग आप RMANआर्काइव क्षेत्र को साफ़ करने के लिए कर सकते हैं , साथ ही साथ कुछ अन्य चीजों को भी। सावधानीपूर्वक, क्योंकि यह डीबी को किसी कारण (अंतिम बिट) के लिए खुला होने पर भी अंक बहाल करेगा: the1403.github.io/Rman-cleanup-logs
g00dy
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.