/# ps -ef | grep SID이름

# lsnrctl status
- 현재 리스너가 내려간 상태

# lsnrctl start
- 리스너 시작

- 리스너가 다시 살아난걸 확인할 수 있다.
- 다만, 현재 서비스 하고 있는 DB가 없는걸 확인할 수 있다.
✅ 외부 클라이언트에서의 접근을 막아야 할때는 의도적으로 리스너를 내리기도 한다.
# lsnrctl stop - 리스너를 중지시키는 명령어

- Connected to an idle instance.
해당 문장이 나오면 DB가 내려간 상태이다.

!, eixt 명령어
! : os로 잠깐 나갈때 사용
os - exit : os에서 다시 sqlplus로 돌아갈때 사용
sqlplus - eixt : sqlplus 종료
os - exit - sqlplus 종료 후 exit은 putty 종료(터미널 종료)
다시 리스너 상태 확인
# lsnrctl status

- ORA19C DB를 서비스 하고 있는걸 확인 할 수 있다.

# systemctl stop firewalld - 방화벽 중지
# systemctl disable firewalld - os가 중지되었다가 다시 실행되어도 계속 방화벽을 중지상태로 유지
# systemctl start firewalld - 방화벽 실행
# systemctl enable firewalld - os가 중지되었다가 다시 실행되어도 계속 방화벽을 실행상태로 유지
- 실무에서는 함부로 방화벽을 내리면 안되기 때문에 특정한 포트를 방화벽에 등록 시켜주는 방법으로 해결해야 한다.
# firewall-cmd --list-all
특정 포트 번호 방화벽 확인
# firewall-cmd --add-port=1521/tcp --permanent
특정 포트로 접속할수 있도록 등록작업
permanent - 영구히 적용
# firewall-cmd --remove-port=1521/tcp --permanent
등록되어있는 특정 포트 제거작업
permanent - 영구히 적용
# firewall-cmd --reload
바로 적용이 안되기 때문에 재설정 작업을 수행해야 한다.
# firewall-cmd --query-port=1521/tcp
해당 포트가 등록 되어있으면 yes, 없으면 no 출력
1) admin 디렉터리로 이동
[oracle@oracle19c ~]$ cd $ORACLE_HOME/sqlplus/admin
2) glogin.sql 파일 존재 확인
[oracle@oracle19c admin]$ ls
glogin.sql help libsqlplus.def plustrce.sql pupbld.sql pupdel.sql
3) vi 편집기를 통해 명령문 작성
SET SQLPROMPT '&_USER.@&_CONNECT_IDENTIFIER.> '

ORACLE = INSTANCE + DATABASE
user process - 사용자가 작성한 SQL문을 server process로 전달해주고 결과를 가져오는 프로세스
server process - SQL문을 처리하는 프로세스
connection - user process가 INSTANCE에 접속
session - 현재 유저가 오라클에 로그인 상태
- 하나의 오라클 데이터베이스 instance의 데이터 및 제어 정보를 포함하는 공유 메모리 구조이다.
- SGA 영역에 있는 구성 요소들을 DB 운영중에 동적으로 설정할 수 있다.
- SGA 메모리는 SGA_MAX_SIZE로 설정한다.
show parameter sga_max_size
# show sga

-Fixed Size : 오라클이 instance 생성시 사용되는 알고리즘들이 이 메모리에서 수행한다.
-Variable Size : shared_pool_size, large_pool_size, java_pool_size, streams_pool_size 파라미터들에 대한 메모리 공간
-Database Buffers : db_cache_size,db_keep_cache_size, db_recycle_cache_size, db_nk_cache_size(n = 2 4 8 16 32) 파라미터들에 대한 메모리 공간
-Redo Buffers : log_buffer 파라미터에 대한 메모리 공간
# show parameter spfile;
- spfile : 초기 파라미터

$ORACLE_HOME/dbs
vi spfileORA19C.ora
shared_pool_size 파라미터를 이용해서 크기를 조정
show parameter shared_pool_size
뷰를 통해서도 파라미터 값 확인
SELECT * FROM v$parameter WHERE name = 'shared_pool_size';
동적으로 shared pool 값 변경
ALTER SYSTEM SET shared_pool_Size = 값;
library cache
- SQL문, PL/SQL 실행계획을 가지고 있는 메모리
data dictionary cache
-data dictionary 테이블의 정보를 가지고 있는 메모리
oracle shared sever 환경일때 UGA(User Global Area)가 생성되는 메모리
ALTER SYSTEM SET db_cache_size = 값;데이터베이스 데이터 블록의 모든 변경 사항을 기록한다.
목적은 복구(recovery) 때문이다.
내부의 기록된 변경사항을 리두항목(redo entry)라고 한다.
리두항목(redo entry)에는 변경사항을 재구성하거나 재실행할 정보가 포함되어 있다.
리두항목이 생성되는 SQL문 : DML, CREATE, ALTER, DROP, SELECT .. FOR UPDATE;
log_buffer : OS BLOCK(512BYTE) SIZE 배수 단위로 설정
static parameter(db 운영중에 변경한 내용을 바로 적용할 수 없다. 데이터베이스를 중단한 후 재 시작해야지만 적용된다)
정적으로 변경
ALTER SYSTEM SET log_buffer = 값 SCOPE = SPFIEL;
Oracle shared server 환경일때 UGA(User Global Area)가 생성된다
RMAN을 이용해서 백업 및 복구 작업 수행할 때 사용되는 메모리 공간
parallel query(병렬처리) 작업 수행 할때
large_pool_size 파라미터로 크기 조정
동적 파라미터이다.
ALTER SYSTEM SET large_pool_size = 값 SCOPE = BOTH
ALTER SYSTEM SET java_pool_size = 값;ALTER SYSTEM SET streams_pool_size = 값;10g 버젼에 새롭게 나온 기능
sga_target 값을 설정하면 SGA영역을 자동관리 한다.

MMAN(background process)이 Memory Advisior를 사용해서 작동한다.

sga_target 값은 sga_max_size 값보다는 작거나 같게 설정하면 된다.
SPFILE을 사용 권장
sga_target 값이 설정되어 있더라도 수동으로 관리해야 하는 SGA영역
sga_target 설정되어 있더라도 수동으로 동적인 파라미터의 크기 조정