Control File
- 데이터베이스의 구조와 상태에 대한 정보를 저장
데이터베이스가 제대로 동작하려면, 반드시 필요하며,
데이터베이스 시작과 운영에 중요한 역할을 한다.
1. 컨트롤 파일의 역할
1) 데이터베이스 구성 정보 관리
- 데이터베이스의 물리적 구조를 정의, 관리
- 데이터 파일, 리두 로그 파일, 테이블 스페이스 정보 등 포함
2) 데이터베이스 식별 정보 저장
- 데이터베이스 이름과 생성 시점 같은 식별 정보를 저장
3) 시스템 변경 번호(SCN) 관리
- 데이터베이스 트랜잭션의 일관성 유지 위해, 시스테 변경 번호(SCN)을 기록한다.
- SCN은 데이터베이스가 복구될 때나, 백업/복원 작업에 중요한 역할을 한다.
4) 리두로그 및 체크포인트 정보
- 리두 로그 파일의 위치와 이름, 각 로그 파일의 상태, 마지막으로 기록된 체크포인트 정보를 저장한다.
- 체크포인트는 데이터베이스가 변경된 내용을 디스크에 기록하는 시점을 나타낸다.
5) 아카이브 정보
- DB가 아카이브 모드로 설정된 경우, 아카이브 로그에 대한 정보를 기록한다.
- 이 정보는 DB 복구에 중요한 역할을 한다.
2. 컨트롤 파일에 포함된 정보
- 데이터베이스 이름과 생성 날짜
- 데이터 파일과 리두 로그 파일의 위치 및 이름
- 시스템 변경 번호 (SCN)
- 체크포인트 정보
- 리두 로그 파일의 상태
- 테이블 스페이스 정보
- 아카이브 로그 정보
3. 컨트롤 파일의 복수 저장
- 오라클에서는 데이터베이스 안정성을 위해, 컨트롤 파일을 여러 복사본으로 관리하는 것을 권장
- 한 파일에 문제가 생기더라도, 다른 복사본을 이용해 데이터베이스를 복구할 수 있다.
- 컨트롤 파일의 위치: 초기화 파라미터 파일에 정의된
control_files 파라미터에 의해 설정된다.
4. 컨트롤 파일 손상 시의 영향
5. 컨트롤 파일 관리
컨트롤 파일 백업
- 컨트롤 파일은 데이터베이스를 백업할 때, 같이 백업되어야 한다.
- RMAN(recovery manager)을 사용하면, 컨트롤 파일을 자동으로 백업할 수 있다.
복구
- 컨트롤 파일이 손상된 경우, 백업된 컨트롤 파일을 이용해 복구하거나, 새롭게 생성할 수 있다.
자동 관리
- 오라클은 데이터베이스가 변경될 때마다 컨트롤 파일을 자동으로 업데이트한다.
- DBA는 수동으로 컨트롤 파일을 수정할 필요가 x
6. 컨트롤 파일 보는 법
SQL > SELECT name FROM v$controlfile;
7. 컨트롤 파일을 생성하거나, 복구하는 방법
CREATE CONTROLFILE REUSE DATABASE mydb RESETLOGS NOARCHIVELOG;
8. 컨트롤 파일과 관련된 주요 파라미터
control_files : 컨트롤 파일의 경로와 이름을 지정하는 파라미터.