참고글 및 문제해결/문제해결
Hidden parameter를 SPFILE에서 적용하기
에몽이ㅋ
2012. 3. 1. 23:39
pfile을 사용중이라면, 해당 파일에 그냥 추가하고 다시 startup을 시키면 되지만,
spfile은 어떻게 할까요?
---> 맞습니다. 한번 써보죠(결론은 포스팅의 맨 마지막에서 확인)
1. 일단 현재상황 확인
_allow_resetlogs_corruption 의 value가 FALSE인 것을 확인합시다.
2. ALTER SYSTEM SET으로 파라미터 변경시도
안됩니다 왜 안될까요?
'_' 문자가 invalid character이기 때문입니다.
3. 다시 시도 : 해당 파라미터를 " " 으로 감싸고 변경해봅시다
잘되네요!!
4. 그럼 변경을 확인하기 위해 shutdown 후 startup 해서 확인해보도록 하겠습니다.
_allow_resetlogs_corruption의 VALUE 가 TRUE로 되었습니다.!
5. 오픈 이후 히든파라미터는 위험하므로 항상 원래값으로 변경시켜 줍시다.
alter system set "_allow_resetlogs_corruption"=FALSE sope=spfile;
spfile은 어떻게 할까요?
alter system set을 쓰면 되지!!
---> 맞습니다. 한번 써보죠(결론은 포스팅의 맨 마지막에서 확인)
1. 일단 현재상황 확인
현재상황 SQL> l 1 select a.ksppinm name, b.ksppstvl value,b.ksppstdf deflt, 2 decode (a.ksppity, 1, 'boolean', 3 2, 'string', 4 3, 'number', 5 4, 'file', 6 a.ksppity) type, 7 a.ksppdesc description 8 from sys.x$ksppi a, sys.x$ksppcv b 9 where a.indx = b.indx and a.ksppinm like '\_%' escape '\' 10 and a.ksppinm like '%resetlogs%' 11 order by name 12* SQL> / NAME VALUE DEFLT TYPE DESCRIPTION -------------------- ---------- ---------- ---------- -------------------------------------------------- _allow_resetlogs_cor FALSE TRUE boolean allow resetlogs even if it will cause corruption ruption _no_recovery_through FALSE TRUE boolean no recovery through this resetlogs operation _resetlogs
_allow_resetlogs_corruption 의 value가 FALSE인 것을 확인합시다.
2. ALTER SYSTEM SET으로 파라미터 변경시도
SQL> alter system set _allow_resetlogs_corruption=TRUE scope=spfile; alter system set _allow_resetlogs_corruption=TRUE scope=spfile * ERROR at line 1: ORA-00911: invalid character
안됩니다 왜 안될까요?
'_' 문자가 invalid character이기 때문입니다.
3. 다시 시도 : 해당 파라미터를 " " 으로 감싸고 변경해봅시다
SQL> alter system set "_allow_resetlogs_corruption"=TRUE scope=spfile; System altered.
잘되네요!!
ALERT LOG에도 바뀌었다고 뜹니다.
Thu Mar 01 23:17:45 KST 2012
Thu Mar 01 23:17:45 KST 2012
ALTER SYSTEM SET _allow_resetlogs_corruption=TRUE SCOPE=SPFILE;
4. 그럼 변경을 확인하기 위해 shutdown 후 startup 해서 확인해보도록 하겠습니다.
SQL> l 1 select a.ksppinm name, b.ksppstvl value,b.ksppstdf deflt, 2 decode (a.ksppity, 1, 'boolean', 3 2, 'string', 4 3, 'number', 5 4, 'file', 6 a.ksppity) type, 7 a.ksppdesc description 8 from sys.x$ksppi a, sys.x$ksppcv b 9 where a.indx = b.indx and a.ksppinm like '\_%' escape '\' 10 and a.ksppinm like '%resetlogs%' 11* order by name SQL> / NAME VALUE DEFLT TYPE DESCRIPTION -------------------- ---------- ---------- ---------- -------------------------------------------------- _allow_resetlogs_cor TRUE FALSE boolean allow resetlogs even if it will cause corruption ruption _no_recovery_through FALSE TRUE boolean no recovery through this resetlogs operation _resetlogs
_allow_resetlogs_corruption의 VALUE 가 TRUE로 되었습니다.!
5. 오픈 이후 히든파라미터는 위험하므로 항상 원래값으로 변경시켜 줍시다.
alter system set "_allow_resetlogs_corruption"=FALSE sope=spfile;
결론 :
spfile 을 이용할때 hidden parameter을 이용하기 위해서는
평소처럼 ALTER SYSTEM SET을 이용하면 되는데, '_' 가 인식이 안되므로
"_allow_resetlogs_corruption"=TRUE 처럼 파라미터에 " "을 감싸줘야합니다.