SGA 메모리 크기 조정

▶ 정적 파라미터 파일(initSID.ora) 수정 방법
$ORACLE_HOME>cd  dbs  ==> 파라미터 파일이 있는 (기본)경로로 이동
>vi initSID.ora

"initDBA32.ora" 32 lines, 843 characters
##########################
#
# Date:         28 Feb 2001
# Updated:      24 Apr 2001
# File Name:    initsid.ora
# File Version: 1.1.3
#
###########################

background_dump_dest=/data3/dba32/ADMIN/BDUMP
compatible=9.2.0
control_files=/data3/dba32/dbs/ctrl01.ctl
core_dump_dest=/data3/dba32/ADMIN/CDUMP
db_block_size=4096
db_cache_size=4M
db_domain=world
db_name=DBA32
global_names=TRUE
instance_name=DBA32
java_pool_size=0
#log_archive_dest_1="LOCATION=$ORACLE_HOME/ORADATA/ARCHIVE1/ MANDATORY"
#log_archive_dest_2="LOCATION=$ORACLE_HOME/ORADATA/ARCHIVE2/ OPTIONAL"
#log_archive_format=arch_%s.arc
#log_archive_max_processes=2
#log_archive_start=true
max_dump_file_size=10240
remote_login_passwordfile=NONE
service_names=DBA32
shared_pool_size=16M
undo_management=AUTO
undo_tablespace=UNDOTBS
user_dump_dest=/data3/dba32/ADMIN/UDUMP
sga_max_size=80M  ==> sga 메모리 수정

"initDBA32.ora" 33 lines, 860 characters
MultiHP3:/data3/dba32/dbs] cd ..
MultiHP3:/data3/dba32] sqlplus '/as sysdba'

SQL*Plus: Release 9.2.0.1.0 - Production on Tue Dec 14 02:08:57 2004
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

SQL> shutdown  ==> 파라미터 수정 후 데이터베이스 종료
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup ==> 데이터베이스 구동
ORACLE instance started.
SQL> show sga ==> 현재 할당되어 있는 SGA크기 확인

Total System Global Area   85420720 bytes ==> 수정된 SGA 메모리 크기 확인 
Fixed Size                   735920 bytes
==> 인스턴스를 초기화할 때 백그라운 프로세스에 필요한 일반적인 정보를 담는 부분으로, 파라미터 파일을 통한 크기 조정이 불가능, 인스턴스 내에서 항상 일정한 크기를 가짐

Variable Size              79691776 bytes
==> 공유풀, 대용량 풀, 자바풀, 기타 영역의 설정한 값의 합으로 결정

Database Buffers            4194304 bytes
Redo Buffers                 798720 bytes
Database mounted.
Database opened.

개별적으로 파라미터 설정값 확인은 show parameter 명령 사용 
SQL> show parameter shared_pool_size ==>공유풀 메모리 확인
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
shared_pool_size                     big integer 16777216

▶ 동적 파라미터 파일(spfileSID.ora) 수정 방법
정적 파라미터 파일과 달리 데이터베이스 오픈 상태에서 alter system set명령을 이용하여 데이터베이스 재구동을 하지 않고 동적으로 변경할 수 있다.

SQL> show parameter db_cache_size ==> 데이터베이스 버퍼 캐시 확인
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_cache_size                        big integer 4194304

SQL> select name, issys_modifiable from v$parameter where name='db_cache_size'; ==> 정적 파라미터 여부 확인
NAME                                                             ISSYS_MOD
---------------------------------------------------------------- ---------
db_cache_size                                                    IMMEDIATE

ISSYS_MODIFIABLE 값이 FALSE인 경우 정적 파라미터 이며, IMMEDIATE인 경우에는 변경된 값이 현재 세션부터, DEFFERED인 경우는 이후에 접속하는 세션부터 영향을 미친다.

SQL> alter system set db_cache_size=6M; ==> 데이터베이스 버퍼 캐시 사이즈 조정
System altered.

그래뉼
을 이용한 크기 할당
Granule은 가상 메모리 상의 연속된 공간으로 dynamic SGA 모델에서 할당할 수 있는 최소 단위이다. 이 그래뉼의 크기는 SGA 전체의 추정값(SGA_MAX_SIZE)에 따라 다음과 같이 구분된다.
SGA의 예상 크기가 128MB 미만 일 경우에는 4MB, 그 이상일 경우에는 16MB가 된다.
SGA의 공유풀, 데이터베이스 버퍼 캐시, 대용량 풀 등의 파라미터는 그래뉼 단위로 늘어나거나 줄어들 수 있다

SQL> show parameter db_cache_size ==> 그래뉼 적용으로 4배 단위 크기가 조정됨
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_cache_size                        big integer 8388608

위와 같이 SGA가 85MB인 경우네는 파라미터 파일에서 데이터베이스 캐시 버퍼 사이즈를 6MB로 지정하더라도 그래뉼 하나의 크기가 4MB단위이므로 그래뉼 두 개를 이용해 8MB를 할당한게 된다.

SQL> select component, current_size from V$sga_dynamic_components;
==> 현재 SGA에 할달된 구성 요소별 그래뉼 현황 확인

COMPONENT                                                        CURRENT_SIZE
---------------------------------------------------------------- ------------
shared pool                                                          16777216
large pool                                                                  0
buffer cache                                                          8388608

SQL> select size_for_estimate, estd_physical_reads from V$db_cache_advice;
==> 데이터베이스 버퍼 캐시 크기 가이드 라인 정보 제공을 받을 수 있음  

SIZE_FOR_ESTIMATE ESTD_PHYSICAL_READS
----------------- -------------------
                4                 332
                8                 332
               12                 332
               16                 332
               20                 332
               24                 332
               28                 332
               32                 332
               36                 332
               40                 332
               44                 332
               48                 332
               52                 332
               56                 332
               60                 332
               64                 332
               68                 332
               72                 332
               76                 332
               80                 332

20 rows selected. ==> 기본적으로 20개를 보여줌

==> 특정 buffer cache의 크기를 조절했을 때 성능을 예측하는 통계정보를 생성하는데 이 통계정보를 바탕으로 사용자가 현재의 작업 부하를 고려해서 적당한 크기로 buffer cache를 조절할 수 있단다.

그런데 오라클 bulletin에 있는 내용을 읽어봐도 통 감이 오지 않는다. 언제쯤 이해가 갈런지...

Trackback 0 Comment 0
prev 1 ... 4 5 6 7 8 9 10 11 12 ... 20 next


티스토리 툴바