Cấu trúc cơ bản của memory trong Oracle Database bao gồm:
System global area (SGA): SGA là một nhóm chia sẽ cấu trúc memory, chứa thông tin dữ liệu và thông tin điều khiển cho một Oracle Database instance. SGA được chia sẽ bởi tất cả server process và background process. Ví dụ dữ liệu được chứa trong SGA bao gồm data block được cached và shared SQL areas.
Program global area (PGA) là một vùng bộ nhớ chưa dữ liệu và thông tin điều khiển được sử dụng cho Oracle process. PGA được tạo bởi Oracle database khi tiến trình Oracle được bắt đầu. PGA tồn tại cho mỗi server process và background process. Tập hợp các PGAs riêng lẻ là instance PGA.Thông số database khởi tạo thiết lập kích thước cho instance PGA, không phải từng PGA riêng lẻ.
User Global Area: là memory liên kết với phiên làm việc của user.
Database Oracle quản lý bộ nhớ dựa trên các thiết lập của các tham số khởi tạo liên quan đến memory. Các tùy chọn cơ bản để quản lý bộ như sau:
Quản lý bộ nhớ tự động(AMM): Chỉ định target size cho instance memory. Database instance tự động điều chỉnh phân phối lại bộ nhớ khi cần giữa SGA và PGA trong từng tình huống sao cho phù hợp.
Quản lý bộ nhớ chia sẽ tự động(ASMM): Chế độ quản lý này được tự động hoá một phần. Người quản trị đặt kích thước cho SGA và sau đó thiết lập kích aggragate target size cho PGA hoặc quản lý vùng làm việc PGA riêng lẻ. Lúc này database sẽ tự động tối ưu các thành phần bên trong SGA và SGA dựa trên giá trị sga đã thiết lập. Lúc này
Quản lý bộ nhớ thủ công: Thay vì thiết lập tổng dung lượng bộ nhớ, người quản trị đặt nhiều tham số khởi tạo để quản lý các thành phần của SGA và cá thể PGA riêng lẻ.
2. Thay đổi bộ nhớ memory target
Từ phiên bản 11g trở đi, hệ thống cho phép cấp pháp memory target là tổng dung lượng sử dụng của PGA và SGA.
Kiểm tra dung lượng memory target
SQL> show parameter memory;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
inmemory_clause_default string
inmemory_force string DEFAULT
inmemory_max_populate_servers integer 0
inmemory_query string ENABLE
inmemory_size big integer 0
inmemory_trickle_repopulate_servers_ integer 1
percent
memory_max_target big integer 692M
memory_target big integer 692M
optimizer_inmemory_aware boolean TRUE
Thay đổi thông số memory_target
SQL> alter system set memory_target=600M;
System altered.
SQL> show parameter memory_target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_target big integer 600M
3.Thay đổi thông tin memory_max_target
SQL> show parameter memory_max_target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_max_target big integer 692M
SQL> alter system set memory_max_target=700M;
alter system set memory_max_target=700M
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
SQL> show parameter memory_max_target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_max_target big integer 692M
SQL> alter system set memory_max_target=700M scope=spfile;
System altered.
SQL> show parameter memory_max_target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_max_target big integer 692M
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.
Total System Global Area 734003200 bytes
Fixed Size 2928728 bytes
Variable Size 528486312 bytes
Database Buffers 197132288 bytes
Redo Buffers 5455872 bytes
Database mounted.
Database opened.
SQL> show parameter memory_max_target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_max_target big integer 700M
SQL>
Không có nhận xét nào:
Đăng nhận xét