Database Fail의 여섯가지 유형
1. Statement Failure
- SQL구문이 정상적으로 실행되지 않고 오류가 발생한 경우.
- 원인: 문법오류, 오타, 권한부족, 저장공간 부족 등
- 해결: SQL구문 재작성
2. User Process Failure
- 데이터베이스에 접속학 유저가 비정상적으로 접속을 끊은 경우.
- 원인: 유저가 강제로 접속을 끊음, User Client PC 다운, DBA의해 kill당함
- 해결: 유저 재접속 ( 단, PMON이 트랜잭션 rollback 및 Lock 해제를 자동으로 진행한다.)
3. Network Failure
- 데이터베이스는 정상이지만 접속이 안되는 경우.
- 원인: 리스너가 꺼져있음, 네트워크 장애
- 해결: 리스터 켬, 네트워크 장애 해결
4. User Error
- 데이테이스에 발생시킨 SQL구문은 정상적이지만, 잘못된 작업인 경우.
- 원인: 잘못된 update 수행, 실수로 테이블 삭제한 경우 등
- 해결: - 트랜잭션 진행중 -> rollback
- 트랜잭션 종료후 -> 반대의 작업을 수행
- 테이블 삭제 -> flashback으로 되살림
5. Instance Failure
- 데이터베이스가 비정상적으로 종료된 경우.
- 원인: DBA가 abort로 종료됨, PC 다운, 정전, 인스턴스를 구성하는 필수요소에 문제발생 등
- 해결: 데이터베이스를 다시 켜면 됨 ( 재시작시 SMON이 DB동기화를 자동으로 맞춰준다.)
6. Media Failure
- 데이터를 구성하는 필수 물리적인 파일(Datafile, Controlfile, Redologfile) 이 손실된 경우.
- 원인: 운영체제에서 데이터베이스 관련 파일 삭제하는 경우 등
- 해결: - Datafile -> 백업파일을 사용해서 복구
- Controlfile, Redologfile -> 다중화된 멤버를 사용해서 복구
Controlfile 다중화 절차
1. 데이터베이스 추가
ALTER SYSTEM SET control_files =
'경로/경로/경로.../xxxxx.ctl'
'새경로/경로/경로.../xxxxx.ctl' scope = spfile;
2. 데이터베이스 종료
SHUT IMMEDIATE
3. OS에 추가
SQL> !
$] cd /u01/app/oracle/oradata/ORCL/controlfile
$] cp o1_mf_fwvn95xm_.ctl /home/oracle/control03.ctl
$] cd /home/oracle
$] ls => control03.ctl 있는거 확인!
$] exit => 다시 sql 접속
4. 데이터베이스 시작
SQL> startup => error ! (nomount O, mount X)
SQL> show parameter control_files => 오타 확인!
SQL> alter system set control_files = ..... (1번 다시)
SQL> shut immediate
SQL> startup
'개발자 양성과정 필기노트 > DB | ORACLE' 카테고리의 다른 글
다중행 비교 연산자 (0) | 2021.11.29 |
---|---|
DB 필수 물리적 파일 다중화 / 데이터파일 손실시 복구하기 (0) | 2021.11.15 |
Data Dictionary (0) | 2021.10.12 |
VIEW / SEQUENCE (0) | 2021.10.06 |
데이터 삭제 조작어 (0) | 2021.09.29 |
댓글