기동과 정지 왜 배워야 하나?
- 내부 구조를 이해하는 데 도움이 됨
- 기동할때 어떤 파일을 어떻게 사용하는지, 의존 관계가 어떻게 되어있는지.
데이터베이스의 기동과 정지는 데이터베이스 관리자나 개발자가 수행해야 할 일 중 하나이며, 이를 정확하게 수행하지 않으면 데이터 손상이 발생할 수 있다.
따라서 데이터베이스를 운영하거나 개발하는데 있어서 데이터베이스의 기동과 정지 방법을 이해하고, 안전하게 수행할 수 있어야 한다.
상태
- OPEN, MOUNT, NOMOUNT, SHUTDOWN 상태로 존재 - 그림 5.1

오라클의 기동
- 백그라운드 프로세스의 생성과 공유 메모리의 확보
- 컨트롤 파일을 본다
- 컨트롤 파일이란 디비 구성정보가 적혀있고, 디비 파일 경로등을 알 수 있다
- SQL 처리 상태로 만드는 것
- 데이터 파일이나 REDO 로그 파일을 열어 오라클 내부적으로 사용하는 정보와 비교하여 문제가 있는지 확인
인스턴스, 데이터베이스, 그리그 주요 파일의 구성
- 인스턴스: 백그라운드 프로세스 + 공유 메모리 -> 데이터베이스를 관리하는 것이고, 디비와는 다르다 그림 5.2
- 일반적으로 인스턴스와 디비는 일대일 대응하지만 RAC(Real Application Clusters) 를 사용하는 경우에는 일대일대응이 아니기 때문에 명확히 구별 필요
RAC란? 인스턴스로 구성된 서버가 여러개임.


기동처리 흐름과 내부 동작
1. 기동 정지 상태에서 NOMOUNT 로 전환
SQL*PLUS
라는 도구를 통해 오라클 명령어 입력 가능.
- 일반적으로
startup
치면 기동 끝.
- Q) 아마 NOMOUNT -> MOUNT -> OPEN ? -> A) 87p에 그렇다고 나옴
- 대신
startup nomount
를 입력해보자. - 리스트5.1
- ORACLE_HOME, ORACLE_SID 환경 변수 토대로 초기화 파라미터 파일을 찾아옴.
- 이 파일에서 읽어온 파라미터 토대로 공유 메모리 확보 및 백그라운드 프로세스 생성 - 리스트 5.2
2. NOMOUNT 에서 MOUNT 로 전환
alter database mount
- 초기화 파라미터에 기술된 컨트롤 파일의 경로를 사용해 컨트롤 파일을 열어 내용을 읽어오는 것으로 REDO 로그 파일이나 데이터 파일의 위치를 파악 해야함
- 컨트롤 파일을 읽어와서 디비에
Database alteterd
라는 문구 확인 가능
Q) 초기화 파라미터란 앞전에서 배웠떤 여러값 셋팅을 위한 그 변수들을 말하는 것?
me A) 그런것 같음. NOMOUNT 로 전환하면서 ORACLE_HOME, ORACLE_SID 환경 변수 토대로 초기화 파라미터 파일을 가지고 오고 컨트롤 파일을 가져온다.
Q) 그럼 컨트롤 파일이란 무엇?
90p 에 나옴
3. MOUNT 에서 OPEN 으로 전환
alter database open
- 데이터 파일을 열어 간단한 점검 후 백그라운드 프로세스 기동
- startup 과 비교해보자. - 리스트5.5
결론은 초기화 파라미터 파일 -> 컨트롤 파일 -> 데이터 파일순
정말 그런지 확인은 88,89p 참고할것
정리
- 초기화 파라미터를 읽어 백그라운드 프로세스 생성 -> 공유 메모리를 확보 (NOMOUNT)
- 초기화 파라미터 파일에 입력된 컨트롤 파일 위치 확인 -> 컨트롤 파일에서 디비 구성하는 각종 파일 위치 확인 (MOUNT)
- 위치를 알아낼뿐 파이링 없어도 에러가 발생하지 않음
- 데이터파일이나 REDO 로그 파일에 문제가 없다면 OPEN 으로 전환, 즉 SQL 실행할 수 있는 상태
- 어떤 파일이 손상되었다면 그 전 과정에서 생성해주어야함, 예를 들어 컨트롤 파일이 손상되었다면 NOMOUNT 상태에서 생성, 데이터파일에 문제가있따면 MOUNT 에서 복구작업 (95p)
- 초기화 파라미터 훑어보기 - 93p
오라클의 정지
- 모든 오라클 클라이언트 접속이 종료된 후 업무를 종료
- 기동 작업의 역순 + 버퍼 캐시에 분산된 데이터 정리
- 백그라운드 프로세스는 바로 데이터를 저장하지 않기 때문에 저장되지 않은게 있다면 저장함
shutdown
-> 일반적인 종료, 오라클 클라이언트가 접속을 끊어주지 않거나 등등의 이유로 여러 옵션이 있음
- 참고로 abort 옵션은 데이터를 저장하지 않고 종료하지만, REDO 로그 파일 변경된 기록을 통해 재기동시에 "인스턴스 복구" 시행