데이터베이스 설계와 구축(개정판) (2009년)
데이터베이스 기동과 종료 0 0 39,440

by 구루비스터디 SHUTDOWN NOMOUNT MOUNT [2019.07.14]


데이터베이스의 기동

  • SHUTDOWN
  • NOMOUNT - 1단계 : 데이터베이스 인스턴스 기동
  • MOUNT - 2단계 : 인스턴스를 위한 컨트롤 파일 열림(OPEN)
  • OPEN - 3단계 : 컨트롤 파일에 기술된 모든 파일 열림(OPEN) |


(1) 1단계 : 데이터베이스 NOMOUNT 단계

  • 데이터베이스의 파라미터 파일을 읽는다.
  • TRACE 파일 및 ALERT 파일을 연다. 생성 정보를 alert(SID).log 파일에 기록한다.
  • 오라클 데이터베이스에서 이용되는 공유 메모리 구조인 SGA(System Global Area)를 할당한다.
  • 백그라운드 프로세스를 생성한다.
  • 데이터베이스는 생성된 메모리 구조화 프로세스들과 아직 연결되어 있지 않다.


(2) 2단계 : 데이터베이스 MOUNT 단계

  • 데이터베이스를 구성하는 정보가 모두 있는 컨트롤 파일의 정보를 읽어서 디스크에 데이터파일이나 리두로그 파일 등이 올바로 존재하는지 또한 각 파일이 현재 사용가능한지를 점검한다.
  • 데이터베이스의 백업이나 복구 시점에 많이 이용된다. 만약 데이터파일이나 로그 파일에 문제가 발생하여 데이터베이스가 시작되지 않는다면 이 단게에서 복구 작업을 수행한 이후에 데이터베이스를 기동한다.
  • 데이터 파일명 변경, 리두로그 파일 추가,삭제,이름변경, 아카이브 모드 옵션의 변경, 전체 데이터베이스의 복구, 백업하여 데이터베이스 재생성, 불완전 데이터베이스 복구 등이 가능하다.
  • MOUNT 단계에서는 일반 사용자가 데이터베이스에 접속할수 없다.


(3) 3단계:데이터베이스 OPEN 단계

  • 컨트롤 파일에 기술된 모든 데이터 파일 및 리두로그 파일 등을 연다.
  • 일반 사용자가 데이터베이스를 이용할 수 있는 상태다.
  • 만약 종료 시점에 테이블 스페이스가 오프라인이었다면 데이터베이스를 기동하여도 해당 테이블스페이스는 오프라인 상태다.
  • 인스턴스가 데이터베이스를 연 이후에 하나 이상의 롤백 세그먼트를 확보한다.


윈도우 NT 기반에서 데이터베이스 기동 방법

  • 제어판의 서비스를 이용하여 오라클 서비스를 기동


유닉스 기반에서 데이터베이스 기동방법

1) 먼저 유닉스에서 오라클을 기동할 수 있는 구너한이 있는 사용자 ID 로 로그인한다.
  • 대개 oracle User


2) 현재 오라클 SID 를 확인 한다.
  • env |grep ORACLE_SID
  • ORACLE_SID=ARTDOM


3) SVRMGRL 를 실행하여 오라클을 기동시킨다.
  • VLDB: 9i 이후엔 svrmgrl ( oracle server manager) 가 지원되지 않는다.

    sqlplus ' /as sysdba'
    SQL*Plus: Release 10.1.0.4.0 - Production on Tue Jun 24 16:22:44 2008
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.

    Connected to an idle instance.

    SQL>startup
    ORACLE instance started.

    Total System Global Area 1174405120 bytes
    Fixed Size                  1329584 bytes
    Variable Size             316913232 bytes
    Database Buffers          855638016 bytes
    Redo Buffers                 524288 bytes
    Database mounted.
    Database opened.
    SQL>


4) sqlplus 를 통한 접속 테스트

    sqlplus scott/manager

    SQL*Plus: Release 10.1.0.4.0 - Production on Tue Jun 24 16:24:36 2008
    
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.1.0.4.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining options
    
    scott@ARTDOM>select * from tab ;
    
    TNAME                          TABTYPE  CLUSTERID
    ------------------------------ ------- ----------
    DEPT                           TABLE
    EMP                            TABLE
    BONUS                          TABLE
    SALGRADE                       TABLE
    PLAN_TABLE                     TABLE
    CHAINED_ROWS                   TABLE
    CHECK_NEXT                     TABLE
    BIG_TABLE                      TABLE
    CHECK_PART                     TABLE
    CHECK_TRAN                     TABLE
    C_1                            TABLE
    CHECK_RENAME_FILES             TABLE
    CHECK_PART2                    TABLE
    CHECK_PART3                    TABLE
    DEPT_SAL                       TABLE
    MV_DEPT                        TABLE
    CHECK_DDL                      TABLE
    SCOTT_DBA_SEGMENTS             TABLE
    SCOTT_TABLES                   TABLE
    CHECK_VAR                      TABLE
    CHECK_ORANGE                   TABLE
    BIGEMP                         TABLE
    
    22 rows selected.


5) 오라클 필수 백그라운드 프로세스 확인을 통한 확인
  • ps -ef|grep ora_ |grep sm
  • oracle 442430 1 0 16:22:46 - 0:00 ora_smon_ARTDOM


데이터베이스 종료

(1) SHUTDOWN NORMAL
  • 정상적으로 데이터베이스를 종료하는 방법으로 데이터베이스에 연결된 모든 사용자의 세션이 종료될 때까지 기다린다.
  • 사용자 세션이 하나라도 존재하면 Down 이 진행 되지 않는다.
  • 새로운 사용자의 연결은 허용하지 않는다.
  • 다음 데이터베이스를 기동할 때 별도의 복구 작업이 필요하지 않다.


(2) SHUTDOWN IMMEDIATE
  • 데이터베이스를 관리할 때 가장 많이 사용하는 정지 옵션이다.
  • 현재 커밋되지 않은 SQL 문장을 롤백시킨다.
  • 현재 데이터베이스에 접속한 사용자가 접속을 해제하기를 기다리지 않는다.
  • 만약 데이터베이스 롤백 정보가 많다면 데이버테이스를 정지하는 데 시간이 많이 소요된다.
  • 잘못된 애플리케이션에 의해 부득이 데이터베이스를 정지시켜야 하는 경우에 사용된다.
  • 다음 데이버테이스를 기동할 때 별도의 복구 작업이 필요하지 않다.
  • 다만 해당 시점에 작업하였던 부분이 롤백되었으면 다시 실행하도록 해야 한다.


(3) SHUTDOWN TRANSACTION
  • 데이터베이스를 종료하려면 현재 작업중인 모든 트랜잭션이 정상적으로 수행되어 종료될때까지 기다린다.
  • 접속 세션의 commit/rollback 까지 대기 후 Down
  • 모든 작업이 정상적으로 수행되었으므로 별도로 작업해야 할 부분이 필요하지 않다.
  • 다음 데이터베시으를 기동할 때 별도의 복구 작업이 필요하지 않다.


(4) SHUTDOWN ABORT
  • 트랜잭션에 대해 정리되지않으므로 일반적으로 이용하지 않는다.
  • 현재 연결되 모든 세션을 강제로 종료시킨다.
  • 커밋되지 않은 트랜잭션은 롤백되지 않는다.
  • 백업과 복구 작업이 필요한 경우에 사용한다.
  • 다음 데이터베이스를 기동할 때 별도의 복구 작업이 필요하다.
"구루비 데이터베이스 스터디모임" 에서 2009년에 "데이터베이스 설계와 구축(개정판)" 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/4170

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입