본문 바로가기
개발자 양성과정 필기노트/DB | ORACLE

Database Fail & Controlfile 다중화 절차

by jono 2021. 11. 3.

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

 

 

댓글