Як збільшити пам’ять, що виділяється для Oracle 10g або 11g при збільшенні RAM на сервері (для Windows)
| ENG : | Як зростатиме ця пам'ять, що знаходиться на Oracle 10g і 11g з збільшенням RAM на сервері (для Windows)? |
ПИТАННЯ :
Як збільшити пам'ять, що виділяється для Oracle 10g і 11g при збільшенні RAM на сервері (для Windows)?
ВІДПОВІДЬ :
(Для випадку використання автоматичного керування пам'яттю, ручне керування тут не розглядається).
У Oracle 10g і 11g автоматичне керування пам'яттю, яке використовується за замовчуванням, працює по-різному. У розрахунках, наведених у цій статті, це враховується.
1) (Для Oracle 10g та 11g) Визначити скільки необхідно пам'яті під PGA на існуючому екземплярі.
Для цього необхідно виконати запит під sys.
SELECT ROUND (PGA_TARGET_FOR_ESTIMATE / 1024 / 1024) target_mb, PGA_TARGET_FACTOR, ESTD_PGA_CACHE_HIT_PERCENTAGE cache_hit_perc, ESTD_OVERALLOC_TAX <12
Рядок де PGA_TARGET_FACTOR = 1 - це поточний розмір SGA - TARGET (MB) = 100Мб. Потрібно щоб ESTD_OVERALLOC_COUNT дорівнював 0 або прагнув до 0, а CACHE_HIT_PERC дорівнював 100 або прагнув до 100. У даному прикладі видно що можна навіть зменшити розмір SGA до 50Мб. Припустимо, що ми залишаємо PGA=100Мб.
2) (Для Oracle 10g та 11g). Визначити, скільки пам'яті в ОС ми можемо використовувати під екземпляр Oracle.
Крім Oracle на сервер працюють інші процеси і вони також споживають пам'ять сервера. Тому потрібно визначити, скільки пам'яті споживається на сервері без участі Oracle. Для цього можна на сервері, що працює, зупинити екземпляр Oracle і подивитися споживання пам'яті в диспетчері завдань.

Для наведеного прикладу: На сервері 16Гб пам'яті RAM, використовується 7,73Гб, доступно 8424Мб. Тобто. можна використовувати 8424Мб. Але в процесів, які в даний момент запущені на сервері, може збільшитися споживання пам'яті, тоді сервер інтенсивно використовуватиме файл підкачки, що різко знизить продуктивність, що для сервера неприпустимо. Тому необхідно залишити запас вільної пам'яті від 10% і вище. Припустимо, що ми залишаємо 25% запасу вільної пам'яті. Тоді у нас залишається 8424-(8424*25/100)=6318Мб.
3) Встановлення розмірів областей пам'яті для Oracle
3.1) Встановлення розмірів областей пам'яті для Oracle 10g (використовується ASMM)
3.2) Встановлення розмірів областей пам'яті для Oracle 11g (використовується AMM)
У Oracle 11g з AMM у пам'яті виділяється одна область під усі області, PGA також входить у цю одну загальну область, тому можна використовувати всю обчисленувільну пам'ять 6318Мб (PGA віднімати не потрібно). Для зручності округлим 6318Мб до 6Гб.
Для встановлення параметрів потрібно виконати в sqlpus під sys команди: