작은 공간,하지만 꿈이있는...

크리에이티브 커먼즈 라이선스
Creative Commons License

운영 중 바로 변경이 가능한 파라미터는 v$parameter에서는
ISSYS_MODIFIABLE
값이 'IMMEDIATE' 'DEFERRED'일 경우입니다

변경 가능한 파라미터 체크 해봅니다

 

SQL> select name,issys_modifiable from v$parameter;

FLASE: static parameter scope=spfile로만 값을 변경 가능합니다

즉 값을 변경해도 이후 startup 시부터 영향을 미칩니다

IMMEDIATE: 값을 변경하면 현재 session부터 바로 영향을 받게 됩니다 .

DEFERRED: 변경된 값이 이후 접속되는 session부터 영향을 줍니다

 

SQL> select name,issys_modifiable from v$parameter

      where issys_modifiable like 'DEFE%'

 

NAME                                           ISSYS_MOD

--------------------------------------------------

backup_tape_io_slaves                  DEFERRED

audit_file_dest                                DEFERRED

object_cache_optimal_size            DEFERRED

object_cache_max_size_percent   DEFERRED

sort_area_size                               DEFERRED

sort_area_retained_size                 DEFERRED

olap_page_pool_size                      DEFERRED

 

7 rows selected.

 

많은 파라미터중 7개만 deferred 가 가능하다는걸 알수 있습니다

 

이중 object_cache_optimal_size 를 변경 해보도록 하겠습니다

object_cache_optimal_size는 캐시 크기가 최대 크기를 초과할 때
세션 객체 캐시를 어느 크기로 축소할 지

지정합니다. 사용 가능한 값: 10K에서 운영 체제 특정 최대값까지입니다.
기본값 : 100K 입니다

 

SYS:RACDB1>show parameter object_cache_optimal_size     

NAME                                                 TYPE           VALUE

------------------------------------ --------------- object_cache_optimal_size                integer        102400

현재는 102400byte -> 100KB 입니다

 

처음에는 scope=both 로 테스트를 하겠습니다
1번 노드에서 204800byte로 변경 하겠습니다

SQL>alter system set object_cache_optimal_size=204800

deferred

scope=both

sid='*'

 

여기에서 중요한점은 deffered옵션을 scope 후에 기입하면 에러가뜹니다

scope 옵션전에 deffered 를 써주어야 합니다

 

변경후 조회 해보면 변경을 시도한 노드1은 그대로 입니다

SYS:RACDB1>show parameter object_cache_optimal_size

NAME                                                 TYPE           VALUE

------------------------------------ ----------- ---

object_cache_optimal_size                integer        102400

 

 

접속해 있던 2번노드에서 조회를 해보면

SYS:RACDB2>show parameter object_cache_optimal_size

NAME                                                 TYPE           VALUE

------------------------------------ ----------------- object_cache_optimal_size                integer        102400

역시 파라미터 변경전 접속되어 있던 세션이라 변경이 적용 되지않았습니다

 

 

2번노드로 다른세션으로 접속을 하고 난후 조회를 해보면

SYS:RACDB2-2>show parameter object_cache_optimal_size

NAME                                                 TYPE           VALUE

------------------------------------ ---------------------object_cache_optimal_size                integer        204800

 

1번노드의 다른세션으로 접속을 하고난후 조회 해보면

SYS:RACDB1-2>show parameter object_cache_optimal_size

NAME                                                 TYPE           VALUE

------------------------------------ --------------------object_cache_optimal_size                integer        204800

 

변경후 접속된 세션부터 deferred 옵션이 적용되어 변경된
파라미터값이 인식되는걸 확인할수 있습니다

 

1번 인스턴스에서 startup force 로 해서 재시작해서
재구동된후에도 파라미터값이 유지되는지 확인

해보겠습니다

 

SYS:RACDB1>startup force

SYS:RACDB1>show parameter object_cache_optimal_size

NAME                                                 TYPE           VALUE

