DBA가 되고 싶은 병아리

관리 시 유용한 기본 파라메터 본문

Oracle Study/Admin I

관리 시 유용한 기본 파라메터

미스틱스 2012. 3. 29. 16:40

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를 구성 할수 있습니다.

 

DB_KEEP_CACHE_SIZE

 

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에 의해서 크기가 지정이 됩니다. 블록사이즈의 크기에 비례해서 책정이 되는 경우가 많습니다.

 

 

DB_RECYCLE_CACHE_SIZE

 

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의 크기입니다. 블록사이즈의 크기에 비례해서 책정이 되는 경우가 많습니다.

 

DB_WRITER_PROCESSES

 

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가 수행 되면서 수정 불가능해집니다.

 

DBWR_IO_SLAVES

 

Property

Description

Parameter type

Integer

Default value

0

Modifiable

No

Range of values

0부터 OS에서 지정하는 값

Basic

No

 

DBWR_IO_SLAVES는 시스템마다 단 한 개씩 존재(DBW0)합니다. 이 값에 대한 개수는 서버가 사용하는 I/O의 개수에 비례해서 DBW0존재하게 됩니다. 또한 DBW0는 오로지 서버프로세스에 의하여 디스크에 저장하는 것으로 지정됩니다. 기본적으로는 0이고 서버 프로세스에서는 사용하지 않습니다.

