$ sqlplus /nolog
SQL> connect / as sysdba
ERROR:
ORA-03113: end-of-file on communication channel
Bu gibi sorunları çözmek için geçersiz Oracle prosesleri tarafından kilitlenmiş veya bloklanmış paylaşımlı bellek ve semaforları kontrol edebilirsiniz. Ancak bundan önce UNIX mimarisinde paylaşımlı bellek segmentlerinin ve semaforların ne olduğunu kısaca anlamak gerekiyor.
Paylaşımlı bellek segmentleri
Paylaşımlı bellek prosesleri paylaşımlı bellek segmentlerine yerleştirerek onların genel yapılara ve verilere erişmesi için izin verir. Prosesler arasından veri geçerken kernel karışması olmamasından itibaren en uygun Interprocess Communication(IPC) uyum şeklidir. Aslında verinin prosesler arasında kopyalanmasına gerek yoktur.
Oracle prosesler tarafından paylaşılan bellek alanı olan SGA nın paylaşımlı bellek segmentlerini kullanır.Oracle. SGA’nın veritabanı önbelleğini ve daha fazlasını tuttuğu andan itibaren SGA büyüklüğünün Oracle performansında anlamlı bir etkisi vardır.
Tüm paylaşımlı bellek ayarlarını görmek için alttakini çalıştırın;
$ ipcs -lm
—— Shared Memory Limits ——–
max number of segments = 4096
max seg size (kbytes) = 4194303
max total shared memory (kbytes) = 8388608
min seg size (bytes) = 1
Paylaşımlı bellek segmentinin maksimum değeri SHMMAX parametresi tarafından karar verilir.
ipcs -m komutu paylaşımlı bellek segmentlerini, bu segmentlerin büyüklüğünü ve hangi kullanıcıların bu segmentlerin sahibi olduğu bilgisini verir.
$ ipcs -m
—— Shared Memory Segments ——–
key shmid owner perms bytes nattch status
0x0001ffb8 0 root 666 76 3
0×00025990 32769 root 666 8308 3
0x00027cb9 65538 root 666 132256 1
0x00027cba 98307 root 666 132256 1
0xf771930c 1277956 oracle01 660 2166358016 144
Semaforlar
ipcs –ls komutunu kullanarak semafor ayarlarını görebiliriz.
$ ipcs -ls
—— Semaphore Limits ——–
max number of arrays = 1100
max semaphores per array = 1100
max semaphores system wide = 32000
max ops per semop call = 100
semaphore max value = 32767
SEMMSL parametresi semaforların maksimum büyüklüğünü belirler. Alttaki komutu kullanarak farklı proseslere atanan çeşitli semaforları görebiliriz.
$ ipcs -s
—— Semaphore Arrays ——–
key semid owner perms nsems
0×00000000 393216 root 666 1
0×00000000 425985 root 666 1
0×00000000 458754 root 666 1
0×00000000 491523 root 666 1
0x0001ffb8 524292 root 666 1
0x000251c0 557061 root 666 1
0x000255a8 589830 root 666 1
0×00025990 622599 root 666 1
0x000278d1 655368 root 666 1
0x00027cb9 688137 root 666 1
0x000278d2 720906 root 666 1
0x00027cba 753675 root 666 1
0x26e55b68 3244044 oracle01 660 1004
Aynı zamanda Oracle’da yararlı olan sysrev kullanılarak Oracle proseslerine atanan semaforları ve paylaşımlı bellek segmentlerini görebiliriz.
$ sysresv
IPC Resources for ORACLE_SID “tkr12r3m2″ :
Shared Memory:
ID KEY
1277956 0xf771930c
Semaphores:
ID KEY
3244044 0x26e55b68
Oracle Instance alive for sid “tkr12r3m2″
ipcrm -m <Shared Memory ID (shmid)>
ipcrm -s <Semaphore ID (semid)>
0 yorum:
Yorum Gönder