RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR

운영 중 바로 변경이 가능한 파라미터는 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 옵션을 사용해도 재구동이 필요하다는 것을 알수 있습니다


크리에이티브 커먼즈 라이센스
Creative Commons License
http://commit.co.kr/trackback/69
태랑:Extreme Performance DBA 를 꿈꾼다
Extreme Performance DBA 를 꿈꾼다



전체보기 (100)
Solaris (15)
Linux (42)
DATABASE (27)
Virtualization (0)
Enterprise Manager (0)
JAVA / C / 그외 개발언어 (2)
넓은 세상의 이야기들 (14)

Tag List

Creative Commons License

이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

7 명이 RSS를 구독하고 있습니다.