블로그 이미지
redkite

카테고리

분류 전체보기 (291)
00.SI프로젝트 산출물 (0)
00.센터 운영 문서 (0)
01.DBMS ============.. (0)
01.오라클 (117)
01.MS-SQL (15)
01.MySQL (30)
01.PostgreSql (0)
01.DB튜닝 (28)
====================.. (0)
02.SERVER ==========.. (0)
02.서버-공통 (11)
02.서버-Linux (58)
02.서버-Unix (12)
02.서버-Windows (2)
====================.. (0)
03.APPLICATION =====.. (11)
====================.. (0)
04.ETC =============.. (0)
04.보안 (5)
====================.. (0)
05.개인자료 (1)
06.캠핑관련 (0)
07.OA관련 (1)
Total
Today
Yesterday

달력

« » 2024.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

공지사항

최근에 올라온 글

offline drop 명령어는 control file에서 datafile을 제거 후에
재생성 하는 것과 같은 이치입니다. 단지 차이는 데이터파일 명이 MISSING 인지
기존 파일명을 그대로 가지는지만 다르겠습니다.
- 컨트롤파일 재생성시
SQL> select name from v$datafile;
NAME


/u01/ora9i/oradata/PROD/system01.dbf
/u01/ora9i/oradata/PROD/undotbs01.dbf
/u01/ora9i/oradata/PROD/users01.dbf
/u01/ora9i/oradata/PROD/users02.dbf
/u01/ora9i/product/9.2.0/dbs/MISSING00005
/u01/ora9i/oradata/PROD/example01.dbf

일반 데이터가 들어가는 테이블스페이스의 데이터파일은 offline되었으므로
DB는 open이 가능합니다.하지만 해당 데이터파일을 복구하기 위해서는 백업과
archive가 필요합니다. offine drop된 데이터파일의 데이터를
읽으려고 할 경우에는 당연히 아래와 같은 메세지가 나고 해당 데이터는
복구 불능입니다. 일부를 추출하는 것도 여러 자료를 찾아보고
어떻게든 해보려고 했는데 안되네요.
테스트 해보기에는 block corruption 에러가 났을 경우에 수행하는
event를 적용했는데 역시 복구불능이었습니다.
dbms_repair로도 안되었습니다.
....
SQL> exec dbms_repair.admin_tables ( table_name => 'REPAIR_TABLE', -

table_type => dbms_repair.repair_table, -
action => dbms_repair.create_action, tablespace => 'EXAMPLE');

BEGIN dbms_repair.admin_tables ( table_name => 'REPAIR_TABLE', table_type => dbms_repair.repair_table, action => dbms_repair.create_action, tablespace => 'EXAMPLE'); END;
*
ERROR at line 1:
ORA-06550: line 1, column 83:
PLS-00201: identifier 'DBMS_REPAIR.REPAIR_TABLE' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

SQL> select count(*) from hr.kkk;
select count(*) from hr.kkk
*
ERROR at line 1:
ORA-00376: file 5 cannot be read at this time
ORA-01110: data file 5: '/u01/ora9i/oradata/PROD/users03.dbf'



recovery 수행

SQL> !cp /u01/ora9i/oradata/PROD_KKK/users03.dbf /u01/ora9i/oradata/PROD/users03.dbf
SQL> recover datafile '/u01/ora9i/oradata/PROD/users03.dbf';
ORA-00279: change 67160 generated at 02/05/2007 23:56:37 needed for thread 1
ORA-00289: suggestion : /u01/ora9i/oradata/PROD/archive/1_9.dbf
ORA-00280: change 67160 for thread 1 is in sequence #9

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: change 67297 generated at 02/06/2007 00:41:03 needed for thread 1
ORA-00289: suggestion : /u01/ora9i/oradata/PROD/archive/1_10.dbf
ORA-00280: change 67297 for thread 1 is in sequence #10
ORA-00278: log file '/u01/ora9i/oradata/PROD/archive/1_9.dbf' no longer needed for this recovery

ORA-00279: change 67299 generated at 02/06/2007 00:41:04 needed for thread 1
ORA-00289: suggestion : /u01/ora9i/oradata/PROD/archive/1_11.dbf
ORA-00280: change 67299 for thread 1 is in sequence #11
ORA-00278: log file '/u01/ora9i/oradata/PROD/archive/1_10.dbf' no longer needed for this recovery

Log applied.
Media recovery complete.
SQL> alter database datafile '/u01/ora9i/oradata/PROD/users03.dbf' online;
Database altered.
SQL> select name, status from v$datafile;
NAME STATUS


-------
/u01/ora9i/oradata/PROD/system01.dbf SYSTEM
/u01/ora9i/oradata/PROD/undotbs01.dbf ONLINE
/u01/ora9i/oradata/PROD/users01.dbf ONLINE
/u01/ora9i/oradata/PROD/users02.dbf ONLINE
/u01/ora9i/oradata/PROD/users03.dbf ONLINE
/u01/ora9i/oradata/PROD/example01.dbf ONLINE
6 rows selected.

SQL> select tablespace_name, status from dba_tablespaces;
TABLESPACE_NAME STATUS


---------
SYSTEM ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
EXAMPLE ONLINE
SQL> select * from v$recover_file;
no rows selected
SQL> select count(*) from hr.kkk;
COUNT(*)
438272
Posted by redkite
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함