“ORA-03113: iletişim kanalında dosyanın sonu” başlangıçta


22

Buradaki mesajları Oracle desteğinde okudum ve son üç gün boyunca bulabildiğim başka bir yerde okudum ve bu sorundan vazgeçtim ...

Bir Oracle veritabanı askıda kaldı. Veritabanının kapatılması birkaç saat oturdu ve sonra kapandı. Yeniden başlamadı. Sunucu yeniden başlatıldı. Oracle yeniden başlatıldı. Adım adım ilerlemek: başlatma nomount işleri, veritabanı montaj işleri, veritabanı açık iadeleri değiştirme ORA-03113. Bunların hepsi localhost'ta - ağ üzerinden değil. Makinenin çalışan hiçbir güvenlik duvarı yok.

Bu ORA-03113 hatasını aşmanın nasıl bir fikri var mı? Son 4.5 saattir Hindistan’da destek ile telefondaydım ve henüz kimseyi bulamadım.


1
Uyarı günlüğünden ALTER DATABASE OPENve bundan sonraki hatalardan alıntı yapın .
Mindaugas Riauba 11:13

1
En son başarılı başlangıç ​​ile mevcut başarısız başlangıç ​​arasındaki tüm uyarı günlüklerini arayın (grep) ve tüm bu zaman aralıklarında ALTER SYSTEM SET'i arayın. Belki birileri bazı örnek parametrelerini standart olmayan bir şekilde değiştirmiştir.
kubanczyk 11:13

Yanıtlar:


35

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 databasekullanmak 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.


Oracle Linux sunucumda adrci komutunu bulamıyorum. Nasıl kurarım? Teşekkürler.

3
Teşekkürler! İşe yarıyor. Ancak, rman komutunun doğru komutu şöyledir: export ORACLE_SID=my_oracle//rman target /

2 kuruş eklemek için - RMANarşiv alanını ve diğer bazı şeyleri temizlemek için kullanabileceğiniz bir komutu olan bu makaleyi buradan kontrol edebilirsiniz . DB'nin bir nedenden dolayı açık olması durumunda (son bit) geri yükleme noktalarını da temizleyeceği için dikkatli olun: the1403.github.io/RMAN-cleanup-logs
g00dy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.