Starting and Stopping Oracle Database: A Step-by-Step Guide.
Oracle Database의 인스턴스와 리스너 시작/종료 방법을 알아보겠습니다.
먼저 DB 인스턴스와 리스너의 시작/종료 순서는 상관없다는 점을 알아두세요.
1. Oracle Database의 State 정의
Oracle Database는 그 동작 상태를 네 가지 상태로 구분할 수 있습니다.
- Shutdown: Database가 완전히 종료된 상태로 DB파일이 메모리에서 해제되고 DB 프로세스는 종료됨.
- Nomount: DB파일이 메모리에 로드는 됐지만 마운트는 안된 상태. DB 프로세스 종료 상태.
- Mount: DB파일이 마운트된 상태이지만 아직 열리지 않은 상태.
- 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" 롤 선택 후 정보 넣으시고 "테스트" 버튼 눌러서 "상태 : 성공" 확인되면 정상입니다.
'Database > Oracle' 카테고리의 다른 글
[Oracle] legacy exp dump파일 data pump expdp import 방법 (0) | 2023.12.18 |
---|---|
[Oracle] 계정 관리 테이블 스페이스 관리 (0) | 2023.12.16 |
SQL Developer 설치 및 기본 설정 (0) | 2023.12.08 |
oracle OPatch Release Update(RU) Patch 적용 (0) | 2023.12.07 |
linux에 oracle 19c 설치 (2) | 2023.12.06 |