2020. 5. 25.

[Oracle] 관리자 1장 실습 startup과 shutdown


실습 1.1 오라클 시작과 종료 ( )

사용 명령어

startup [ nomount | mount | open [read only | read write]]
  • 오라클을 시작한다. shutdown 상태에서만 사용가능하다.
  • nomount : nomount 단계까지 오라클을 시작한다.
  • mount : mount 단계까지 오라클을 시작한다.
  • open: open 단계까지 오라클을 시작한다. (기본값)
  • read only : DB 읽기전용으로 시작한다.
  • read write : DB 읽기쓰기 상태로 시작한다.
  • '-' default 값을 의미한다.

shutdown [ immediate | transactional | normal | abort ]
  • 오라클을 종료한다
-----------------------------------------------------------------

sqlplus / as sysdba
start up
shutdown immediate


실습 1.2 단계별 startup 과정()

사용 명령어

alter database [ mount | open [read only | read write ]];
  • DB shutdown 상태가 아니라 nomount mount 상태인 경우 오라클을 상위 단계로 올리기 위해 사용한다.
  • NOMOUNT 상태의 DB 번에 OPEN 상태로 올릴 수는 없다.
  • MOUNT : mount 단계로 DB 변경한다.
  • open : open 단계로 DB 변경한다.
  • read only : db 읽기전용으로 open한다.
  • read write : DB 읽기쓰기 상태로 open한다.

startup nomount
select status from v$instance;


# 인스턴트의 상태가 시작상태

alter database mount;
select status from v$instance;


# 인스턴트의 상태가 마운트 상태

alter database open;
select status from v$instance;


# 인스턴트의 상태가 오픈된 상태

실습 1.3 shutdown 옵션의 이해 ()

오라클을 shutdonw 명령은 startup 명령과는 달리 오라클이 상태와 상관없이 shutdown  이라는 명령을 통해서 수행된다. 만일 사용자가 open 상태의 db mount 상태로 변경하기 위해서는 일단 DB shutdown 다음 mount 상태까지 startup해야 된다.

shutdown 종료 옵션

  • nomal : 현재 사용 중인 모든 접속이 종료되기 기다린다.(defualt )
  • transactional : 진행 중인 transaction 기다려주지만 transaction 진행 중이지 않은 세션은 강제 종료시킨다.
  • immediate : 모든 transaction 접속을 강제로 종료한다.
  • abort : DB 상태와는 상관없이 메모리에서 instance 해제한다.

사용 명령어

shutdown [ immediate | transcational | normal | abort ]
  • 오라클을 종료한다

세션 1 dba 터미널
sqlplus / as sysdba
shutdown immediate
exit

sqlplus / as sysdba
startup

세션 2 일반 사용자 터미널
sqlplus kst11/1234@kst11

세션 1 dba 터미널
shutdown normal


# 이렇게 멈춰 버린다 지금은 kst11 사용자가 사용중이기에 그런것이다.

shutdown transactional


# 현재 사용자가 트랜잭션을 사용하지 않았으므로 바로 시스템이 꺼진다.

세션 2 일반 사용자 터미널
select * from tab;


# 이미 내려간 디비의 상태라서 결과가 나오지 않는다.

세션 1 dba 터미널
startup

세션 2 일반 사용자 터미널
sqlplus kst11/1234@kst11
desc dept;


update dept set loc = 'LA' where dno = 30;


# 세션 2 일반 사용자가 업데이틀 하여 트랜잭션을 잡고 있다. 커밋이나 롤백을 해주지 않으면 트랜잭션은 변하지 않는다.

세션 1 dba 터미널
shutdown transactional


# 기다려도 계속 대기중이다. 사용자가 쓰고 있는 트랜잭션이 종료되어야 한다.

세션 3 일반 사용자 터미널
sqlplus st/asdf1234@kst11


# 종료된 세션은 로그인 없다.

세션 2 일반 사용자 터미널
rollback;

세션 1 dab 터미널

# 롤백과 동시에 DBMS 종료되었다.

세션 2 
select * from tab;


# DB 내려가면서 사용할수 없다는 것이다.

connect st/asdf1234



실습 1.4 readonly 상태의 이해와 실습

사용 명령어

startup open read only;
  • 종료 상태의 DB 읽기전용으로 open한다.

alter database open read only;
  • mount 상태의 DB 읽기 전용으로 open한다.

select open_mode from V$DATABASE;
  • 데이터베이스의 상태를 조회한다.
  • READ ONLY READ WRITE 상태가 있다.

세션 1 dba 터미널

sqlplus / as sysdba

shutdown immediate
startup READ ONLY;
startup mount;
alter database open read only;
select open_mode from V$DATABASE;


# read only startup 옵션이 아니다
# 마운트 상태로 시작하여
# 읽기전용으로 데이터를 오픈하였다.
# 데이터의 상태는 리드 온리 상태

세션 2 일반 사용자 터미널

 sqlplus kst11/1234@kst11
select count(*) from emp;
delete from emp;


# 현재 read-only DB 오픈하였기 떄문에 kst11 emp 테이블을 읽을 있지만 지을수는 없다.

세션 1 dba 터미널
shutdwon immediate

댓글 없음:

댓글 쓰기