2014. 11. 3. 16:18

1. DB를 archive log mode로 시작


startup mount;


alter database archivelog;


alter database open;


create tablespace test2 

datafile '/app/oracle/oradata/testdb/test02.dbf' size 5M;


2. 정상 종료 후 백업 수행

(모드 변경 후에는 항상 전체 백업을 할 것)


select name from v$datafile;


select name from v$controlfile;


select member from v$logfile;


shutdown immediate;


!cp /app/oracle/oradata/testdb/* /data/backup/close/


startup


3. 장애를 발생시키고 복구 진행


create table scott.tt750 (no number) tablespace test2;


insert into scott.tt750 values (1);


commit;


select * from scott.tt750;


4. 장애 발생 확인


!rm -rf /app/oracle/oradata/testdb/test02.dbf


!ls /app/oracle/oradata/testdb/test02.dbf


alter tablespace test2 offline;


alter tablespacae test2 online;

에러발생


 5. 백업으로부터 삭제 된 데이터 파일 복원 후 복구 


!cp /data/backup/close/test02.dbf /app/oracle/oradata/testdb/


alter database test2 online;

에러발생


recover tablespace test2;


alter tablespace test2 onlie;


select * from scott.tt750;


db 정지 후 복구(offline 안되는 tablespace)

1 system tablespace 에 연습용 테이블 생성


create table scott.tt800(no number) tablespace system;


insert into scott.tt800 values (1);


commit;


select * from scott.tt800;


2. system tablespace 삭제 후 db 종료


!rm /app/oracle/oradata/testdb/system01.dbf


alter tablespace system offline;

에러


shutdown immediate;


startup;

에러


3. 백업 파일에서 system01.dbf를 복원 한 후 복구


!cp /data/backup/close/system01.dbf /app/oracle/oradata/testdb/


recover tablespace system;


alter database open;


select * from scott.tt800;


백업 파일이 없는 상태에서의 복구


이 방법으로 생성되지 않는 파일들이 있으므로 주의해야 함! 평소에 백업을 잘 시켜놓을 것 


1. 장애발생


!vi dd.sql

conn / as sysdba


set line 200

col tablespace_name for a10

col file_name for a50

col mb for 999

select tablespace_name, byres/1024/1024/ MB, file_name

from dba_data_files

/

:wq!


@dd


!rm -f /app/oracle/oradata/testdb/test02.dbf


!ls /app/oracle/oradata/testdb/test02.dbf

그런파일이나 디렉토리 없음


2. 테스트용 테이블을 생성 후 데이터를 입력

create table scott.tt810 (no number) tablespace test2;


insert into scott.tt810 values(1);


commit;


select * from scott.tt810;


alter teblespace test2 offline;


alter tablespace test2 online;

에러


select * from scott.tt810;

에러


3. 파일을 생성해서 복구 수행


@dd


alter database create datafile

'/app/oracle/oradata/testdb/test02.dbf'

as '/home/oracle/test01.dbf';


recover tablespace test2;


alter tablespace test2 online;


select * from scott.tt810;



'DB > oralce' 카테고리의 다른 글

시점복구시 주의할 사항  (0) 2014.11.04
ora-01190  (0) 2014.11.04
recovery 이론 및 dump파일 내용  (0) 2014.11.01
오라클이 시작되는 원리  (0) 2014.10.31
오라클 실습시 용량부족으로 디스크 붙이는 방법  (0) 2014.10.31
Posted by 성장하는yw