본문 바로가기
Infra & Security Eng/Database Engineering

오라클 시작과 종료 , 단계별 STARTUP 과정, SHUTDOWN 옵션 이해, Spfile 환경에서 파라미터 확인과 수정, Spfile 운영 환경에서 scope 설정에 따른 parameter값의 변화 실습

by 엔지니어 E 2026. 4. 7.
반응형

오라클 시작과 종료 , 단계별 STARTUP 과정

오라클 시작과 종료 
$ sqlplus / as sysdba
$ STARTUP - 시작
$ SHUTDOWN IMMEDIATE - 종료

실습 단계별 STARTUP 과정

> SELECT STATUS FROM V$INSTANCE; - STATUS 칼럼의 값은 DB의 상태를 나타냄

SHUTDOWN 옵션의 이해 

터미널 1(dba)


# su - ora19c
$ sqlplus / as sysdba - 최고 관리자로 접속 

> SHUTDOWN IMMEDIATE
> EXIT
$ sqlplus / as sysdba - 최고 관리자로 재접속 
> startup

> ALTER USER hr
> IDENTIFIED BY hr
> ACCOUNT unlock; - hr 계정의 비밀번호를 hr로 설정하고 잠금 해제

 

터미널 2(일반사용자)

# su -ora19c
$ sqlplus hr/hr
$ exit

 

터미널 1(dba)


[SHUTDOWN NORMAL 명령어 결과]


> SHUTDOWN NORMAL 혹은 SHUTDOWN TRANSACTIONAL 하면 db 접속이 끊어짐을 확인 할 수 있음
* 터미널 2에서 exit 명령어를 해야 NORMAL 혹은 TRANSACTIONAL 명령어 실행이 가능함

여기까지 실습은 터미널2가 꺼진 상태에서 터미널 1에서 명령어 SHUTDOWN NORMAL 과 SHUTDOWN TRANSACTIONAL이 각각 어떻게 작동하는지 보기 위함임


터미널 2(hr)

터미널 1 이 꺼진 상태에서 실습해보면

> SELECT * FROM tab;



실습결과: ERROR 가 나타남. 터미널 1 (DB) 이 꺼져있으면 일반 사용자도 아예 접속 자체가 안된다

여기까지 실습은 터미널1이 꺼진 상태에서 터미널2가 접속이 되는지 안되는지 확인해보기 위한 실습임


터미널 1(dba), 터미널 2(hr)

상황: 위의 실습으로 두 터미널 다 접속이 끊긴 상태였음

터미널 1(dab)에서 > STARTUP 명령어로 인스턴스를 시작함


터미널2(hr)에서 로그인을 함


터미널 2(hr) 에서 터미널2(hr)가 가진 employees 테이블 구조를 > DESC employees; 명령어로 확인해봄


터미널 2(hr)에서 employees 테이블 전체 107명의 급여를 20% 인상하는 > UPDATE employees SET salary = salary * 1.2; 명령어를 작성해봄 


터미널1(dba) 에서는 > SHUTDOWN TRANSACTIONAL 명령어를 입력해도 접속이 끊기지 않음
-> 터미널1 에서 친 명령어 다음에 COMMIT; 혹은 ROLLBACK; 을 하지 않았기 때문에 


터미널 2(hr) 에서 >ROLLBACK; 명령어를 입력함


터미널 1(dba) 에서 접속이 바로 끊김 

여기까지 실습은 터미널2에서 명령어를 입력한 상태에서 ROLLBACK 이나 COMMIT을 안 하면 터미널1 접속을 끊을 수 없다는 것을 알아보기 위한 실습임


Readonly 상태 이해

READ ONLY 상태 = DB에서 조회(SELECT)만 가능, 데이터 변경 불가 상태

> STARUP OPEN READ ONLY; - 종료 상태의 DB를 읽기전용으로 OPEN 함
> ALTER DATABASE OEPN READ ONLY; - MOUNT 상태의 DB를 일긱 전용으로 OPEN 함
> SELECT OPEN_MODE FROM V$DATABASE; - READ ONLY와 READ WRITE 상태가 있음

 

터미널 1(dba)


터미널1(dba) 에서 4개 명령어 진행함
> SHUTDOWN IMMEDIATE - DB 즉시 종료 
> STARTUP OPEN READ ONLY; - DB를 READ ONLY 모드로 한번에 기동
> STARTUP MOUNT; - DB를 MOUNT 단계까지만 켜는거임
> ALTER DATABASE OPEN READ ONLY;  - READ ONLY 모드로 OPEN(조회만 가능)

> SELECT open_mode FROM v$database; - 명령로 MODE 확인 가능

 

터미널 2(hr)


> exit
> sqlplus hr/hr
> SELECT count(*) FROM employees; - read only 모드에서 조회되는지 확인 


WRITE 명령어 불가함을 확인함

* 다시 READ WRITE 모드로 돌아오기 위해 SHUTDOWN IMMEDIATE, STARTUP 하면 됨

Spfile 환경에서 파라미터 확인과 수정

> ALTER SYSTEM SET <parameter 명> = <값>; - 지정한 파라미터의 값을 수정함
> SELECT NAME, VALUE FROM V$PARAMETER; - 현재 운영중인 parameter 값을 조회함
> SELECT NAME, VALUE FROM V$SPPARAMETER; - spfile에 설정된 값을 조회함 

SELECT name, value FROM v$spparameter    

  2  WHERE name LIKE '%undo%';  - undo 관련 파라미터 설정값 조회
* value: 설정한 값


SELECT name,value FROM v$parameter      

  2  WHERE name LIKE '%undo%';  - 현재 실제로 적용 중인 undo 파라미터 확인


SHOW PARAMETER undo; - undo 관련 파라미터를 한번에 간단히 조회하는 명령어



ALTER SYSTEM SET undo_retention=300; - undo 데이터를 300초(5분) 동안 보관하도록 설정 변경


SELECT name, value FROM v$spparameter

  2  WHERE name = 'undo_retention'; - 명령어로 수정한거 확인하기 


SHOW PARAMETER undo_retention; - undo_retention 현재 설정값 확인


접속 끊고, 다시 시작하여 retention 값 수정 됐는지 확인 한다

 

Spfile 운영 환경에서 scope 설정에 따른 parameter값의 변화


> ALTER SYSTEM SET undo_retention = 600 SCOPE = memory; - undo_retention을 600초로 변경하되 메모리에만 적용함


>SHOW PARAMETER undo_retention; - 값 확인함



SELECT name, value FROM v$parameter       
2  WHERE name = 'undo_retention'; - undo_retention 현재 메모리 적용값 확인함


SELECT name, value FROM v$spparameter
2  WHERE name = 'undo_retention'; - spfile(파일)에 저장된 undo_retention 값 확인함


>SHOW PARAMETER undo - 파라미터 undo 값 확인함


> ALTER SYSTEM SET undo_retention = 500 SCOPE = spfile; - undo_retention을 500으로 spfile(파일)에만 저장
* 지금 당장 메모리엔 적용 안되고 재시작 후에 500으로 적용됨