운영 중 바로 변경이 가능한 파라미터는 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 옵션을 사용해도 재구동이 필요하다는 것을 알수 있습니다
포스팅 다운받기
'Oracle' 카테고리의 다른 글
| create database 시 undo 설정 (0) | 2009/11/25 |
|---|---|
| 썬서버사면 오라클이 공짜? (0) | 2009/11/02 |
| rac환경에서 alter system 명령어에서 deferred 옵션 확인 (0) | 2009/10/30 |
| ORACLE Instance client 설치&사용법 (0) | 2009/05/17 |
| [Oracle] Oracle Net Concept (오라클 넷) (1) | 2009/01/18 |
| 유닉스/리눅스 에서 orace ed 사용법 (0) | 2009/01/18 |
rac에서 alter system의 deferred 옵션 확인.pdf











댓글을 달아 주세요