안녕하세요.
아주 오랜만에 오라클클럽에 들어옵니다.
2년 3개월전에 제가 맡은 사이트에서 장애가 났던 사례를 소개합니다.
작업전에 재확인하지 않아서 발생한 장애였어요... ㅠㅠ
그래서 더 당황스러웠는데, 사람 천사(타락천사님)님 덕분에 무사히 해결 되었던 기억이 있네요.
DBA로 일을 하면서 꼭 필요한 습관은 "꺼진 불도 다시 보자.. 작업전에 한번 더 확인하기!!" 인 것 같네요..
=================
0. 환경 정보
1) 10g RAC - raw device를 사용하는 환경
1. 장애 원인
1) node1에서 데이터 파일 추가 시, 잘못된 경로(node1과 node2에서 모두 인식 가능한 경로가 아님)에 데이터 파일을 추가함. 즉 raw device로 추가 되지 않고, node1에 일반 파일로 추가 되어 node2에서는 인식하지 못함
2) 증상 : select 및 DML 시 에러 발생
==> 해당 데이터 파일이 있는 테이블스페이스에 속한 object
2. 복구절차 : 10g의 경우, 데이터파일을 drop할 수 없으므로 해당 데이터파일을 rman에서 copy해서 rename하는 방법을 선택할 수 있는데, 반드시 테이블스페이스를 offline해야 함
1단계] sqlplus에서 테이블스페이스 OFFLINE으로 변경
[lovedb01:(LOVEORA1)/oracle]sqlplus / as sysdba
alter tablespace DM_003_INDEX offline;
2딘계] rman
1) rman 접속
[lovedb01:(LOVEORA1)/oracle] rman nocatalog target /
2) 데이터 파일 복사
- '/dev/data36vg/rdata_20480m_151' : 잘못 추가 된 데이터 파일
- '/dev/data37vg/rdata_20480m_151' : 테이블스페이스에 추가 되지 않은 new raw device
RMAN> copy datafile '/dev/data36vg/rdata_20480m_151' to '/dev/data37vg/rdata_20480m_151';
Starting backup at 06-AUG-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile fno=00585 name=/dev/data36vg/rdata_20480m_151
output filename=/dev/data37vg/rdata_20480m_151 tag=TAG20130806T122636 recid=18177 stamp=822745733
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:02:25
Finished backup at 06-AUG-13
3 단계] sqlplus
[lovedb01:(LOVEORA1)/oracle]sqlplus / as sysdba
1) 데이터 파일 rename
12:29:42 06-AUG-13 SYS> alter tablespace DM_003_INDEX rename datafile
'/dev/data36vg/rdata_20480m_151' to '/dev/data37vg/rdata_20480m_151';
Tablespace altered.
2) 테이블스페이스 online으로 변경
12:29:47 06-AUG-13 SYS> alter tablespace DM_003_INDEX online;
Tablespace altered.