카테고리 없음

SQL 명령 실행, 연결(CONNECT), 시작(STARTUP)

Dong538 2021. 10. 29. 19:29

운영 체제의 터미널 명령줄에서 sqlplus /nolog 입력.

그 후 데이터베이스 시작하려면 sqlplus 내에서 커넥팅을 먼저 해야한다. CONNECT / AS SYSDBA로 연결하고 STARTUP 입력하여 데이터베이스를 시작한다. 데이터베이스를 시작(startup)한다는 것은 실제로는 인스턴스를 시작하는 것이다. 
그 후 현재 시작한(동작중인) 인스턴스를 확인하려면 다음 명령을 실행한다.  
select instance_name,status,to_char (startup_time,'dd-mon-yyyy hh24:mi:ss') from gv$instance order by instance_name;

 

- 인스턴스와 세션 비교: 인스턴스는 데이터에 액세스할 수 있도록 하기 위해 데이터베이스 서버에서 사용할 수 있어야 하는 프로세스 및 메모리로 정의된다.
데이터베이스를 시작할 때 실제로 인스턴스를 시작하는 것이다. 인스턴스를 시작하는 작업은 서버에서 여러 프로세스를 시작하고 데이터베이스 인스턴스에 대한 메모리를 할당한다. 인스턴스가 종료될 때 데이터베이스는 파일에 남아 있다.
세션은 하나 이상의 사용자가 인스턴스와 상호 작용하는 것에 해당한다.
사용자가 새 데이터베이스 세션을 시작하면 서버에서 프로세스가 시작되고, 사용자의 응용 프로그램은 인스턴스와 상호 작용하는 이 프로세스(전용 서버 프로세스라고 함)와 상호 작용한다.


SELECT 
TO_CHAR(STARTUP_TIME,'MON-DD-RR HH24:MI:SS')
AS "Inst Start Time" FROM V$INSTANCE;

 

연결(CONNECT)과 시작(STARTUP)은 별도의 작업이다. 연결이 되어야 시작할 수 있다. 또한 연결 해제(disconnect)하여도 데이터베이스는 여전히 동작(startup)중일 수 있다. 

TL;DR 데이터베이스 시작/종료의 올바른 순서는 연결(CONNECT) - 시작(STARTUP) - 종료(SHUTDOWN) - 연결 해제(EXIT)