ORAPLUS xin chào các bạn!
Bài viết này tôi sẽ trình bày với các bạn về một số phương pháp quản lý vùng Memory trong oracle database phiên bản 11g.
Như chúng ta đã biết trong thành phần kiến trúc của oracle database 11g, trong memory bao gồm hai thành phần chính đó là SGA và PGA. Trong bài này tôi sẽ không trình bày khái niệm về SGA và PGA, mà tôi sẽ trình bày làm thế nào để kết hợp và quản lý chúng một cách hiệu quả nhất cho từng hệ thống.
Nhìn vào hình bên trên chúng ta có thể thấy được, sẽ có 5 cách quản lý vùng memory trong oracle database 11g. Sau đây chúng ta sẽ đi vào từng phương pháp một:
Nhìn vào hình bên trên chúng ta có thể thấy được, sẽ có 5 cách quản lý vùng memory trong oracle database 11g. Sau đây chúng ta sẽ đi vào từng phương pháp một:
1. Automatic Memory Management
- Khi sử dụng chế độ AMM để quản lý memory thì oracle sẽ tự động quản lý phân bổ vùng bộ nhớ SGA và PGA trong từng tình huống sao cho phù hợp.
- Đây cũng là một trong những chế độ được Oracle khuyến cáo dùng, vì khi này người làm DBA sẽ ít phải can thiệp vào việc điều chỉnh hai vùng memory này.
- Như trên hình chúng ta có thể quan sát thấy được nếu như khoảng thời gian hoạt động của database chuyển từ "ONLINE USERS" sang việc chạy các "BATCH JOBS" thì Oracle sẽ tự điều chỉnh các vùng nhớ giữa Buffer cache (Online users) và Large Pool (Batch jobs - RMAN là một ví dụ)
2. Automatic Shared Memory Management (SGA) & Automatic PGA Management
- Trường hợp này chế độ Automatic Memory Management sẽ tắt và hệ thống sẽ chuyển qua sử dụng chế độ Share Memory Management của SGA.
- Lúc này database sẽ tự động tối ưu các thành phần trong SGA dựa trên giá trị SGA target size (SGA_TARGET != 0), đồng thời chúng ta cũng set một giá trị khác 0 cho tham số SGA_MAX_SIZE.
- Khi Automatic PGA Management được bật, database sẽ tự động tối ưu các thành phần trong PGA dựa trên PGA target. Như vậy chúng ta sẽ phải set một giá trị khác 0 cho tham số PGA target size (PGA_AGGREGATE_TARGET !=0).
3. Automatic Shared Memory Management (SGA) & Manual PGA Management
- Khi chế độ Automatic Memory Management tắt và hệ thống sẽ chuyển qua sử dụng chế độ Share Memory Management của SGA.
- Lúc này database sẽ tự động tối ưu các thành phần trong SGA dựa trên giá trị SGA target size (SGA_TARGET != 0), đồng thời chúng ta cũng set một giá trị khác 0 cho tham số SGA_MAX_SIZE.
- Với chế độ Manual PGA Management chúng ta sẽ phải thiết lập các thành phần con bên trong của PGA như SORT_AREA_SIZE, HASH_AREA_SIZE, BITMAP_MERGE_AREA_SIZE...
4. Manual Shared Memory Management (SGA) & Automatic PGA Management
- Đối với trường hợp chúng ta phải cấu hình Manual Shared Memory Management cho SGA, thì chúng ta cần phải thực hiện cấu hình thủ công các thành phần con trong SGA như:
- Shared pool size (SHARED_POOL_SIZE)
- Buffer cache size (DB_CACHE_SIZE)
- Large pool size (LARGE_POOL_SIZE)
- Java pool size (JAVA_POOL_SIZE)
- Streams pool size (STREAMS_POOL_SIZE)
- Khi Automatic PGA Management được bật, database sẽ tự động tối ưu các thành phần trong PGA dựa trên PGA target. Như vậy chúng ta sẽ phải set một giá trị khác 0 cho tham số PGA target size (PGA_AGGREGATE_TARGET !=0).
5. Manual Shared Memory Management (SGA) & Manual PGA Management
- Đây là trường hợp chúng ta cần phải cấu hình thủ công toàn bộ các thành phần con trong hai bộ nhớ SGA và PGA.
- Đối với SGA chúng ta cần set các tham số sau:
- Shared pool size (SHARED_POOL_SIZE)
- Buffer cache size (DB_CACHE_SIZE)
- Large pool size (LARGE_POOL_SIZE)
- Java pool size (JAVA_POOL_SIZE)
- Streams pool size (STREAMS_POOL_SIZE)
- SORT_AREA_SIZE
- HASH_AREA_SIZE
- BITMAP_MERGE_AREA_SIZE
Bảng tổng quan về các phương pháp quản lý memory trong oracle 11g:
==> Như vậy tôi đã trình bày về 5 phương pháp cấu hình để quản lý Memory trong oracle database 11g. Tùy từng bài toán cụ thể mà mỗi chúng ta có thể lựa chọn để cấu hình cho các hệ thống của mình. Nếu như các bạn không chắc chắn có thể sử dụng tính năng Automatic Memory Management như Oracle đã khuyến cáo để hệ thống có thể tự phân bổ SGA và PGA cũng như các thành phần con trong hai vùng bộ nhớ này.
Để biết được giá trị các tham số trong mỗi chế độ cấu hình memory của Oracle chúng ta có thể sử dụng:
- Cú pháp: SQL> show parameter parameter_name
Xem tham số cấu hình Memory:
SQL> show parameter MEMORY_TARGET
SQL> show parameter MEMORY_MAX_TARGET
Xem tham số cấu hình SGA:
SQL> show parameter SGA_TARGET
SQL> show parameter SGA_MAX_SIZE
SQL> show parameter PGA_AGGREGATE_TARGET
SQL> show parameter SHARED_POOL_SIZE
SQL> show parameter DB_CACHE_SIZE
SQL> show parameter LARGE_POOL_SIZE
SQL> show parameter JAVA_POOL_SIZE
SQL> show parameter STREAMS_POOL_SIZE
Xem tham số cấu hình PGA:
SQL> show parameter SORT_AREA_SIZE
SQL> show parameter HASH_AREA_SIZE
SQL> show parameter BITMAP_MERGE_AREA_SIZE
- Query trong một số view
V$SGASTAT, V$SGAINFO, V$PGASTAT