Oracle 파라미터 파일 변경사항 체크

 

파라미터 파일 변경사항 체크

PM을 해서 DB를 재구동해야 할때, 우선 체크해야 할 사항중에 하나인데, 인수인계 받은 DB인 경우 DB에 어떤 값이 설정되어 있는지 모를때나, 누군가 scope=memory를 이용해 임시로 조치를 해둔 것이 있는지 조회하는 방법입니다.

spfile을 사용할 때 사용하는 쿼리들입니다.

 

재구동 시 적용되는 파라미터

col name for a30
col "Current Value" for a30
col "Spfile Value" for a30
col "Online Modify" for a14

select p.NAME, p.display_value "Current Value", sp.display_value "Spfile Value"
from v$parameter p, v$spparameter sp
where p.name = sp.name
and p.display_value != sp.display_value
and p.name not in ('control_files','audit_trail')
/
  • current value는 현재 DB에서 보여지는 적용되어 있는 값.
  • spfile value는 spfile에 값이 들어가 있어 재구동후에 올라오는 값.

control_files를 제외한 이유는 바꾸지 않아도 서로의 경로가 다르게 나오기 때문입니다. 컨트롤 파일만 v$parameter와 v$spparameter의 값이 조금 다르게 나온는데 그 이유는 찾아보는중입니다.

audit_trail의 경우는 db, DB 대소문자 차이로 항상 나오다 보니 제외 했습니다.

해당 부분의 조회가 필요하다면 조건절을 주석 처리하면 됩니다.

 

Scope=memory 로 임시적용된 파라미터 찾기

col display_value for a30

select name, display_value, isdefault, ISSYS_MODIFIABLE, ISMODIFIED, ISBASIC, ISDEPRECATED
from v$parameter
where ISDEPRECATED='TRUE'
and ISMODIFIED='SYSTEM_MOD'
/

온라인중에 변경 가능한 파라미터중에 alter system set  scope=memory 옵션으로 임시조치 해둔 파라미터의 경우 memory 값으로 올려야 하는 경우도 있고, 재구동시 원복시켜야 하는 값이 있을수도 있습니다.

잘 찾아서 왜 적용해 놓았는지 확인 후에 변경하시면 됩니다.

 

변경된 파라미터 조회

col name for a20
col value for a70
select name, value from v$parameter
where name = 'spfile';

col time for a15
col parameter_name format a50
col old_value format a30
col new_value format a30
break on instance skip 3
select instance_number instance, snap_id, time, parameter_name, old_value, new_value from (
select a.snap_id,to_char(end_interval_time,'DD-MON-YY HH24:MI') TIME, a.instance_number, parameter_name, value new_value,
lag(parameter_name,1) over (partition by parameter_name, a.instance_number order by a.snap_id) old_pname,
lag(value,1) over (partition by parameter_name, a.instance_number order by a.snap_id) old_value ,
decode(substr(parameter_name,1,2),'__',2,1) calc_flag
from dba_hist_parameter a, dba_Hist_snapshot b , v$instance v
where a.snap_id=b.snap_id
and a.instance_number=b.instance_number
and parameter_name like nvl('&parameter_name',parameter_name)
and a.instance_number like nvl('&instance_number',v.instance_number)
)
where
new_value != old_value
order by 1,2;

변경전 값을 알고 싶을때 snap_id에서 조회하는 방법입니다.

파라미터 값을 변수로 선택하는데, 그냥 엔터로 넘어가면 변경된 모든 파라미터에 대해 조회 됩니다.

소셜 미디어로 공유하기

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.