Database초보우낙
35. Rman을 사용하지 않고 백업본이 없을 때 복구하는 방법 본문
rmf;a설명:
백업을 받지않은 Data file이 손상되었을 때 복구방법은 먼저 빈 파일을 하나 만들고 여기에 아카이브 로그 파일을 적용해서 복구를 하면 된다
빈 파일명은 기존파일명과 다르게 지어주면 된다
■ 실습 :순서
#1. ts07이라는 테이블 스페이스를 생성
#2. scott유저로 접속해서 ts07테이블 스페이스에 emp07 테이블 생성
#3. emp07테이블에 데이터를 입력하고 로그 스위치를 일으킨다(3번반복)
#4. ts07 테이블 스페이스를 shutdown immediate(백업 x)
#5. os에서 ts07.dbf를 삭제(백업본 없이 삭제)
#6. startup <------mount에서 멈춤
#7. 복구해야할 파일 조회
#8. ts07.dbf를 위한 빈껍데기파일을 생성
#9. 복구해야할 파일을 조회
#10. 일단 DB를 OPEN시키기 위해서 문제가 된 해당 데이터 파일을 offline 시킨다
#11. open 으로 DB를 올린다
#12. ts07 테이블 스페이스를 recover
#13. 복구된 data file을 online
#14. scott유저에서 emp07 테이블이 조회되는지 확인
◆ 실습 : 구현
#1. ts07이라는 테이블 스페이스를 생성
create tablespace ts07 datafile '/u01/app/oracle/oradata/Ouh/ts07.dbf' size 10m;
#2. scott유저로 접속해서 ts07테이블 스페이스에 emp07 테이블 생성
connect scott/tiger
create table emp07
(empno number(10),
ename varchar2(20) )
tablespace ts07;
#3. emp07테이블에 데이터를 입력하고 로그 스위치를 일으킨다(3번반복)
insert into emp07(empno,ename) valuse(1111,'aaa');
insert into emp07 values(1111,'aaa' );
insert into emp07 values(1111,'aaa');
commit;
alert system switch logfile;
#4. ts07 테이블 스페이스를 shutdown immediate(백업 x)
#5. os에서 ts07.dbf를 삭제(백업본 없이 삭제)
#6. startup <------mount에서 멈춤
#7. 복구해야할 파일 조회
select * from v$recover_file;
#8. ts07.dbf를 위한 빈껍데기파일을 생성
alter database create datafile '/u01/app/oracle/oradata/Ouh/ts07.dbf'
as '/u01/app/oracle/oradata/Ouh/ts07b.dbf';
#9. 복구해야할 파일을 조회
select * from v$recover_file;
#10. 일단 DB를 OPEN시키기 위해서 문제가 된 해당 데이터 파일을 offline 시킨다
방법1
alter database datafile '/u01/app/oracle/oradata/Ouh/ts07b.dbf' offline;
방법2
alter database datafile 14 offline;
#11. open 으로 DB를 올린다
alter database open;
#12. ts07 테이블 스페이스를 recover
recover tablespace ts07;
#13. 복구된 data file을 online --> 경로가 아닌 파일번호로도 가능
alter database datafile '/u01/app/oracle/oradata/Ouh/ts07b.dbf' online;
#14. scott유저에서 emp07 테이블이 조회되는지 확인
문제1. 테이블 스페이스 3개 생성
create tablespace ts81 datafile '/u01/app/oracle/oradata/Ouh/ts81.dbf' size 5m;
create tablespace ts82 datafile '/u01/app/oracle/oradata/Ouh/ts82.dbf' size 5m;
create tablespace ts83 datafile '/u01/app/oracle/oradata/Ouh/ts83.dbf' size 5m;
문제2. scott 유저로 접속해서 위의 테이블 스페이스 3개에 테이블을 각각 3개를 생성하시오
create table emp81
tablespace ts81
as
select * from emp;
create table emp82
tablespace ts82
as
select * from emp;
create table emp83
tablespace ts83
as
select * from emp;
문제3. 로그 스위치를 3번일으키고 체크포인트를 일으키세요
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter system checkpoint;
문제4. shutdown immediate하고 os에서 ts81.dbf와 ts82.dbf를 삭제하세요
conn /as sysdba
shutdown immediate
exit
oradata
rm ts81.dbf
rm ts82.dbf
문제5. 복구를 하고 나서 emp81과 emp82테이블이 잘조회되는지 확인하세요
startup <--mount에서 멈춤
--복구할 파일 조회
select * from v$recover_file;
--테이블생성
alter database create datafile '/u01/app/oracle/oradata/Ouh/ts81.dbf'
as '/u01/app/oracle/oradata/Ouh/ts81b.dbf';
alter database create datafile '/u01/app/oracle/oradata/Ouh/ts82.dbf'
as '/u01/app/oracle/oradata/Ouh/ts82b.dbf';
--복구해야할 파일을 조회
select * from v$recover_file;
alter database datafile '/u01/app/oracle/oradata/Ouh/ts81b.dbf' offline;
alter database datafile '/u01/app/oracle/oradata/Ouh/ts82b.dbf' offline;
-- open 으로 DB를 올린다
alter database open;
-- recover 시켜주기
recover tablespace ts81;
recover tablespace ts82;
--복구된 data file을 online
alter database datafile '/u01/app/oracle/oradata/Ouh/ts81b.dbf' online;
alter database datafile '/u01/app/oracle/oradata/Ouh/ts82b.dbf' online;
'백업과 복구 > 백업과 복구(Rman)' 카테고리의 다른 글
36. Rman을 사용했을 때 백업본이 없을 때 복구방법 (0) | 2024.04.23 |
---|---|
34.Rman을 사용해서 cancel base 불완전 복구하기 (0) | 2024.04.15 |
33.Rman을 사용해서 time base 불완전 복구하기 (0) | 2024.04.15 |
32.파라미터 파일이 손상되었을때 Rman으로 복구 (0) | 2024.04.15 |
Tip. Rman으로 공간확보하기 (0) | 2024.04.15 |