데이터베이스

[ORACLE] 오라클 시작하기 / 종료하기

화이트해커 Luna 🌙 2022. 11. 7. 19:09
728x90
반응형

오라클 시작하기 / 종료하기

*급한분들을위한 빠른 명령어*

시작 : SQL> STARTUP 

종료 : SQL> SHUTDOWN  IMMEDIATE 

-목차-

1.오라클 시작하기
   1-1) STARTUP 시작 명령어
   1-2) STARTUP 단계별 실행 명령어
   1-3) READ ONLY 상태

2.오라클 종료하기
   2-1) SHUTDOWN 종료 명령어
   2-2) 오라클 강제종료 명령어

 

오라클 관리를위한 기초상식이면서 은근히 종종 실수하는 STARTUP과 SHUTDOWN에 대해서 정리


 

1. 오라클 시작하기

오라클은 STARTUP 명령어를 통해서 실행된다. DB를 안전하게 종료한 상태여야지 STARTUP 명령을 내릴 수 있다.

 

STARTUP 시작 명령어
SQL> STARTUP [NOMOUNT | MOUNT | OPEN [READ ONLY | READ WRITE]]

 

 - 오라클을 시작하는 명령어로, SHUTDOWN 상태에서만 사용 가능하다.
 - NOMOUNT : NOMOUNT 단계까지 오라클을 시작한다.
 - MOUNT : MOUNT 단계까지 오라클을 시작한다.
 - OPEN: OPEN 단계까지 오라클을 시작한다. (기본값)
 - READ ONLY : DB를 읽기전용으로 시작한다.
 - READ WRITE : DB를 읽기쓰기 상태로 시작한다.
 - ‘_’은 default 값을 의미한다.

 

 

  • 실제실행사진

ORACLE STARTUP

STARTUP 단계별 실행 명령어
SQL> ALTER DATABASE [ MOUNT | OPEN [ READ ONLY | READ WRITE ]];
SELECT STATUS FROM V$INSTANCE; //DB상태확인

 - DB가 SHUTDOWN 상태가 아니라 NOMOUNT나 MOUNT 상태인 경우 오라클을 더 상위 단계로 올리기 
 위해 사용한다.
 - NOMOUNT 상태의 DB를 한 번에 OPEN 상태로 올릴 수는 없다.
 - MOUNT : MOUNT 단계로 DB를 변경한다.
 - OPEN: OPEN 단계로 DB을 변경한다.
 - READ ONLY : DB를 읽기전용으로 OPEN한다.
 - READ WRITE : DB를 읽기쓰기 상태로 OPEN한다.

- DB가 SHUTDOWN 상태가 아니라 NOMOUNT나 MOUNT 상태인 경우 오라클을 더 상위 단계로 올리기 
 위해 사용한다.
 - NOMOUNT 상태의 DB를 한 번에 OPEN 상태로 올릴 수는 없다.
 - MOUNT : MOUNT 단계로 DB를 변경한다.
 - OPEN: OPEN 단계로 DB을 변경한다.
 - READ ONLY : DB를 읽기전용으로 OPEN한다.
 - READ WRITE : DB를 읽기쓰기 상태로 OPEN한다.

 

  • 실제실행사진

STARTUP 단계별 실행

 

READ ONLY 상태
SQL> STARTUP OPEN READ ONLY;
SQL> ALTER DATABASE OPEN READ ONLY;
SQL> SELECT OPEN_MODE FROM V$DATABASE;
  • STARTUP OPEN READ ONLY;
     - 종료 상태의 DB를 읽기전용으로 OPEN한다.

  • ALTER DATABASE OPEN READ ONLY;
     - MOUNT 상태의 DB를 읽기 전용으로 OPEN한다.

  • SELECT OPEN_MODE FROM V$DATABASE;
     - 데이터베이스의 상태를 조회한다.
     - READ ONLY와 READ WRITE 상태가 있다.

 

  • 실제실행사진

READONLY 모드


2.오라클 종료하기

오라클의 SHUTDOWN 명령은 오라클의 상태와 상관없이 SHUTDOWN 이라는 명령을 통해서 수행된다. 스타트의 역순으로 종료도 단계적으로 진행된다. 

 

SHUTDOWN 종료 명령어
SHUTDOWN [ IMMEDIATE | TRANSACTIONAL | NORMAL| ABORT ]

 

  • IMMEDIATE
    - 모든 transaction과 접속을 강제로 종료한다.
    . ABORT : DB의 상태와는 상관없이 메모리에서 instance를 해

  • NORMAL
    - 현재 사용 중인 모든 접속이 종료되길 기다린다.(default 값)

  • TRANSACTIONAL
    - 진행 중인 transaction은 기다려주지만 transaction이 진행 중이지 않은 세션은 강제 
    종료시킨다.

  • ABORT
    - DB의 상태와는 상관없이 메모리에서 instance를 해제한다.

  • 실제실행사진

관리자계정
일반유저계정으로 로그인

 

오라클 강제종료 명령어
SQL> ALTER SYSTEM [ENABLE | DISABLE] RESTRICTED SESSION;
SQL> SELECT LOGINS FROM V$INSTANCE;
SQL> SELECT SID, SERIAL#, USERNAME, STATUS FROM V$SESSION;
SQL> ALTER SYSTEM KILL SESSION <'SID번호, SERIAL번호'>;
SQL> SELECT * FROM DBA_SYS_PRIVS;
SQL> GRANT <시스템 권한> TO <user명>; 
SQL> REVOKE <시스템 권한> FROM <user명>;
  • ALTER SYSTEM [ENABLE | DISABLE] RESTRICTED SESSION;
     - 제한 모드 상태를 활성화/비활성화 한다.

  • SELECT LOGINS FROM V$INSTANCE;
     - 제한모드의 활성화 상태를 조회한다.
     - restriced는 제한모드 상태, allowed는 일반 모드 상태를 나타낸다.

  •  SELECT SID, SERIAL#, USERNAME, STATUS FROM V$SESSION;
     - DB에 접속 중인 세션을 확인한다.
     - 각 세션은 SID와 SERIAL#를 이용 구별된다.

  •  ALTER SYSTEM KILL SESSION <'SID번호, SERIAL번호'>;
     - 지정한 세션을 강제 종료한다.

  •  SELECT * FROM DBA_SYS_PRIVS;
     - 사용자나 role에 부여된 시스템 권한을 조회한다. 

  •  GRANT <시스템 권한> TO <user명>; 
     - 권한을 할당한다.

  •  REVOKE <시스템 권한> FROM <user명>; 
     - 권한을 해제한다.
  • 실제실행사진

 


 

728x90
반응형