UPDATE 실행 원리 UPDATE 실행 원리 select 문장의 실행 단계(parse -> bind -> execute -> fetch) 와 비슷하나 dml(insert, update, delete, merge)문장의 실행단계에는 추출(fetch)단계가 없고 대신 실행(execute)단계가 조금더 복잡하다. 일단 soft parse 하고 실패하면 hard parse해서 서버프로세스는 실행계획을 가지고 library cache에 등록후 실행(execute)를 수행한다. Soft parse에서는 문법검사, 의미검사후 권한검사를 수행하고 shared pool의 library cache에서 실행계획이 있는지 확인한다. 실행계획이 없을 경우 hard parse를 수행해서 옵티마이져에게 실행계획을 생성해달라고 요..
ORACLE BACKGROUND PROCESS ORACLE BACKGROUND PROCESS :ORACLE 서버와 관련된 프로세스 종류는 user process(sql 문장을 서버프로세스로 전달 해주고 결과를 가져오는 프로세스), server process(user process가 전해준 sql문장을 실제 수행하는 프로세스), backgroud process(oracle 서버가 시작되면 자동으로 시작되며 운영과 유지를 담당하는 프로세스) 오라클서버의 시작과 종료와 같고 호빗과 같은 존재이다 필수 ORACLE BACKGROUND PROCESS :- DBWR, LGWR, PMON, SMON, CKPT, MMON & MMNL, RECO 선택 ORACLE BACKGROUND PROCESS :- ARCN, CJQ..
ORACLE 시작, 단계별 INSTANCE OPEN ORACLE 시작 : - ORACLE DATABASE가 OPEN 되어 있어야 DB에 저장되어 있는 정보를 조회하거나 DATA를 입력또는 변경 할 수 있다.- ORACLE 서버를 시작하려면 SYSDBA 권한을 가지고 있는 계정으로 로그인 해야한다.]# sqlplus 아이디/비번 as sysdbaSQL> startup; ORACLE 서버 시작 단계 : 1. NOMOUNT 단계 :- STARTUP 실행시 INSTANCE를 시작하기위해 ORACLE SERVER PROCESS는 가장먼저 PARAMETER FILE을 읽게된다- NOMOUNT 단계에서 PARAMETER FILE에 저장되어 있는 값을 참조하여 SGA와 BACKGROUND - ALTER LOG FILE..
ORACLE INSTANCE종료 ORACLE INSTACNE 종료하는 4가지 옵션1. NORMAL- 접속된 사용자가 있을 경우 강제로 종료시키지 않고 해당 사용자들이 모두 접속을 종료 할때까지 기다린다.SQL> shutdown normal; 2. TRANSACTIONAL- 강제로 중간시키되 그 시점은 사용자가 수행중인 TRANSACTION이 끝나는 시점이다.TRANSACTION 이 종료하는 명령어는 DDL, DCL, TCL ( COMMIT, ROLLBACK )SQL> shutdown transactional; 3. IMMEDIATE- 강제로 종료하고, COMMIT된 DATA를 DBC에서 찾아서 DATA FILE로 저장하고, COMMIT이 안된 DATA를 모두 ROLLBACK시킨 후 정상적으로 INSTAN..
초기 PARAMETER FILE PARAMETER FILE ( 초기 파라미터 파일) : 어떤 값을 ORACLE에게 전해주기 위한 변수 같은 역활 종류 :- 묵시적 파라미터 : 자동으로 기본값을 가지는 파라미터- 명시적 파라미터 : 사용자가 지정해줘야 하는 파라미터 파라미터 파일 : 파라미터를 모아 놓은 파일- 정적 파라미터 파일 : PFILE- 동적 파라미터 파일 : SPFILE* 무조건 PFILE과 SPFILE은 기본 경로 안에 있어야지 ORACLE이 STARTUP시에 찾을 수 있다* 파일 이름에 SID (SITE IDENTIFIER) 는 사이트 구분자로서 DB 이름과는 다르다 PFILE- PFILE 은 TEXT 형식이여서 OS 편집기로 (메모장, vi)로 관리자 변경이 가능하다. SPFILE- SPF..
오라클 주요 PARAMETER 의미 주요 파라미터 의미 : 1. BACKGROUND_DUMP_DEST -백그라운드 프로세스 발생 로그와 ALERT LOG 기록경로 2. CLIENT_RESULT_CACHE_LAG (11g 부터) - CLIENT에 캐시 되어있는 RESULT 유효 사용기간 (milliseconds 단위) 3. CLIENT_RESULT_CAHCE_SIZE (11g 부터) - RESULT CACHE 크기 4. CLUSTER_DATABASE - 기본값 FALSE, REAL APPLICATION CLUSTER (RAC) 기능 쓰는지 여부 5. COMPATIBLE - 호환가능한 이전 버전을 지정 6. CONTORL_FILES :- CONTROL_FILES 경로 지정, 최대 8개 7. CURSOR_SH..
CONTROL FILE CONTROL FILE :- NO MOUNT 단계에서 CONTROL FILE을 읽고 DATABASE 의 무결성 을 확인후 MOUNT 단계로 넘어간다.- CONTROL FILE은 DB가 운영될때 실시간으로 각종 정보가 저장되고 또 조회된다.- BINARY FILE 이므로 OS 편집기로 확인 불가하고, TRACE 작업으로 수정해서 볼수 있다. CONTROL FILE 내용 :- DB 정보, 사용중인 DATAFILE/ REDO LOG FILE / THREAD 정보- LGWR 이 현재 기록중인 (CURRENT) 로그그룹- 로그정보 (로그그룹, 로그멤버, 로그 파일 크기, 완전한 경로이름, 로그 시퀀스 번호, 각 로그파일별 최대/최소 SCN 값, THREAD정보)- 데이터 파일 정보 ( OR..
CONTROL FILE 다중화 관리 방법 :- DBA 가 startup 을 하면, parameter file을 읽고 안에 적혀있는 CONTROL FILE 위치를 찾아가게 된다. CONTROL FILE 다중화 (MULTIPLEXING) 이 중요한 이유는 혹시나 삭제되더라도 여러곳에 분산시켜 복구 할 수 있도록 사용하는 것이 좋다. MULTIPLEXING (다중화) 방법 :- 기본적으로 파라미터 파일의 CONTROL FILE 위치 경로를 수정해줘야한다. SPFILE 과 PFILE의 다중화 방법은 다르다. SPFILE과 PFILE 구분 하는 방법 :SQL> show parameter pfile;SQL> show parameter spfile; - 두 명령어를 구분없이 실행 하였을때, value 컬럼에 내용이 ..
CONTORL FILE 재생성 Control File 재생성하기 재생성 해야하는 경우 :- DB이름 변경시- Data File 갯수 변경시 - Redo Log File 갯수 변경시 - Old Control File 장애 날 경우- 모든 Control File 삭제 될 경우 재생성 스크립트 방법 :MOUNT 단계에서SQL> startup mount;SQL> alter database backup control file to trace as '/home/oracle/re.sql';SQL> shutdown immediateSQL> !ls /home/oracle/ 're.sql' 재생성 스크립트 편집 방법 :vi 편집기로 'set nu' 번호줄 표시해서 필요한 부분외에 줄은 전부 삭제해준다.- NORESETLO..
리두로그 (REDO LOG) 생성원리 리두로그 (REDO LOG) :- 장애가 발생 하였을 경우 복구를 위해서 변경되기전 (UNDO) 내용과 변경된 후 (REDO) 내용을 작업일지 (REDO LOG) 와 같이 메모리 (REDO LOG BUFFER)에 그리고 파일 ( REDO LOG FILE) 에 기록 해둔다. 리두로그 (REDO LOG) 생성원리 :- ORACLE 에서 데이터변경 (DML, DDL, TCL, SQL) 이 일어났을 때 두가지 매커니즘 (WRITE LOG AHEAD, LOG FORCE AT COMMIT)에 의해 리두로그에 기록이 된다. 롸이트 로그 어헤드 (WRITE LOG AHEAD) : -리두로그에 복구관련 중요정보가 저장되어 있기 때문에 데이터에 먼저 기록 (DBWR) 하지 않고, 리두..