Oracle 11g versiyonundan itibaren otomatik bellek yönetimi özelliği MEMORY_TARGET ve MEMORY_MAX_TARGET parametrelerince tanımlanmaktadır. Otomatik bellek yönetimi(AMM) hem SGA hemde PGA’yı yönetir. MEMORY_TARGET için bir değer girilir ve bellek tahsisi için maksimum olarak MEMORY_MAX_MEMORY parametresi sınırına kadar genişleyebilir. MEMORY_TARGET değeri ayarlandığı zaman Oracle, SGA_TARGET ve PGA_AGGREGATE_TARGET içinde optimal işyüküne uygun değerler tanımlar. Oracle, SGA_TARGET ve PGA_AGGREGATE_TARGET değerini otomatik olarak kontrol ettiğinden, manuel olarak bu değerlerinin üstünde bir değer atanmasına gerek yoktur.
Linux tabanlı sistemlerde paylaşımlı bellek dosya sistemi /dev/shm üzerinde mount edilmelidir. MEMORY_MAX_TARGET değeri /dev/shm üzerinde mount edilen paylaşımlı bellekten daha az olmalıdır. Bu sebeple paylaşımlı bellek dosya sisteminin AMM’nin çalışması için yeterli büyüklükte olduğundan emin olunması gerekir.
Linux tabanlı sistemlerde paylaşımlı bellek dosya sistemini mount etmek için önce root hesabıyla oturum açılır.
Aşağıdaki örnekte, Linux sistemde 4,5GB bir paylaşımlı bellek dosya sistemi mount edilmektedir .
# umount tmpfs
# mount -t tmpfs shmfs -o size=4500m /dev/shm
# mount -t tmpfs shmfs -o size=4500m /dev/shm
Bu paylaşımlı bellek dosya sisteminin her açılışta kalıcı olarak aktif olması için /etc/fstab dosyasına aşağıdaki giriş eklenir.
shmfs /dev/shm tmpfs size=4500m 0
ORA-00845 hatası genellikle MEMORY_MAX_TARGET değerinin, /dev/shm için tahsis edilen bellek toplamına eşit veya daha fazla olması durumunda meydana gelmektedir. Böyle durumda /dev/shm nin mount edildiğinden ve AMM nin çalışması için yeterli belleği bulundurduğundan emin olmak gerekmektedir. Ayrıca, MEMORY_MAX_TARGET ve MEMORY_TARGET parametrelerinde tanımlanan değerlerin /dev/shm üzerinde mount edilen miktardan az olduğundan emin olunması gerekir.
Teşekkürler hocam bilgi için.
YanıtlaSil