1. 테이블스페이스 및 위치 조회하기
select tablespace_name, file_name from dba_data_files;
2. 테이블스페이스 생성
create tablespace insa_tbs datafile '/u01/app/oracle/oradata/ora11g/insa_tbs01.dbf' size 10m;
3. SCN 및 리두 정보확인
=> 리두정보확인
select * from v$log;
#) current_scn 번호 확인
select current_scn from v$database;
#) data file 확인
=> insa_tbs TBS는 새로 만든 시점에 CKTP가 발생하고 이후에 CKPT가 발생하지 않았기 때문에 SCN 다르다.
select name, checkpoint_change# from v$datafile;
4. Table 생성해보기 (조금 전에 만들었던 TBS에 table만들기(segment생성))
CREATE TABLE hr.new(id number) tablespace insa_tbs;
INSERT INTO hr.new(id) VALUES(1);
COMMIT;
SELECT * FROM hr.new;
=> 현재 insa_tbs는 백업받지 않은 상태
=> COMMIT했으니 LGWR는 REDO에 REDO ENTRY작성했음 ★★
5. <<sys session>>
select * from v$log;
- sequence 번호 확인
2) 로그스위치 강제로 발생시키기 4번
- sequence 번호 변화!
alter system switch logfile;
3) sequence 번호 확인
select * from v$log;
6. 장애유발
1) TBS 삭제
! rm /u01/app/oracle/oradata/ora11g/insa_tbs01.dbf
2) TBS 조회 및 전체 조회
! ls /u01/app/oracle/oradata/ora11g/insa_tbs01.dbf
! ls /u01/app/oracle/oradata/ora11g/
3) 정상적인 DB 종료
=> ORA-03113: 해당 오류는 oracle DB 연결이 끊어졌음을 나타내는 오류이다.
shutdown immediate
4) DB 올리기
=> ORA-24324 : Oracle call Interface 에서 발생하는 오류이다.
startup
7. 해결방안
1) DB에 접속불가 문제 해결, OS 로 나오기
exit
2) 로그인
[oracle@oracle noarch]$ sqlplus /nolog
: sqlplus /nolog 는 인증 없이 실행하는 명령어로, 로그인하지 않고 논리적인 연결만 설정하겠다는 의미
#) sys 계정으로 다시 로그인 후 DB 올리기
conn / as sysdba
startup
- 오류 발생: 'insa_tbs01.dbf' 삭제했기 때문에 DB는 mount 단계까지만 올린다.
3) DB 상태 확인
select status from v$instance;
4) TBS상태조회
=> 'insa_tbs01.tbs' 상태 확인
select name, status from v$datafile;
5) 얼른 해당 TBS를 OFFLINE으로 바꾸기 ★
ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/ora11g/insa_tbs01.dbf' OFFLINE DROP;
6) 변경후 TBS 상태 조회
=> 'insa_tbs01.tbs' 상태 확인
select name, status from v$datafile;
7) 복구작업
- 빈 파일(껍데기) 만드는 작업 ★
alter database create datafile '/u01/app/oracle/oradata/ora11g/insa_tbs01.dbf';
8) 빈 파일(껍데기) 만들어졌는지 확인
! ls /u01/app/oracle/oradata/ora11g/
! ls /u01/app/oracle/oradata/ora11g/insa_tbs01.dbf
9) 빈 파일(껍데기) 에 redo를 적용해야한다. 하지만 redo log file이 없는상태 ★
alter database recover datafile '/u01/app/oracle/oradata/ora11g/insa_tbs01.dbf';
10 ) recover 시도해서 process가 엉킴
★ db내렸다 올리기
ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/ora11g/insa_tbs01.dbf' OFFLINE DROP;
11) db내렸다 올리기 ★★
=> 비정상적인 종료
shutdown abort
startup
12) 테이블스페이스 삭제하기
DROP TABLESPACE insa_tbs including contents and datafiles;
13) SCN 및 TBS 조회하기
select current_scn from v$database;
#) data file 확인=> checkpoint 확인
select name, checkpoint_change# from v$datafile;
=> 상태 확인
select name, status from v$datafile;
14) 복구 완료
'Backup > Noarchive Log Mode' 카테고리의 다른 글
SYSTEM TABLESPACE에 속한 데이터 파일 손상되었을 경우 (backup 이후에 REDO 가 있을 경우) (0) | 2024.01.10 |
---|---|
Noarchive Log Mode backup 기본 (1) | 2024.01.09 |
BackUp 받지 않는 Tablespace 손상되었을 경우 ⓑ (0) | 2024.01.09 |
BackUp 받지 않는 Tablespace 손상되었을 경우 ⓐ (0) | 2024.01.09 |
특정한 데이터 파일 손상되었을 경우(단, backup 이후에 redo 정보가 없을 경우) (1) | 2024.01.09 |