Resmi Oracle desteğinden saatlerce yanlış yönlendirildikten sonra, bunu kendim yaptım ve düzelttim. Başka birinin bu sorunu yaşaması durumunda belgeyi burada belgeliyorum.
Bunlardan herhangi birini yapmak için, kahin kullanıcısı olmanız gerekir:
$ su - oracle
Adım 1: Uyarı günlüğüne bakmanız gerekir. Beklendiği gibi / var / log içinde değil. Oracle log okuma programını çalıştırmanız gerekiyor:
$ 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>
ADR tabanına dikkat edin. Bu kurulum değil. Evleri görmeniz gerekir, böylece kullandığınıza bağlanabilirsiniz.
adrci> show homes
ADR Homes:
diag/rdbms/cci/CCI
diag/tnslsnr/cci/listener
diag/tnslsnr/cci/start
diag/tnslsnr/cci/reload
CCI evdir. Ayarla.
adrci> set home diag/rdbms/cci/CCI
adrci>
Şimdi, alarm kayıtlarına bakabilirsiniz. Günlükleri kolayca çözümleyebilmeniz için / var / log içinde olsaydı çok iyi olurdu. Sadece istemeyi bırak ve bu arayüzle ilgilen. En azından kuyruğunu kesebilirsin (ve umarım geri kaydırma tamponu vardır):
adrci> show alert -tail 100
Hataları görene kadar geriye kaydırın. İLK hatayı istiyorsun. İlk hatadan sonraki herhangi bir hataya ilk hatadan kaynaklanıyor olabilir. Benim durumumda ilk hata:
ORA-19815: WARNING: db_recovery_file_dest_size of 53687091200 bytes is 100.00% used, and has 0 remaining bytes available.
Bu işlemlerden kaynaklanır. Oracle kullanılmak üzere tasarlanmamıştır. İçine çok fazla veri aktarırsanız, işlem günlüklerini kaydeder. Bunlar kurtarma dosyası alanına gider. Bir kez bu dolu (bu durumda 50GB dolu). O zaman, Oracle öldü. Tasarım gereği, herhangi bir sorun çıkarsa, Oracle kapanarak cevap verecektir.
İki çözüm vardır, uygun olanı ve hızlı ve kirli olanı. Çabuk ve kirli olanı db_recovery_file_dest_size değerini arttırmaktır. İlk önce adrci'den çık.
adrci> exit
Şimdi, veritabanını açmadan sqlplus'a gidin, sadece monte edin (bunu veritabanını monte etmeden yapabilirsiniz, ama yine de monte ediyorum).
$ 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
Şimdi, mevcut db_recovery_file_dest_size'nizi artırabilirim, benim durumumda 75G’ye yükseltilebilir:
SQL> alter system set db_recovery_file_dest_size = 75G scope=both
Şimdi tekrar kapatıp açabilirsiniz ve bu önceki hatanın giderilmesi gerekir.
Doğru düzeltme, kurtarma dosyalarından kurtulmaktır. Bunu SQLPLUS veya ADRCI kullanarak değil, RMAN kullanarak yaparsınız.
$ 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;
Eğer varsa , sadece RMAN-06171: not connected to target database
kullanmak rman target /
yerinerman
Uzun bir süre bekleyin ve arşiv alanınız (bu kadar alan kullanıyordu) kaybolacak. Böylece veritabanınızı kapatabilir / başlatabilir ve işe geri dönebilirsiniz.
ALTER DATABASE OPEN
ve bundan sonraki hatalardan alıntı yapın .