5. 오라클의 기동과 정지

Kyu·2023년 3월 7일
0

기동과 정지 왜 배워야 하나?

  • 내부 구조를 이해하는 데 도움이 됨
  • 기동할때 어떤 파일을 어떻게 사용하는지, 의존 관계가 어떻게 되어있는지.

데이터베이스의 기동과 정지는 데이터베이스 관리자나 개발자가 수행해야 할 일 중 하나이며, 이를 정확하게 수행하지 않으면 데이터 손상이 발생할 수 있다.
따라서 데이터베이스를 운영하거나 개발하는데 있어서 데이터베이스의 기동과 정지 방법을 이해하고, 안전하게 수행할 수 있어야 한다.

상태

  • 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 로그 파일 변경된 기록을 통해 재기동시에 "인스턴스 복구" 시행
profile
TIL 남기는 공간입니다

0개의 댓글