------------------------------------ ------------------- object_cache_optimal_size                integer        204800

 

재시작후에도 파라미터값이 유지됨을 알수 있습니다

 

 

 

다시 원래대로 102400 으로 돌린후 이번에는 scope=spfile 로 해보겠습니다

 

SQL>alter system set object_cache_optimal_size=204800

deferred

scope=spfile

sid='*';

 

변경을 시도한 1번 인스턴스에는 당연히 변경되지않았으며

SYS:RACDB1>show parameter object_cache_optimal_size

NAME                                                 TYPE           VALUE

------------------------------------ -------------------object_cache_optimal_size                integer        102400

 

 

기존에 접속해 있던 2번 노드도 변경이 되지않음을 알수있습니다

SYS:RACDB2>show parameter object_cache_optimal_size

NAME                                                 TYPE           VALUE

------------------------------------ ------------------object_cache_optimal_size                integer        102400

 

 

1번노드의 다른세션에서 새로접속하여 조회를 해보면 새로접속했음에도
값이 변경되지않았음을
알수있으며


SYS:RACDB1-2
>show parameter object_cache_optimal_size             

NAME                                                 TYPE           VALUE

------------------------------------ ---------------------object_cache_optimal_size                integer        102400

 

2번노드의 다른 새롭게 접속한 세션도 값이 변경되지않았음을 확인 할수있습니다

SYS:RACDB2-2>show parameter object_cache_optimal_size             

NAME                                                 TYPE           VALUE

------------------------------------ -----------------------object_cache_optimal_size                integer        102400

테스트 결과로 spfile로 했을때는 deferred 옵션을 써도 세션레벨로
불가하고 재구동이 필요하다는 것을
알수 있습니다

 

 

다시 102400로 돌리고 scope=memory를 테스트해보겠습니다

이번에도 1번노드와 2번노드는 접속되어있는 상태이며 1-2
2-2
세션은 변경후 접속후 확인하겠습니다

 

SQL>alter system set object_cache_optimal_size=204800

deferred

scope=memory

sid='*';

 

변경을 시도했던 1번노드는 값이 변경되지않았습니다

SYS:RACDB1>show parameter object_cache_optimal_size             

NAME                                                 TYPE           VALUE

------------------------------------ ------------------object_cache_optimal_size                integer        102400

 

 

접속되어있던 2번노드도 값이 변경 되지않았습니다

SYS:RACDB2>show parameter object_cache_optimal_size             

NAME                                                 TYPE           VALUE

------------------------------------ ---------------------object_cache_optimal_size                integer        102400

 

새롭게 접속한 1번노드의 다른 세션은 변경된값이 적용받은걸 확인할수 있으며

SYS:RACDB1-2>show parameter object_cache_optimal_size             

NAME                                                 TYPE           VALUE

------------------------------------ ----------- -----

object_cache_optimal_size                integer        204800

 

새롭게 접속한 2번노드의 다른 세션은 변경된 값이 적용됬음을 알수 있습니다

SYS:RACDB2-2>show parameter object_cache_optimal_size             

NAME                                                 TYPE           VALUE

------------------------------------ ----------- ------

object_cache_optimal_size                integer        204800

 

 

이로써 both memory는 새롭게 접속한 세션부터는 변경된
파라미터값을 받을수 있지만

spfile deferred 옵션을 사용해도 재구동이 필요하다는 것을 알수 있습니다


포스팅 다운받기


저작자 표시 비영리 동일 조건 변경 허락
Posted by FKF_태랑
Oracle l 2009/10/30 21:37

TRACKBACK :: http://www.commit.co.kr/trackback/69 관련글 쓰기

댓글을 달아 주세요

1  ... 21 22 23 24 25 26 27 28 29  ... 89 



카테고리

전체보기 (89)
넓은 세상의 이야기들 (3)
나의 이야기 (1)
Solaris (15)
Oracle (14)
Linux (41)
JAVA / C / 그외 개발언어 (1)
IT (10)
DB (4)