오라클 데이터베이스 시작 및 종료 방법

반응형

Starting and Stopping Oracle Database: A Step-by-Step Guide.

Oracle Database의 인스턴스와 리스너 시작/종료 방법을 알아보겠습니다.

 

먼저 DB 인스턴스와 리스너의 시작/종료 순서는 상관없다는 점을 알아두세요.

 

1. Oracle Database의 State 정의

Oracle Database는 그 동작 상태를 네 가지 상태로 구분할 수 있습니다.

  1. Shutdown: Database가 완전히 종료된 상태로 DB파일이 메모리에서 해제되고 DB 프로세스는 종료됨.
  2. Nomount: DB파일이 메모리에 로드는 됐지만 마운트는 안된 상태. DB 프로세스 종료 상태.
  3. Mount: DB파일이 마운트된 상태이지만 아직 열리지 않은 상태.
  4. Open: Database 프로세스가 시작되고 사용자가 접속하여 데이터를 조회하거나 수정할 수 있는 상태.

2. 로컬에서의 DB 접속 방법 및 팁

아래는 가장 많이 사용하는 명령어 입니다. oracle 계정에서 이 명령을 입력하면 DB에 접속할 수 있습니다.

sqlplus / as sysdba

이 명령어를 oracle 계정의 환경변수 파일 "~/.bash_profile"에 alias 등록을 해두면 편리합니다.

# 두 글자 "ss"만 입력하여 DB 접속하기
alias ss='sqlplus / as sysdba'

 

alias ss='sqlplus / as sysdba'
[oracle@noyeora ~]$ ss
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Dec 14 14:34:26 2023
Version 19.21.0.0.0
Copyright (c) 1982, 2022, Oracle.  All rights reserved.
Connected to an idle instance.
SQL>

접속에 성공했는데 "Connected to an idle instance" 메시지를 확인할 수 있습니다. 앞서 말씀드린 동작 상태 중 Shutdown 상태에 해당합니다.

 

3. Oracle Database 시작 방법

시작 명령어와 옵션은 아래와 같습니다.

startup [nomount | mount | open]

단계별로 시작해 보겠습니다.

SQL> startup nomount
ORACLE instance started.

Total System Global Area 3556767720 bytes
Fixed Size                  8931304 bytes
Variable Size             754974720 bytes
Database Buffers         2785017856 bytes
Redo Buffers                7843840 bytes

SQL> select status from v$instance;

STATUS
------------------------
STARTED

SQL>

 "nomount" 옵션으로 시작 후 "status"를 확인하면 STARTED 상태가 확인됩니다.

 

SQL> alter database mount;
Database altered.
SQL>  select status from v$instance;
STATUS
------------
MOUNTED
SQL>

startup 상태이므로 다음 명령어는 alter를 사용하여 mount 단계로 바꿔봅니다. 관리자가 백업이나 기타 이유로 DB파일을 컨트롤해야 하는데 서비스는 하면 안 될 때 mount까지만 기동 합니다.

 

SQL> alter database open;
Database altered.
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL>

Database 기동의 최종 단계인 OPEN까지 완료된 상태입니다.

기동의 모든 단계를 한번에 하려면 "startup"만 입력하면 됩니다.

startup force

번외로 "force" 옵션을 사용하면 재시작됩니다. "shutdown abort" 후 "startup"이 연속적으로 이루어집니다.

CPU 사용률이 100%이거나 무응답일 때 사용합니다.

3. Oracle Database 종료 방법

종료 명령어와 옵션은 아래와 같습니다. 옵션을 명시하지 않을 때 기본 적용되는 옵션은 "normal"입니다.

# option : immediate, abort, normal, transactional
# shutdown 축약어로 shu 도 가능합니다.
shutdown [option]
  • immediate: 접속중인 세션과 트랜잭션을 모두 강제 종료 합니다.
  • abort: DB자체를 강제 종료합니다. DB가 먹통일 때 주로 사용합니다.
  • normal: 접속중인 세션과 요청받은 트랜잭션이 모두 종료될 때까지 기다립니다.
  • transactional: 접속 중인 세션은 강제로 종료하고 트랜잭션은 모두 종료될 때까지 기다립니다.

4. 리스너 시작과 종료 방법

Oracle Database 리스너의 기본 서비스 포트는 1521입니다. 외부 인터넷 환경에서 운영시 기본 포트를 다른 포트로 변경 후 사용하는 것을 추천합니다. 리스너가 기동 되지 않으면 DB 인스턴스가 기동 중이어도 외부에서 접속이 불가능합니다.

리스너 실행파일명은 "lsnrctl" 입니다. "help"로 사용 가능한 명령어 옵션을 확인할 수 있습니다.

[oracle@noyeora dbs]$ lsnrctl help

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 14-DEC-2023 15:28:58

Copyright (c) 1991, 2023, Oracle.  All rights reserved.

The following operations are available
An asterisk (*) denotes a modifier or extended command:

start           stop            status          services
servacls        version         reload          save_config
trace           spawn           quit            exit
set*            show*

[oracle@noyeora dbs]$

 

[oracle@noyeora admin]$ lsnrctl
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 14-DEC-2023 15:33:36
Copyright (c) 1991, 2023, Oracle.  All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL>

옵션 파라미터 없이 "lsnrctl"만 실행하면 리스너의 프롬프트로 진입하게 됩니다.

주로 사용하는 명령은 "start", "stop", "status"입니다.

[oracle@noyeora admin]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 14-DEC-2023 16:26:24

Copyright (c) 1991, 2023, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=noyeora)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                14-DEC-2023 16:18:11
Uptime                    0 days 0 hr. 8 min. 13 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /oracle/app/oracle/product/19c/network/admin/listener.ora
Listener Log File         /oracle/app/oracle/diag/tnslsnr/noyeora/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=noyeora)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "noyeora" has 1 instance(s).
  Instance "noyeora", status READY, has 1 handler(s) for this service...
Service "noyeoraXDB" has 1 instance(s).
  Instance "noyeora", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@noyeora admin]$

Listening Endpoints Summary에 HOST와 PORT값이 정상인지 확인합니다. HOST명 대신 IP를 적어도 되고 HOST명을 적으면 /etc/hosts 파일에 정확한 IP가 적혀있어야 합니다.

 

여기까지 하셨으면 아래와 같이 "SYSDBA" 롤 선택 후 정보 넣으시고 "테스트" 버튼 눌러서 "상태 : 성공" 확인되면 정상입니다.

 

반응형