만일 DBWR_IO_SLAVES가 0이 아닌 경우에는 I/O서버 프로세스가 사용하고 있는 ARCH와 LGWR에 4로 설정이 되거나 비동기 I/O 서버 프로세스를 사용하는 Rman이 4로 설정되거나 사용하지 않는 것으로 변경 됩니다. (만일 사용하는 platform이 비동기 I/O를 지원하지 않는다면 false로 설정됩니다.

일반적으로는I/O서버 프로세스는 가상으로I/O서버 프로세스를 적용해보고 지원되지 않거나 효력이 없는 경우가 많습니다. 그러므로 I/O서버 프로세스는 가끔씩 사용하는 정도로만 시도를 합니다.

I/O서버 프로세스는 데이터베이스 환경에서는 큰 I/O를 사용하기 때문에 필요할 때만 적용하여 사용하는 것이 좋습니다.

 

JAVA_POOL_SIZE

 

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

 

JAVA_POOL_SIZE는JAVA_POOL의 환경변수 크기입니다. 따라서Java memory manager 에 따라서 대부분의 실행 시간을 따릅니다. 이 메모리는shared in-memory representation of Java method(공유 메모리 안에 자바 메소드의 설명)와class definitions(클래스 정의)을 포함하고 있으며 자바 객체를 최적화 하기 위하여Java session space를 제일 마지막에 호출합니다.

 

 

LARGE_POOL_SIZE

 

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

 

LARGE_POOL_SIZE의 크기는LARGE_POOL에 있는 heap크기에 비례합니다. LARGE_POOL은 heap에 따라shared server systems의 세션 메모리를 사용하고 병렬 처리를 위한 메시지 버퍼나backup processes를 위하여 disk I/O 버퍼를 사용합니다. 병렬 처리를 할 경우large pool은SGA_TARGET이 설정되어 있는 값 이상으로는 사용되지 않습니다.

 

주의:

오라클의 기본 값에 250K만큼의 크기를 가지는shared server가 있다면 반드시DISPATCHERS를 설정해주어야 합니다. 최종적으로backup I/O buffers를 표본port에 값을 포함하게 되고 전체적으로는 기본값이 너무 큰 값으로 설정하게 되면 문제가 일어날수가 있습니다. 그러므로LARGE_POOL_SIZE의 크기는 되도록 작은 크기로 설정하여 DB를 생성. 관리 해야 합니다.

 

설정 값은 숫자로 정의 할 수 있고 Kbyte나 Mbyte로 설정하게 됩니다.

 

LOG_BUFFER

 

Property

Description

Parameter type

Integer

Default value

512 KB or 128 KB * CPU_COUNT, 혹은 그보다 큰 값

Modifiable

No

Range of values

OS 환경에 따름

Basic

No

 

LOG_BUFFER는 기본적인 메모리 크기로 오라클에서 redo에 관련된redo log file을buffering하는 데에 사용이 됩니다. Redo Log는 레코드의 변경에 관련된 내용을database block buffers에서 생성이 됩니다.

 

일반적으로는LOG_BUFFER의 가장 큰 값은redo log file I/O 를 처리하기 위하여long 혹은 number로 정의됩니다. 시스템이 자주 이용될 때에는 65536에서 더 큰 크기로 설정해서 사용합니다.

 

PARALLEL_AUTOMATIC_TUNING

 

Property

Description

Parameter type

Boolean

Default value

false

Modifiable

No

Range of values

true | false

 

-이 설정 값은 반대로 움직이는 편입니다.

 

만일PARALLEL_AUTOMATIC_TUNING값이 true로 설정 되어 있다면 기본값 설정으로 컨트롤 병렬 처리가 실행됩니다. 추가로 이 값을 설정하게 되면 반드시 시스템 안의 PARALLEL이 수행 테이블에 명시되어야 합니다. 그로 인해서 자동적으로 병렬 처리 명령을 오라클 내부에서 처리하게 됩니다.

 

만일 병렬 처리에 관련된 값을 이전 버전에서나 현재 실행할PARALLEL_AUTOMATIC_TUNING이 있다면 반드시 Shared Pool의 크기를 늘리는 것이 좋습니다. 설정되어야 하는 값은 Large Pool이며 반드시 자동으로 설정하도록 하는 것이 좋습니다.

 

추가로 자동 튜닝에 관련되어서는PARALLEL_ADAPTIVE_MULTI_USER에서 자세히 일아볼수가 있습니다.

 

PGA_AGGREGATE_TARGET

 

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 메모리에 포함되어 모든 서버 프로세스에 포함되는 설정 값이다.

 

PGA_AGGREGATE_TARGET을 설정할 때에는 자동으로WORKAREA_SIZE_POLICY 값이 AUTO로 설정됩니다. 이것은 SQL이 작동하는 영역 중에 SQL 명령 중(sort, group-by, hash-join, bitmap merge, bitmap create)에 해당하는 작업을 할 때 자동으로 크기가 정해집니다. 만일 이 설정을 기본으로 했을 경우에는 SGA의 20% 혹은 10MB에 해당 하는 값, 그보다 큰 값으로 정해 집니다.

 

PGA_AGGREGATE_TARGET가 0일 경우에는WORKAREA_SIZE_POLICY가MANUAL로 설정됩니다. 이것은 SQL workareas가*_AREA_SIZE의 설정크기를 사용하고 있기 때문입니다.

 

오라클은private memory로 설정 값을 유지하고 이 설정에 해당되는 작업영역으로 이용하게 됩니다. 만일 값이 증가하게 된다면 그에 비례 해서 할당되는 작업영역에 메모리도 증가하고 메모리를 전부 사용하게 되면 disk영역에서 작업하게 됩니다.

 

이 값을 설정 하려면 반드시 시스템의 전체 메모리를 조사하고 인스턴스와 SGA에 맞는 값으로 설정 해야 할 것입니다. 이 값은PGA_AGGREGATE_TARGET에 설정을 할 수 있습니다.

 

SGA_MAX_SIZE

 

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의 최대 크기로 인스턴스의 최대 사용시간을 나타냅니다.

SGA_TARGET

 

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는 다음 메모리의 크기를 자동으로 설정합니다.

 

만일 위의 내용의 메모리를 0이 아닌 값으로 설정한다면 ASM Management이 최소레벨에서 사용하게 됩니다. 최소값으로 설정하게 된다면 application 구성도 최소한의 메모리를 사용하게 됩니다.

 

pools의 크기 설정을 수동으로 구성하게 되면 ASM Management에서의 다음 값이 무효화됩니다.

 

 

메모리의 할당은 이러한 pools의 전체 크기인SGA_TARGET로 ASM Management에서 자동적으로 설정을 합니다.

 

SHARED_POOL_RESERVED_SIZE

 

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의 성능저하를 피하기 위해서 매개변수를 사용할 수 있습니다.

 

SHARED_POOL_SIZE

 

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설정 값에 따른다.

 

SHARED_POOL_SIZE의 크기는SHARED POOL의 크기가 됩니다. SHARED POOL은shared cursors, stored procedures, control structures 그 외의structures에 관련됩니다. PARALLEL_AUTOMATIC_TUNING의 설정을 false로 설정하면 병렬처리를 message buffers로부터 shared pool이 실행된다. 값이 커질수록 multi-user의 시스템의 성능이 좋아진다. 값이 작아질수록 메모리의 여분이 남게 된다.

V$SGASTAT view에서 shared pool를 이용해서 모니터링이 가능하다.

 

참고:

 

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