기존에 존재하는 서버램이 8GB 였는데 이번에는 서버에 8GB 를 추가로 달면서 16GB 램으로 변경 되었습니다.
하지만 오라클은 8GB 때 깔아놓은 것이라 기본적으로 50% 인 4GB램 으로 세팅 해놓은 상황이라 이번에는 8GB로 할당 하려 합니다.
SGA 설정을 통해 기존에 4GB로 할당해놧던 램을 8GB로 변경하는 명령어 입니다. (오라클 11G는 자동할당 메모리를 사용하기에 SGA_MAX_TARGET, SGA_TARGET 등을 수정할 필요 없이 alter system set memory_max_target=메모리양 scope=spfile; 명령어를 통해 간편하게 수정 하도록 하겠습니다.
sqlplus "/as sysdba"
SQL> show parameter memory;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 3872M
memory_target big integer 3872M
shared_memory_address integer 0
위와같이 show parameter memory; 를 통해 조회시 3872MB 메모리가 잡혀있는것을 확인 하실수 있습니다.
이것을 8192MB 로 바꿔보겠습니다. (8GB)
SQL> alter system set memory_max_target=8192M scope=spfile;
시스템이 변경되었습니다.
SQL> shutdown immediate;
ALTER SYSTEM 명령어 뒤에 scope에 대하여
memory : 변경이 현재 상태에만 영향영향을 미침(1회성) db가 restartup 되면, 이전 값으로 돌아감
spfile : 변경 내용을 spfile에만 저장하고 현재 상태에는 영향을 미치지 않게 합니다. Static Parameter의 경우는 이 scope만 지정 가능 합니다. Restart없이 반영하는 것은 불가능
both : 변경 내용을 현재 상태에도 바로 반영하고, spfile에도 반영시켜, 이후 rebooting 시에도 영향을 미치도록 합니다.
shutdown immediate; 입력 후 시작 -> 검색 -> service 를 입력 합니다.
서비스 클릭 후 OracleService 로 시작하는 서비스 오른쪽 클릭 후 중지
중지가 완료 되면 시작 을 눌러 다시 실행중 으로 변경 합니다.
SQL> show PARAMETERs memory ;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 8G
memory_target big integer 3872M
shared_memory_address integer 0
SQL> show sga ;
Total System Global Area 8551575552 bytes
Fixed Size 2192864 bytes
Variable Size 7063210528 bytes
Database Buffers 1476395008 bytes
Redo Buffers 9777152 bytes
두개 명령어로 조회를 해보면 최대 메모리가 8GB 로 할당 된것을 볼수 있습니다.