आधिकारिक ओरेकल समर्थन से घंटों के गलत होने के बाद, मैंने अपने दम पर यह काम किया और इसे ठीक किया। मैं इसे यहाँ प्रलेखित कर रहा हूँ अगर किसी और को यह समस्या है।
ऐसा करने के लिए, आपको 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
लंबे समय तक प्रतीक्षा करें और आपका संग्रह (जो कि सभी जगह का उपयोग कर रहा था) चला जाएगा। तो, आप अपने डेटाबेस को बंद / स्टार्टअप कर सकते हैं और व्यवसाय में वापस आ सकते हैं।
ALTER DATABASE OPEN
और उसके बाद की त्रुटियां।