by 구루비 SGA_MAX_SIZE GRANULE ALTER SYSTEM [2006.04.10]
SGA_MAX_SIZE는 SGA 전체의 최대 크기를 설정하며, SGA관련 파라미터들은 SGA_MAX_SIZE 한도 내에서 파라미터의 크기를 변경할 수 있습니다.
SGA_MAX_SIZE는 동적으로 변경이 불가능하며, 변경을 하려면 spfile일 경우 아래와 같이 수정 후 오라클을 재 구동하여야 합니다. pfile일 경우에는 파라미터 파일 수정후 오라클을 재 구동하면 됩니다.
SQL> ALTER SYSTEM SET SGA_MAX_SIZE = 1024m SCOPE=spfile;
Oracle 9i 이후부터는 DBA가 ALTER SYSTEM 명령을 이용해서 SGA 파라미터의 크기를 동적으로 변경할 수 있게 되었습니다. 이 특정을 ’Dynamic SGA’라고 합니다.
데이터베이스를 shutdown/startup 없이 작업이 가능 합니다.
Oracle 10g에서 Dynamic SGA를 사용할 수 있는 SGA 관련 파라미터는 DB_CACHE_SIZE, SHARED_POOL_SIZE, LARGE_POOL_SIZE, JAVA_POOL_SIZE등이 있습니다.
SGA 파라미터의 크기를 늘려주기 위해서는 필요한 만큼의 Free Granule이 존재해야만 하며, 현재 사용하고 있는 SGA의 크기가 SGA_MAX_SIZE보다 작아야 합니다.
아래는 DB_CACHE_SIZE를 동적으로 변경하는 예제 입니다.
SQL> ALTER SYSTEM SET DB_CACHE_SIZE=256M SCOPE=BOTH;
① memory : 변경이 현재 상태에만 영향을 미치며, db가 restartup 되면, 변경 이전 값으로 돌아 갑니다.
② spfile : 변경 내용을 spfile에만 저장하고 현재 상태에는 영향을 미치지 않게 합니다. Static Parameter의 경우는 이 scope만 지정 가능 합니다. 즉, spfile을 사용하더라도 Static Parameter에 대해서는 DB운영중에 바로 값을 변경하여 Restart없이 반영하는 것은 불가능 합니다.
③ both : 변경 내용을 현재 상태에도 바로 반영하고, spfile에도 반영시켜, 이후 rebooting 시에도 영향을 미치도록 합니다.
- Granule은 가상 메모리 상의 연속된 공간으로, dynamic SGA 모델에서 할당할 수 있는 최소 단위 입니다.
- 이 Granule의 크기는 SGA 전체의 추정 값 (SGA_MAX_SIZE)에 따라 다음과 같이 구분 됩니다.
if estimated SGA size is < 1G 4MB else 16MB
- Dynamic SGA를 사용할 수 있는 SGA관련 파라미터는 이 Granule 단위로 늘어나거나 줄어들 수 있습니다
ORACLE instance start 시점에 SGA 정보가 출력이 됩니다. 이때 출력되는 SGA 정보는 SQL*Plus에서 SHOW SGA 명령어로도 볼 수 있습니다. 각각의 Size가 무엇을 의미하는지 간단하게 알아 보겠습니다.
SQL> SHOW SGA;
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145750508 bytes
Database Buffers 25165824 bytes
Redo Buffers 262144 bytes
- SGA를 구성하는 영역 크기의 합계로 SGA_MAX_SIZE 파라미터로부터 영향을 받습니다.
- 데이터베이스나 인스턴스의 상태를 저장하는 영역으로, 백그라운드 프로세스가 액세스 하는 영역 입니다.
- 사용자 데이터는 저장되지 않고, 일반적으로 100k 미만의 영역을 차지함
- 이 영역의 크기는 SHARED_POOL_SIZE, LARGE_POOL_SIZE, JAVA_POOL_SIZE 파라미터로부터 영향을 받습니다.
- 데이터파일로 부터 읽어 들인 데이터 블록 내용을 저장하는 영역으로 DB_CACHE_SIZE 파라미터로부터 영향을 받습니다.
- 데이터베이스에 가해진 모든 변경 사항에 대한 내역을 저장하는 Redo Log Buffer의 크기로 LOG_BUFFER 파라미터로부터 영향을 받습니다.
- 강좌 URL : http://www.gurubee.net/lecture/1885
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.