내맘대로긍정이 알려주는
Oracle 23ai 신기능
무료 세미나 발표자료
OS환경 : Oracle Linux6.8(64bit)
DB 환경 : Oracle Database 11.2.0.4
방법 : 오라클 기초 정리
1. 엔진 내리고 올리기
싱글db
DB 종료
1 2 | $ sqlplus / as sysdba SQL> shutdown immediate |
shutdown은 nomal, transactional, immediate, abort 명령어가 있음
명령어별 설명
nomal - 디폴트 값으로서, 현재 사용 중인 모든 접속이 종료되기를 기다린다.
transactional - 트랜잭션이 진행 중인 세션은 기다리지만 트랜잭션이 진행 중이지 않은 세션은 강제로 종료시킨다.
immediate - 모든 트랜잭션과의 접속을 강제로 종료한다.(일반적으로 사용)
abort - DB의 상태와 상관없이 메모리에서 인스턴스를 해제한다.(장애시 정상종료가 안될때 어쩔수 없는 경우 사용)
DB 시작
1 2 | $ sqlplus / as sysdba SQL> startup |
startup 은 nomount, mount, open 단계가 있음
각 단계별로 올리는 명령어
1 2 3 | nomount : startup nomount mount : startup mount open : startup |
nomount상태에서 mount 상태로 올리기
1 | alter database mount; |
mount상태에서 open 상태로 올리기
1 | alter database open; |
*한단계씩 올리는건 가능하지만 nomount->open 으로 바로 올릴수는 없음
*한단계씩 내리는것도 불가능, 한번에 내리는 것만 가능
각 단계별 설명
종료 (SHUTDOWN) - 데이터베이스에 대한 엑세스를 수행할 수 없는 상태
노마운트 (NOMOUNT) - 파라메터 파일 읽기, SGA 할당, alertSID.log 파일과 trace파일 시작 및 필요 백그라운드 프로세스를 기동시킴
마운트(MOUNT) - 컨트롤 파일을 읽은 후 데이터 파일 및 라두 로그 파일을 인지함
오픈(OPEN) 온라인 데이터 파일과 온라인 리두 로그 파일의 존재 및 정합성을 확인한 후 해당 파일들을 열어 실제 데이터베이스를 사용할 수 있는 상태로 만듦
2. 횐경파일 수정(파라미터파일)
환경파일은 2가지가 존재함
pfile : vi 명령으로 읽을수 있는 텍스트 형태 파일(initSID.ora)
- 인스턴스가 가동(nomount) 단계에서 pfile을 읽어 데이터베이스에 적용됨
- pfile은 인스턴스 가동 중에 값 변경이 가능하지만 재기동 후엔 pfile에 저장된 값으로 다시 적용됨
spfile : vi 명령으로 읽을수 없는 바이너리 형태 파일(spfileSID.ora)
해당파일이 존재하면 인스턴스 가동 중 pfile이 아닌 spfile이 데이터베이스에 적용됨
spfile이 없는 경우에는 pfile을 이용하여 생성함
ex) create spfile='$ORACLE_HOME/dbs/orclspfile.ora' from pfile='$ORACLE_HOME/dbs/initorcl.ora';
해당 인스턴스가 어떤파일을 읽고 가동되었는지 확인이 가능하며, 필요에 따라 pfile로도 변경이 가능함
scope옵션을 이용하여 memory/spfile/both 세가지로 수정 가능함
- memory : 현재상태에만 영향 (재기동 후엔 이전값으로 rollback)
- spfile : 변경 내용을 spfile에만 저장하고 현재상태에는 영향없음, 재기동시 적용
- both : 변경 내용을 현재상태와 spfile에는 반영하여 영구 저장
대부분 oracle 계정 홈 경로에서 .bash_profile(리눅스), .profile(유닉스) 을 열어보면
$ORACLE_HOME 이 지정되어 있을텐데
cd $ORACLE_HOME/dbs/ 로 이동하면 환경파일들을 확인 할 수 있음
현재 pfile을 사용하는지 spfile 을 사용하는지 확인하는 방법
아래와 같이 spfile 의 VALUE에 값이 들어가 있으면 spfile 을 사용하는 중이고 빈칸이면 pfile을 사용중인 상태이다.
1 2 3 4 | SQL> show parameter spfile NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string /oracle/app/11.2.0/db/dbs/spfileORCL.ora |
환경파일 생성
spfile을 이용해 pfile 생성
1 | SQL> create pfile from spfile; |
pfile을 이용해 spfile 생성
1 | SQL> create spfile from pfile; |
경로 지정해서 spfile을 이용해 HOME 경로에 pfile.ora 생성
1 | create pfile='/home/oracle/pfile.ora' from spfile='/oracle/app/11.2.0/db/dbs/spfileORCL.ora'; |
3. 볼륨 생성
ASM 일경우 볼륨 생성
(RAC 설치 문서 참고)
datafile 추가
filesystem 환경
현재 테이블스페이스 및 datafile 확인
1 2 3 4 5 6 7 | SQL> select * from dba_data_files; FILE_NAME -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS ---------- ------------------------------ ---------- ---------- --------- ------------ --- ---------- ---------- ------------ ---------- ----------- /oradata/ORCL/mmmts01.dbf 8 MMMTS 1073741824 131072 AVAILABLE 8 NO 0 0 0 1073676288 131 |
mmmts 테이블스페이스에 mmmts02.dbf라는 datafile 추가
1 | alter tablespace mmmts add datafile '/oradata/ORCL/mmmts02.dbf' size 10m; |
현재 테이블스페이스 및 datafile 재확인
1 2 3 4 5 6 7 8 9 | SQL> select * from dba_data_files; -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS ---------- ------------------------------ ---------- ---------- --------- ------------ --- ---------- ---------- ------------ ---------- ----------- /oradata/ORCL/mmmts01.dbf 8 MMMTS 1073741824 131072 AVAILABLE 8 NO 0 0 0 1073676288 131064 /oradata/ORCL/mmmts02.dbf 9 MMMTS 10485760 1280 AVAILABLE 9 NO 0 0 10420224 1272 |
raw device 환경
raw device map 을 확인 한 뒤 안쓰는 raw device 를 추가
1 | alter tablespace mmmts add datafile '/dev/raw/raw8' size 10m; |
asm 환경
1 2 3 4 5 6 7 | SQL> select * from dba_data_files; FILE_NAME -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS ONLINE_ ---------- ------------------------------ ---------- ---------- --------- ------------ --- ---------- ---------- ------------ ---------- ----------- ------- +ORADATA/rac/datafile/mmmts.273.995101033 11 MMMTS 52428800 6400 AVAILABLE 11 NO 0 0 0 51380224 6272 ONLINE |
+으로 시작하면 ASM 환경을 사용하는것
ASM 환경에선 datafile 경로를 직접 적어주지 않아도 자동으로 파일명이 생성됨
1 2 3 4 5 6 7 | SQL> alter tablespace mmmts add datafile size 10m; SQL> select * from dba_data_files; +ORADATA/rac/datafile/mmmts.273.995101033 11 MMMTS 52428800 6400 AVAILABLE 11 NO 0 0 0 51380224 6272 ONLINE +ORADATA/rac/datafile/mmmts.274.995273673 12 MMMTS 10485760 1280 AVAILABLE 12 NO 0 0 0 9437184 1152 ONLINE |
4. alert log 위치 확인
10g 이하
1 2 3 4 5 6 7 8 | SQL> show parameter user_dump_dest NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ user_dump_dest string /oracle/app/oracle/diag/rdbms/orcl/ORCL/trace $ cd /oracle/app/oracle/diag/rdbms/orcl/ORCL/trace vi alert*.log |
11g 이상
1 2 3 4 5 6 7 8 | SQL> show parameter diag NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ diagnostic_dest string /oracle/app/oracle $ cd /oracle/app/oracle/diag/rdbms/"HOSTNAME"/"SID"/trace/ vi alert*.log |
5. 자주나는 장애시 노말한 조치
장애가 유형마다 다달라 어떻게 딱히 말할수 없지만
(트러블슈팅 문서 참조)
6. 느린 쿼리 찾아 지우기
실행시간 5초 이상 걸린 쿼리 조회
1 2 3 4 5 6 7 8 9 10 11 | SELECT * FROM( SELECT ROUND(ELAPSED_TIME/EXECUTIONS/1000000,3) AS ELAPSED_TIME , LAST_ACTIVE_TIME , HASH_VALUE , SQL_TEXT FROM V$SQL WHERE parsing_schema_name = '스키마명' AND LAST_ACTIVE_TIME >= TO_DATE('20180307', 'YYYYMMDD') ) WHERE ELAPSED_TIME > 5 --초 단위 입력 order by ELAPSED_TIME desc; |
오라클 설치 기초문서
참조 :
'ORACLE > Admin' 카테고리의 다른 글
ASM 디스크 추가 및 삭제하기 (0) | 2018.12.27 |
---|---|
오라클 reorg, hwm, shrink, move 설명 및 테스트 (6) | 2018.12.26 |
오라클 테이블 compress 정리(10g, 11g, 12c, 18c) (4) | 2018.12.17 |
오라클 Hot backup시 변경이 발생한다면? (4) | 2018.12.17 |
오라클 Primary Keys 설정 (0) | 2018.12.12 |