DBA가 되고 싶은 병아리
관리 시 유용한 기본 파라메터 본문
DB_BLOCK_SIZE
Property | Description |
파라메터 값 | Integer |
기본 값 | 8192 |
변경 가능여부 | 불가 |
값의 길이 | 2048~32768 바이트로 os설정에 맞추어서 사용하게 됩니다. |
기본설정여부 | 데이터베이스를 만들려면 최소한의 설정 값입니다. |
RAC | 반드시 한 개 이상의 인스턴스를 기동할 때 동일한 값으로 넣어야 합니다. |
주의: 위의 설정 값은 데이터베이스를 만들 때 사용되는 값입니다. 절대로 변경 해서는 안됩니다.
DB_BLOCK_SIZE는 오라클 데이터베이스의 최소한의 크기(BYTE)입니다. 일반적으로는 4096(4M)이나 8192(8M)로 설정하는 경우가 많습니다. 또한 물리적인 블록사이즈로 설정이 되므로 주의해야 할 사항입니다.
DB_BLOCK_SIZE는 데이터베이스를 만들 때 반드시 적용되는 초기화 설정 값입니다. 대체적으로 "INIT(SID).ORA"의 형식으로 작성이 됩니다.
RAC에서는 일반적인 최대 설정 값으로 FREELISTS 저장 설정 값으로 테이블과 인덱스에 적용이 됩니다. 오라클은 한 개의 블록에 대하여 FREELIST 그룹을 이용합니다. DSS나 DW의 환경에서는 더 큰 블록사이즈로 책정되는 경우도 있습니다.
-참고 FREELIST라는 것은?
오라클이 FREE BLOCK을 관리하는 방식으로 TABLESPACE의 속성에 따라 크게 두 가지가 존재합니다. 이 속성은 DBA_TABLESPACE.SEGMENT, SEGMENT_SPACE_MANAGEMENT 칼럼 값에 지정되어 있습니다.
1. MANUAL인 경우: Free List를 이용해 Free Block을 관리합니다.
2. AUTO인 경우: 각 블록의 상태를 담고 있는 Bitmap Block을 이용해 Free Block을 관리합니다.
http://download.oracle.com/docs/cd/B19306_01/server.102/b14257/aq_admin.htm#ADQUE0802
위의 주소는 FREELISTS에 관련된 주소입니다.
DB_CACHE_SIZE
Property | Description |
Parameter type | Big integer |
Syntax | DB_CACHE_SIZE = integer [K | M | G] |
Default value | 만일 SGA_TARGET을 지정하지 않는다면 기본 값은 0으로 지정됩니다. 사용자가 값을 보고서 최소값으로 설정하는 것이 좋습니다. 만일 SGA_TARGET이 설정되어 있지 않다면 4M~48MB사이로 cpu의 개수로 비례하여 가장 큰 크기로 정하는 것이 좋습니다. |
Modifiable | ALTER SYSTEM |
Basic | No |
DB_CACHE_SIZE의 크기는 DEFAULT buffer pool㈜의 중심이 되는 블록사이즈 입니다. (DB_BLOCK_SIZE의 init 설정 값으로 설정됩니다.)
설정 값은 최소한 4M * CPU의 개수 * 기본적인 크기(가장 작은 값이 자동적으로 지정됨)로 구성 됩니다. 사용자가 값을 직접 지정할 경우 그 값에 가장 가까운 값으로 지정이 됩니다. 만일 0으로 지정 할 경우 기본 메모리 크기 사이즈로 system tablespace에 저장이 됩니다.
buffer pool이란?
buffer들의 집합체입니다. Buffer Pool에 관련된 view에는 V$DB_CACHE_ADVICE에서 Tuning을 하여 좀더 낳은 DB를 구성 할수 있습니다.
Property | Description |
Parameter type | Big integer |
Syntax | DB_KEEP_CACHE_SIZE = integer [K | M | G] |
Default value | 0 (DB_KEEP_CACHE_SIZE를 설정하지 않을경우) |
Modifiable | ALTER SYSTEM |
Range of values | 최소값 : 0 (값이 최소값보다 더 커질 경우 4MB * number of CPUs * granule size의 계산식에 따라서 최적화됩니다. 사용자가 지정한 값보다 더 크게 지정될 수도 있습니다.) |
Basic | No |
DB_KEEP_CACHE_SIZE는 KEEP buffer pool에 의해서 크기가 지정이 됩니다. 블록사이즈의 크기에 비례해서 책정이 되는 경우가 많습니다.
Property | Description |
Parameter type | Big integer |
Syntax | DB_RECYCLE_CACHE_SIZE = integer [K | M | G] |
Modifiable | 0 (DB_RECYCLE_CACHE_SIZE 를 설정하지 않을 경우) |
Range of values | 최소값 : 0(값이 최소값보다 더 커질 경우 4MB * number of CPUs * granule size의 계산식에 따라서 최적화됩니다. 사용자가 지정한 값보다 더 크게 지정될 수도 있습니다.) |
Basic | No |
DB_RECYCLE_CACHE_SIZE의 크기는 RECYCLE buffer pool의 크기입니다. 블록사이즈의 크기에 비례해서 책정이 되는 경우가 많습니다.
Property | Description |
Parameter type | Integer |
Default value | 1이나 CPU_COUNT/8의 값으로 지정하거나 더 크게 지정됨 |
Modifiable | No |
Range of values | 1~20 |
Basic | No |
DB_WRITER_PROCESSES는 시스템에서 가장 많이 사용됩니다. 이 파일 역시 init파일에서 지정이 가능하고 instance가 수행 되면서 수정 불가능해집니다.
Property | Description |
Parameter type | Integer |
Default value | 0 |
Modifiable | No |
Range of values | 0부터 OS에서 지정하는 값 |
Basic | No |
I/O서버 프로세스는 데이터베이스 환경에서는 큰 I/O를 사용하기 때문에 필요할 때만 적용하여 사용하는 것이 좋습니다.
Property | Description |
Parameter type | Big integer |
Syntax | JAVA_POOL_SIZE = integer [K | M | G] |
Default value | 만일SGA_TARGET을 파라메터 값에 명시 하지 않으면 기본적으로 0으로 오라클 내부적으로 설정됩니다. 사용자가 값을 명시할 경우 명시한 값이 최소값으로 잡혀 메모리를 형성 합니다. 만일SGA_TARGET을 설정하지 않는다면 시스템 환경에 맞게 24MB에서 가까운 값으로 자동 세팅이됩니다. |
Modifiable | ALTER SYSTEM |
Range of values | 최소값 : 0 (최대한 0에 가까운 값으로 조정이 됩니다.) 최대값: OS환경에 맞게 세팅합니다. |
Basic | No |
Property | Description |
Parameter type | Big integer |
Syntax | LARGE_POOL_SIZE = integer [K | M | G] |
Default value | SGA_TARGET이 설정 되더라도LARGE_POOL_SIZE는 값이 설정되지 않아 기본 값인 0으로 오라클 내부적으로 정의를 하게 됩니다. LARGE_POOL_SIZE는 사용자가 최소값으로 메모리를 정의 할 수가 있습니다.
만일SGA_TARGET이 정의되지 않아 두 개의 값이 0으로 지정되어 있다면. -병렬처리가 불가능 해집니다. - DBWR_IO_SLAVES의 세팅이 불가능 해집니다. 사용이 불가능한 값은PARALLEL_MAX_SERVERS, PARALLEL_THREADS_PER_CPU, CLUSTER_DATABASE_INSTANCES, DISPATCHERS, and DBWR_IO_SLAVES이 있습니다. 만일 ASM기능을 사용할 수 없게 될 가능성도 있습니다. 일반적으로는 600K 의 사이즈를 SGA에 추가해서 ASM을 사용하는 DB를 생성하게 됩니다. |
Modifiable | ALTER SYSTEM |
Range of values | 최소 300K~최대2GB(최대 값은 OS시스템에 따라 변경 가능) |
Basic | No |
설정 값은 숫자로 정의 할 수 있고 Kbyte나 Mbyte로 설정하게 됩니다.
Property | Description |
Parameter type | Integer |
Default value | 512 KB or 128 KB * CPU_COUNT, 혹은 그보다 큰 값 |
Modifiable | No |
Range of values | OS 환경에 따름 |
Basic | No |
Property | Description |
Parameter type | Boolean |
Default value | false |
Modifiable | No |
Range of values | true | false |
추가로 자동 튜닝에 관련되어서는PARALLEL_ADAPTIVE_MULTI_USER에서 자세히 일아볼수가 있습니다.
Property | Description |
Parameter type | Big integer |
Syntax | PGA_AGGREGATE_TARGET = integer [K | M | G] |
Default value | 10 MB 혹은 SGA크기의 20%정도로 설정하거나 더 크게 설정합니다. |
Modifiable | ALTER SYSTEM |
Range of values | 최소 10MB에서 최대 4096GB - 1로 설정합니다. |
Basic | Yes |
PGA_AGGREGATE_TARGET의 값은 PGA 메모리에 포함되어 모든 서버 프로세스에 포함되는 설정 값이다.
Property | Description |
Parameter type | Big integer |
Syntax | SGA_MAX_SIZE = integer [K | M | G] |
Default value | SGA는 인스턴스 기동 시 사용되는 기본 설정크기이며 다른 Pool의 크기에 따릅니다. 예를 들자면buffer cache, shared pool, large pool 등의 설정이 있습니다. |
Modifiable | No |
Range of values | 0 혹은 시스템 사양에 따릅니다. |
SGA_MAX_SIZE는 SGA의 최대 크기로 인스턴스의 최대 사용시간을 나타냅니다.
Property | Description |
Parameter type | Big integer |
Syntax | SGA_TARGET = integer [K | M | G] |
Default value | 0(SGA autotuning 기능을 사용할 경우는 disabled) |
Modifiable | ALTER SYSTEM |
Range of values | 최소 64에서 시스템 사양에 따릅니다. |
Basic | Yes |
SGA_TARGET의 크기는 SGA를 구성하는 전체 크기입니다. SGA_TARGET는 다음 메모리의 크기를 자동으로 설정합니다.
- Buffer cache (DB_CACHE_SIZE)
- Shared pool (SHARED_POOL_SIZE)
- Large pool (LARGE_POOL_SIZE)
- Java pool (JAVA_POOL_SIZE)
- Streams pool (STREAMS_POOL_SIZE)
pools의 크기 설정을 수동으로 구성하게 되면 ASM Management에서의 다음 값이 무효화됩니다.
메모리의 할당은 이러한 pools의 전체 크기인SGA_TARGET로 ASM Management에서 자동적으로 설정을 합니다.
Property | Description |
Parameter type | Big integer |
Syntax | SHARED_POOL_RESERVED_SIZE = integer [K | M | G] |
Default value | SHARED_POOL_SIZE의5%에 해당되는 크기 |
Modifiable | No |
Range of values | 최대 5000에서SHARED_POOL_SIZE크기의 절반에 해당 |
SHARED_POOL_RESERVED_SIZE의 크기는 shared pool 메모리의 공간에 비례해서 크기가 정해집니다.
이 설정 값은 shared pool의 조각화로 사용되지 않는 pool의 성능저하를 피하기 위해서 매개변수를 사용할 수 있습니다.
Property | Description |
Parameter type | Big integer |
Syntax | SHARED_POOL_SIZE = integer [K | M | G] |
Default value | SGA_TARGET의 설정을 하지 않는다면 기본 값으로 0으로 오라클 내부적으로 지정됩니다. 사용자가 수정이 가능하고 수정한 값에 대해서 최소값으로 지정됩니다.
SGA_TARGET가 32비트 platform에 되면 32M, 그에 가까운 값으로 설정됩니다.
SGA_TARGET가 64비트 platform에 되면 84M, 그에 가까운 값으로 설정됩니다.
이것에 대해서는 데이터베이스 인스턴스는 ASM을 사용합니다. 관련내용은"SHARED_POOL_SIZE and Automatic Storage Management"를 참고하면 됩니다. |
Modifiable | ALTER SYSTEM |
Range of values | 최소값은 최소 크기에서 최대크기는 OS설정 값에 따른다. |
V$SGASTAT view에서 shared pool를 이용해서 모니터링이 가능하다.
- Oracle Database Performance Tuning Guide for more information on setting this parameter
- Oracle Database Upgrade Guide for information on parallel execution message buffers
- "PARALLEL_AUTOMATIC_TUNING" and "V$SGASTAT"
SHARED_POOL_SIZE and Automatic Storage Management
ASM을 사용하는 데이터베이스 인스턴스일 때 메모리가 추가되면extent maps에 포함 되게 된다. 일반적으로는 ASM의 크기는 데이터베이스의storage size에 비례해서 크기가 이미 정해져 있거나 ASM에 의해서 저장이 된다. redundancy type을 사용되는(혹은 사용될 예정) shared_pool_size의 계산된 크기로 사용됩니다.
SELECT SUM(BYTES)/(1024*1024*1024) FROM V$DATAFILE;
SELECT SUM(BYTES)/(1024*1024*1024) FROM V$LOGFILE a, V$LOG b
WHERE a.group#=b.group#;
SELECT SUM(BYTES)/(1024*1024*1024) FROM V$TEMPFILE WHERE
status='ONLINE';
추가적으로 기본설정은 다음을 따르도록 한다.
- 디스크 그룹의external redundancy를 사용할 경우
100G 크기의 공간에 1M의 여분의 shared pool +2M
- 디스크 그룹의normal redundancy를 사용할 경우
50 G 크기의 공간에 1M의 여분의 shared pool +4M
- 디스크 그룹의high redundancy를 사용할 경우
33 G 크기의 공간에 1M의 여분의 shared pool +6M
WORKAREA_SIZE_POLICY
Property | Description |
Parameter type | String |
Syntax | WORKAREA_SIZE_POLICY = { AUTO | MANUAL } |
Default value | AUTO |
Modifiable | ALTER SESSION, ALTER SYSTEM |
WORKAREA_SIZE_POLICY는work areas의 크기를 따릅니다. 설정 값의 조정은work areas를 맞출 때 가능 합니다.
설정 값에 대한 설명
-AUTO
Work areas를 사용 할 때에는memory-intensive operators의 크기가 자동으로 조정되며 기본적으로 PGA 메모리는 시스템에 의존해서 사용된다. target PGA 메모리의 설정은PGA_AGGREGATE_TARGET에서 확인이 가능하다.
-MANUAL
work areas의 크기가MANUAL으로 설정되면 값의 기반이 *_AREA_SIZE의 설정에 대응하는 시행하게 된다. 기본적으로MANUAL로PGA memory utilization와 sub-optimal의 결과적으로 두 개의 프로그램이 기동하는 효과가 나온다.
'Oracle Study > Admin I' 카테고리의 다른 글
Direct NFS (0) | 2015.06.14 |
---|---|
ASM, DB 자동/수동 구성 (0) | 2012.03.29 |
SQL Dictionary의 정리 (0) | 2012.03.29 |
테이블 용량 조사하는 쿼리 예시 (0) | 2012.02.03 |
대기 이벤트인 10046 진단이벤트 (0) | 2012.02.03 |