오라클(Oracle) 시스템 운영
리스너 관리
-
관련 설정 파일 위치
$ORACLE_HOME/network/admin/listener.ora $ORACLE_HOME/network/admin/tnsnames.ora
-
listener.ora 샘플
# listener.ora Network Configuration File: /usr/oracle/app/product/11.2.0/dbhome_1/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.10)(PORT = 1521))) ) ) ADR_BASE_LISTENER = /usr/oracle/app
-
tnsnames.ora 샘플
# tnsnames.ora Network Configuration File: /usr/oracle/app/product/11.2.0/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. TEST_NAME = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.10)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = SID) ) )
-
리스너 중지/시작/확인
#- 중지 lsnrctl stop #- 시작 lsnrctl start #- 확인 lsnrctl services lsnrctl status
NoteOracle 엔진 중단 전에 리스너를 먼저 내리고
Oracle 엔진 시작 후 리스너를 올리는 것이 좋음
Oracle shutdown/startup 관리
-
shutdown
# su - oracle $ sqlplus '/as sysdba' SQL> shutdown;
-
startup
# su - oracle $ sqlplus '/as sysdba' SQL> startup;
-
오류가 있는 경우 강제 셧다운
# su - oracle $ sqlplus '/as sysdba' SQL> shutdown abort; SQL> startup; SQL> shutdown immediate;
Oracle 관리를 위한 쿼리문
-
테이블 리스트 확인
#- 현재 계정의 테이블 목록을 보여줌. SQL> SELECT * FROM tab; #- 모든 계정의 테이블 목록을 보여줌. SQL> SELECT * FROM all_tables WHERE OWNER = SCOTT; SQL> SELECT * FROM user_tables;
-
현재 사용중인 tablespace 확인 쿼리
select distinct tablespace_name from dba_segments;
-
현재의 TableSpace와 Datafile 확인
select file_name, tablespace_name, bytes from dba_data_files;
-
전체 DB 용량
-- Byte select sum(bytes) from dba_data_files; -- GB select sum(bytes)/1024/1024/1024 from dba_data_files;
-
사용한 DB 용량
-- Byte select sum(bytes) from dba_segments; -- GB select sum(bytes)/1024/1024/1024 from dba_segments;
-
사용 가능한 DB 용량
-- Byte select sum(bytes) from dba_free_space; -- GB select sum(bytes)/1024/1024/1024 from dba_free_space;
-
테이블스페이스별로 용량 현황 확인
SELECT A.TABLESPACE_NAME, ROUND(A.BYTES_ALLOC / 1024 / 1024, 2) CURRENT_SIZE, ROUND(NVL(B.BYTES_FREE, 0) / 1024 / 1024, 2) FREE_SIZE, ROUND((A.BYTES_ALLOC - NVL(B.BYTES_FREE, 0)) / 1024 / 1024, 2) USED_SIZE, ROUND((NVL(B.BYTES_FREE, 0) / A.BYTES_ALLOC) * 100,2) FREE_RATE, 100 - ROUND((NVL(B.BYTES_FREE, 0) / A.BYTES_ALLOC) * 100,2) USED_RATE, ROUND(MAXBYTES/1048576,2) MAX_SIZE FROM ( SELECT F.TABLESPACE_NAME, SUM(F.BYTES) BYTES_ALLOC, SUM(DECODE(F.AUTOEXTENSIBLE, 'YES',F.MAXBYTES,'NO', F.BYTES)) MAXBYTES FROM DBA_DATA_FILES F GROUP BY TABLESPACE_NAME) A, ( SELECT F.TABLESPACE_NAME, SUM(F.BYTES) BYTES_FREE FROM DBA_FREE_SPACE F GROUP BY TABLESPACE_NAME) B WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME (+) UNION SELECT TABLESPACE_NAME, ROUND(SUM(BYTES_USED + BYTES_FREE) / 1048576, 2), ROUND(SUM(BYTES_FREE) / 1048576,2), ROUND(SUM(BYTES_USED) / 1048576,2), ROUND((SUM(BYTES_FREE) / SUM(BYTES_USED + BYTES_FREE)) * 100,2) FREE_RATE, 100 - ROUND((SUM(BYTES_FREE) / SUM(BYTES_USED + BYTES_FREE)) * 100,2) USED_RATE, ROUND(MAX(BYTES_USED + BYTES_FREE) / 1048576, 2) FROM SYS.V_$TEMP_SPACE_HEADER GROUP BY TABLESPACE_NAME ORDER BY 1;
-
DBA_FREE_SPACE 테이블스페이스 잔여 공간
SELECT TABLESPACE_NAME, BYTES, BLOCKS FROM DBA_FREE_SPACE;
'Database' 카테고리의 다른 글
MySQL 용량 확인 (0) | 2021.03.23 |
---|