조회 수 8449 추천 수 0 댓글 1

ORA-1578 조치를 위한 event 10231
========================================================================

table access 시 ora-1578이 발생하는 경우, 이미 다른 bulletin(10062, 11885)에
정리된 것과 같이 corrupt된 block을 제외한 나머지 block의 data를 index
search를 통해 조회하여 다른 table로 copy하는 방법이 사용된다.
그런데, 만약 ora-1578을 만난 table에 index가 전혀 없다면 이 자료에서 설명할
event 10231을 사용할 수 있다.

이 event는 V7, V8 모두 적용 가능하다.

 

1. event 10231의 효과
~~~~~~~~~~~~~~~~~~~~~

event 10231은 full table scan 시에 corrupt된 block을 skip할 수 있도록
해주는 event이다. block corruption을 나타내는 ora-1578의 조치 방법으로
이용될 수 있으나, 이 event가 효과를 발휘하는 corruption의 형태가 모든 것을
포함하는 것은 아니기 때문에 이 event를 사용하여도 여전히 ora-1578이 발생할 수
있다.
대부분의 ora-1578에 대해서 corrupt된 block을 skip하는 것이 확인되었으나,
적용되지 않는 경우에 대해서 오라클이 보장하지는 않는다.

앞에서 설명한 바와 같이 이 event는 full table scan 시에 효과가 있으므로,
ora-1578이 발생하면 이것을 이용하여 corrupt된 block을 포함하는 table을
export 받아내거나, "create table as select" 구문을 이용하여 다른 table로
data를 copy할 수 있다.

corrupted된 block 내의 data는 잃게 된다.

Oracle 7.1.X version까지는 이 event가 물리적인 corruption을 제외한 'soft
corrupt' block에만 효과가 있었으나, Oracle 7.2 이상부터는 (V8포함) media
corruption을 포함한 다양한 형태의 corruption에 대해서 효과를 가지게 되어
더욱 유용해졌다.
그러나, 여전히 모든 case를 cover하는 보장은 되지 못한다.

[주의] 이 event는 data dictionary table에 대해서는 사용할 수 없다.


2. event 설정 및 사용 방법
~~~~~~~~~~~~~~~~~~~~~~~~~~

이 event는 disk로부터 읽는 block에만 효과가 있다. corrupt된 block이 memory,
즉, cache buffer 내에 이미 올라와 있다면 바라는 효과를 얻을 수 없기 때문에
일단 이 parameter를 사용하기 전에는 db를 shutdown시키는 것이 권고된다.

event를 사용하는 절차를 정리하면 다음과 같다.

(1) database shutdown

(2) cd $ORACLE_HOME/dbs
initSID.ora (SID는 env | grep SID하여 확인) file 내에 다음과 같이
event를 지정하는 parameter를 추가한다. 위치는 관계없다.

event="10231 trace name context forever, level 10"

(3) 다음과 같이 restrict mode로 startup하고, parameter가 설정되었는지
확인한다. startup 시 parameter error가 발생하면 위의 지정에서
콤마와 같은 부분이 문제가 있는지 다시 한번 확인한다.

SVRMGR>startup restrict;
SVRMGR>show parameter event

NAME TYPE VALUE
------------------------- ------- ------------------------------
event string 10231 trace name context forev

(4) full table scan operation을 이용하여 table로 부터 data를 꺼낸다.
예를 들어 scott user의 dept에서 ora-1578이 발생한 것을 가정하고,
다음과 같은 조치가 가능하다.

<Example 1>
os> exp scott/tiger file=test.dmp tables=dept
<Example 2>
SQL> create table test as select * from dept;


3. data 발췌 후 작업
~~~~~~~~~~~~~~~~~~~~

일단 export나 create table as select 문장의 수행으로 인해 data를 얻었으면,
다음과 같이 작업한다.

(1) initSID.ora 화일에서 event를 지정한 line을 제거한다.

(2) db를 shutdown시키고 다시 startup시킨다.

(3) show parameter event 를 수행하여 제거되었는지 확인한다.

(4) corrupt된 table을 drop시키거나 rename시키고, table을 재생성한다.
즉, 앞에서 예를 든 경우의 후속 작업은 각각 다음과 같다.

<Example 1>
SQL> drop table dept; (혹은 SQL>rename table dept to test;)

os> imp scott/tiger file=test.dmp tables=dept

이 때, space에 여유가 있다면 drop보다는 rename한 후 나중에
import 결과를 확인하고 drop하는 것을 권고한다.
단, rename을 하게 되면 index 등은 rename이 안 되므로 import 시
index, constraint 등은 따로 생성하여야 한다.

<Example 2>
SQL> drop table dept;
SQL> rename test to dept;

(5) import 전에 rename한 경우나 create table as select를 이용하면,
index, constraint, trigger 등은 재생성하여야 한다.
또한, 필요한 권한을 grant하여 준다.


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 Q&A Oracle관련 게시물만 Sean 2014.04.09 84902
140 TM 엔지니어필수품 file perfstat 2011.03.03 14115
139 TM RAC10g R2 patch(10.2.0.1->10.2.0.5) file 윤현 2011.03.02 10715
138 TM oracle client 와 database 간 상호 호환성(version) 1 담벼락 2011.01.24 23201
137 TM Automatic Storage Management file 담벼락 2010.12.31 10629
136 TM 10g Transportable Tablespace 에 대한 세미나 자료 입니다 file 송기성 2010.12.29 9204
135 TM Replication 세미나 자료 file 고구마 2010.12.29 11200
134 TM SystemState 세미나자료 file 고구마 2010.12.29 11009
133 TM Database Replay 담벼락 2010.12.27 9504
» TM ORA-1578 조치를 위한 event 10231 1 이성철 2010.12.22 8449
131 TM (10g) 자동 통계정보 수집(AUTOMATIC OPTIMIZER STATISTICS COLLECTION) 담벼락 2010.12.16 16383
130 TM 오라클 디렉토리 변경 송기성 2010.12.16 24993
129 TM UPDATABLE SNAPSHOT 구축하기 고구마 2010.08.23 15507
128 TM replication table 다른 tablespace 로 옮기기 고구마 2010.08.23 13822
127 TM Flashback Query 승현짱 2010.05.30 8675
126 TM analyze connection failover options 유주환 2010.05.19 8864
125 TM 어플리케이션 페일오버와 로드밸런싱 유주환 2010.05.19 8843
124 TM fine-grained_auditing 1 유주환 2010.05.19 8594
123 TM library_cache_lock,_library_cache-orapybubu 유주환 2010.05.19 8871
122 TM fga와_vpd를_이용한_오라클_데이터베이스_보안_관련_문제와_답변 유주환 2010.05.19 10405
121 TM 과도한 CPU 및 UNDO REDO 많이 사용하는 세션 찾기 1 고구마 2010.05.19 23731
Board Pagination Prev 1 2 3 4 5 6 7 8 Next
/ 8