반응형

오라클 시작과 종료 , 단계별 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(일반사용자)
![]() $ 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으로 적용됨 |
'Infra & Security Eng > Database Engineering' 카테고리의 다른 글
| 컨츄롤 파일 파일다중화, 리두로그파일 로그 스위치와 체크포인트, 리두 로그 그룹 추가와 삭제, 리두 로그 멤버 추가와 삭제, 파일 재배치 실습 (0) | 2026.04.08 |
|---|---|
| 데이터 딕셔너리 , 동적 성능 테이블 , 제어 파일 유지 관리, 테이블 스페이스 내용 정리 (0) | 2026.04.08 |
| Oracle 데이터베이스를 시작하는 작업 (0) | 2026.04.07 |
| 오라클(Oracle) DB 구조 완전 정리 — 인스턴스, 데이터베이스, 백그라운드 프로세스 (0) | 2026.04.06 |
| Rocky Linux에 Oracle 19c 설치하기 (+ 명령어 설명) (0) | 2026.04.06 |


























