DB0-3주차 [Oracle Study]

Oracle을 알기 위해 주최 및 진행하고 있습니다 🙂
스터디의 3주차 정리입니다. (스터디는 초보자를 위한 Oracle 12c DBA 편 도서를 기반으로 진행되었습니다.)

오라클 시작 단계: 종료(shutdown)→노마운트(nomount)→마운트(mount)→오픈(open)

종료 단계는 시작 단계의 역순입니다.

단계별 상태

  • 종료: 데이터베이스에 대한 엑세스를 수행할 수 없는 상태
  • 노마운트: 파라메터 파일 읽기, SGA 할당, alertSID.log 파일과 Trace 파일 시작 및 필요 백그라운드 프로세스를 기동시킨다.
    • 가능한 작업
      • 컨트롤 파일 재생성
  • 마운트: 컨트롤 파일은 읽은 후 데이터 파일 및 리두 로그 파일을 인지 한다.
    • 실제 파일의 존재는 확인을 하지 않은 상태이기 때문에 해당 파일에 문제가 있어도 마운트까지는 문제가 없다 그래서 복구 등의 작업은 마운트 단계에서 수행함
    • 각능한 작업
      • 데이터 파일 이름/위치 변경(ORACLE 12c부터 온라인 작업 가능)
      • 데이터베이스 복구
      • 아카이브 모드 적용 및 해제
  • 오픈: 온라인 데이터 파일과 온라인 리두 로그 파일의 존재 및 정합성 확인 후 엑세스 하여, 실제 DB를 사용할 수 있는 상태로 만든다.
    • 수행 업무
      • 온라인 데이터 파일 확인 (오프라인 데이터 파일은 생략)
      • 온라인 리두 로그 파일 확인
      • 언두 세그먼트를 온라인 상태로 변경 → 필요하다면, SMON을 통한 인스턴스 복구를 실행

단계별 상태 자세히

노마운트 , 마운트

1. Trace 파일 및 Alert 로그 파일 OPEN 후 모든 에러가 alertSID.log 파일에 기록된다.

      2. 파라메터 파일을 확인한다. (spfileSID.ora →spfile.ora→initSID.ora 파일 순으로 확인)

        3. 설정한 값에 따라 오라클 메모리 영역인 SGA를 할당 (SQL*PLUS에서도 확인 가능 )

        amount of physical memory on the system
        // 시스템의 물리적 메모리 양에 대한 정보를 나타냅니다.
        
        PGA_AGGREGATE_LIMIT is 2048 MB
        // PGA(Program Global Area)의 총 한계를 2048MB로 설정했습니다.
        
        PGA_AGGREGATE_TARGET is 0 MB.
        // PGA의 목표 크기가 0MB로 설정되어 있습니다. 이는 자동 PGA 관리가 비활성화되어 있음을 의미할 수 있습니다.
        
        physical memory size is 1698 MB
        // 시스템의 실제 물리적 메모리 크기가 1698MB입니다.
        
        limit based on physical memory and SGA usage is 1528 MB
        // 물리적 메모리와 SGA 사용량을 기반으로 계산된 권장 한계가 1528MB입니다.
        
        MEMORY_MAX_TARGET is 800 MB
        // 메모리의 최대 대상 크기가 800MB로 설정되어 있습니다.
        
        Using default pga_aggregate_limit of 2048 MB
        // 설정된 값 대신 기본 PGA_AGGREGATE_LIMIT 값인 2048MB를 사용하고 있습니다.

        4. 오라클 백그라운드 프로세스 시작 및 마운트

        오픈

        -온라인 데이터 파일 확인

        -컨트롤 파일에 기록된 seq# 번호와 리두 로그 파일 seq# 번호 일치하는지 확인

        -언두 세그먼트를 온라인 상태로 변경 및 초기화

        오라클 시작,종료 명령어

        startup
        startup nomount
        startup mount
        alter database mount;
        alter database open;
        
        #특정 파라메터 파일을 이용한 일반 시작 
        STARTUP pfile=/datal/pfile/initORCL.ora;
        
        #종료 상태에서 제한된 모드로 데이터베이스를 오픈하는 명령어다(관리자만 작업을 수행) 
        STARTUP RESTRICT

        일반 사용자(hr) 세션거부

        #권한을 가진 유저만이 데이터베이스에 접속가 능하다 그러나 이미 접속해 있던 유저는 계속 사용이 가능하다
        ALTER SYSTEM ENABLE RESTRICTED SESSION;
        #오픈 상태에서 제한된 모드를 해제하는 명령어이다
        ALTER SYSTEM DISABLE RESTRICTED SESSION;

        접속 가능

        STARTUP MOUNT
        #읽기전용 , DML불가 ,DQL만 가능  
        ALTER DATABASE OPEN READ ONLY;
        #종료모드    A       I          T          N
        SHUTDOWN [ABORT|IMMEDIATE|TRANSACTIONAL|NORMAL]

        종료모드

        정상종료

        • IMMEDIATE, TRANSACTIONAL, NORMAL
          1. 커밋되지 않은 변경 내용이 롤백됨
          2. 데이터베이스 버퍼 캐시가 데이터 파일에 기록됨
          3. 리소스 해제

        비정상 종료

        • SHUTDOWN ABORT
        • STARTUP FORCE – 빠른 속도로 shutdown abort를 하고 한 번에 startup까지
          1. 수정된 버퍼가 데이터 파일에 기록되지 않음
          2. 커밋되지 않은 변경 내용이 롤백되지 않음
          3. 리소스 해제
          4. 언두 세그먼트가 커밋되지 않은 변경 사항을 롤백하는 데 사용됨
          5. 온라인 리두 로그 파일을 사용하여 변경 내용이 재적용됨

        참고
        https://product.kyobobook.co.kr/detail/S000001969761
        https://garimoo.github.io/database/2018/04/17/oracle_db_instance.html
        위로 스크롤