Home / MAKALELER / Veri Tabanı / Ora-03114 : end-of-file on communication channel

Ora-03114 : end-of-file on communication channel

Ora-03114 hatası aslında dba’ lerin ora-600 gibi çokda hoşlanmadıkları hatalardan biridir aslında, hatanın nedeni kullanılan oracle ürünlerine, komponentlerine ve hata alınmadan önce yapılmaya çalışılan işlem ile ilgili olarak çok değişik nedenlerden dolayı alınıyor olabilir. Ben pyhsical standbyı olan bir sistemi restart etmek isterken bu hata alındığında neden kaynaklandığından ve çözümünden bahsediyor olacağım. Bu tarz bir hata alındığında hatanın tam olarak olarak neden kaynaklandığını görmek için mutlaka alert loga bakmamız gerekiyor. Çünkü önyüze yansıyan hata ile ilgili olarak ihtiyaç duyacağımız detay bilgiye ancak buradan ulaşabiliyor oluruz.

Standby database’ler kurulurken daha öncede detayından bahsetmiş olduğumuz gibi 3 tane kullanabileceğimiz protection modu bulunmaktadır. Bunlardan maximum protection ve maximum availability modeları birbirlerine yakın kullanım tipleridir. Burada önemli olan nokta şu; size bu iki protection yönteminden biriniz seçmis iseniz ve dataguardınız da senkron olarak çalışıyor ise standby tarafında yaşanılacak olası problemlerden etkileniyor olacaksınız demektir. Üzerinde konuştuğumuz her iki modun da ortak özelliği;

• Redo Archival Process : LGWR
• Network Transmission mode : SYNC
• Disk Write Option : AFFIRM
• Standby Redo Logs : Yes
• Standby Database Type : Physical and Logical

Şeklinde olmasıdır. Benim anlatmış olduğum case’ de buna bir örnektir. Primary database’ den log_archive_dest_state_2 parametresini DEFER yapsanız dahi kullanılan protection yönteminden dolayı sistem SYNC olarak çalışmayı deneyecek standby’ a bir noktada ulaşamadığında ise primary tarafını durduracaktır. Bu tarz bir sorunla karşılaştığınızı varsayıp problemi gidermek adına primary database’ i restart etmek istediniz;

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup mount
ORACLE instance started.
Total System Global Area 447778816 bytes
Fixed Size 1375200 bytes
Variable Size 339739680 bytes
Database Buffers 100663296 bytes
Redo Buffers 6000640 bytes
Database mounted.

SQL>alter database open;
ORA-03114: end-of-file on communication channel

hatasını alırız, bu durumda iken alertloga baktığımızda aşağıdaki satırları görürüz ;

LGWR: STARTING ARCH PROCESSES COMPLETE
ARC1 started with pid=29, OS id=15483
Tue Oct 18 16:32:22 2011
LGWR: Primary database is in MAXIMUM AVAILABILITY mode
LGWR: Destination LOG_ARCHIVE_DEST_1 is not serviced by LGWR
LGWR: Minimum of 1 LGWR standby database required
Tue Oct 18 16:32:22 2011
Errors in file /u01/test_lgwr_15113.trc:
ORA-16072: a minimum of one standby database destination is required
Tue Oct 18 16:32:22 2011
Errors in file /u01/test_lgwr_15113.trc:
ORA-16072: a minimum of one standby database destination is required
LGWR: terminating instance due to error 16072
Instance terminated by LGWR, pid = 15113

Bizim için burda önemli olan ora-16072 hatasıdır. Peki bu durumda neler yapabiliriz, standby database’ inizdeki hatayı giderebiliyorsanız öncelikle onu giderip tekrar aktif hale getirebiliriz, eğer bu adımı yapamıyorsak o zaman database’ imizin protection modunu maximum protection veya maximum availability modundan çıkarıp maximum performansa almamız gerekecektir.

Bunu nasıl yapıyoruz;

Öncelikle primary database’ imizi mount moda alıyoruz; (ki açamadığımız için zaten mount modda olduğunu varsayıyorum)

SQL> startup mount
ORACLE instance started.
Total System Global Area 2030043136 bytes
Fixed Size 2041752 bytes
Variable Size 469768296 bytes
Database Buffers 1543503872 bytes
Redo Buffers 14729216 bytes
Database mounted.

Maximum performance’ a set ediyoruz;

SQL> alter database set standby to maximize performance;
Database altered.

Database’ imizi kapatıp açıyoruz;

SQL> shutdown immediate
ORA-01109: database not open

Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 2030043136 bytes
Fixed Size 2041752 bytes
Variable Size 469768296 bytes
Database Buffers 1543503872 bytes
Redo Buffers 14729216 bytes
Database mounted.
Database opened.

Son olarak ASYNC olarak çalışması için log_archive parametremizi set edip enable’ a çekiyoruz ;

alter system set log_archive_dest_2=’SERVICE=smg_stby LGWR ASYNC NOAFFIRM’ scope=both
system altered.

alter system set log_archive_dest_state_2=ENABLE scope=both
system altered.

About Kamil Turkyilmaz

1979 Tokat/Zile doğumluyum. Yıldız Teknik Üniversitesi 1997 - 2001 mezunuyum ancak 1998 yılından itibaren IT sektöründe, 2000 yılından bu yanada Oracle üzerine çalışmaktayım. 2005 yılına kadar oracle database'i üzerine yazılmış olan kimi uygulamalara software support hizmeti, sonrasında ise oracle veritabanı yöneticiliği olmak üzere yaklaşık 12 yıldır sektör içerisindeyim. Oracle' ın hemen hemen tüm ürünlerinin kurulumu, konfigurasyonu, yönetimi konusundaki çalışmalarıma özel bir bankada oracle dba olarak devam etmekteyim. Aynı zamanda kimi bilişim sitelerinde yazarlık yapıyorum, bunun yanısıra bu alandaki deneyim ve tecrübelerimi daha fazla kullanıcıyla paylaşabilmek adına bir de oracle blog yazarıyım.

İlginizi Çekebilir

SQL Server ile Veri Şifreleme

Bilgi teknolojilerinde verinin güvenliği çok kritik bir öneme sahiptir. Önemli verileri korumak için ekstra bir …

Bir Cevap Yazın