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('¶meter_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에서 조회하는 방법입니다.
파라미터 값을 변수로 선택하는데, 그냥 엔터로 넘어가면 변경된 모든 파라미터에 대해 조회 됩니다.
최신 댓글