일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Reset
- git
- revert
- Commit삭제
- CloudWatch Matrics
- IntelliJRevert
- cloud
- CloudWatch
- IntelliJReset
- CloudWatchLogs
- CloudWatch Alarm
- Today
- Total
boyeon
10강 - PACKAGE / TRIGGER / 오라클 구조 본문
- USER : LEE
- PACKAGE
a. 프로시져의 묶음
b. PACKAGE + BODY
--1.PACKAGE 부분
CREATE OR REPLACE PACKAGE 패키지명
IS
PROCEDURE 프로시져명1;
PROCEDURE 프로시져명2;
...
END;
--2.BODY 부분
CREATE OR REPLACE PACKAGE BODY 패키지명
IS
PROCEDURE 프로시져명1
IS
BEGIN
...
END;
PROCEDURE 프로시져명2
IS
BEGIN
...
END;
...
END;
--실행 부분
EXECUTE 패키지명.프로시져명1;
EXECUTE 패키지명.프로시져명2;
- TRIGGER
a. 테이블에 대한 이벤트를 자동으로 실행 해 주는 것이다
b. 종류
- AFTER TRIGGER : 조작어 실행 후에 자동으로 실행되는 트리거
- BEFORE TRIGGER : 조작어 실행 전에 자동으로 실행되는 트리거
c. TRIGGER은 COMMIT과 ROLLBACK 불가능
- INSERT TIRGGER
CREATE OR REPLACE TRIGGER 트리거이름
AFTER INSERT --테이블에 값이 INSERT된 직후에 자동으로 실행
ON 사용자이름.테이블이름
FOR EACH ROW --:NEW.컬럼명/:OLD.컬럼명을 사용하려면 반드시 추가해야함
BEGIN
...
END;
- UPDATE TIRGGER
CREATE OR REPLACE TRIGGER 트리거이름
AFTER UPDATE OF 컬럼명 --지정한 특정 컬럼이 UPDATE된 직후에 자동으로
실행
ON 사용자이름.테이블이름
FOR EACH ROW
BEGIN
...
END;
- DELETE TIRGGER
CREATE OR REPLACE TRIGGER 트리거이름
AFTER DELETE --테이블이 DELETE된 직후에 자동으로 실행
ON 사용자이름.테이블이름
FOR EACH ROW
BEGIN
...
END;
- ORACLE ARCHITECTURE
- SGA(System Grobal Area)의 가장 중요한 3가지
* log에 먼저 기록하고 CKPT를 건드려서 DBWn이 내려쓰도록
* WHY? 만약 그대로 메모리에 내비두면 메모리가 잘못되면 다 지워지기 때문에
= 사용을 중지하지 않지만 언제 사용할지 몰라서 잠시 치워놓는 위치(지금 당장은 불필요)
- Background Processes
- PMON (Process Monitor)
= server는 문제가 없는데 시스템에 문제가 생기면 다른 사용자가 접근할 수 없게 lock이 걸려있는 상태로 계속 있어야 하고 / 다음 로그인에 문제가
생긴다(이미 로그인이 되어있는 상태로 인식되어서)
= server가 시스템에 문제가 생긴 것을 모니터
= 커밋은 사용자만 할 수 있는 것이기 때문에 server는 롤백해서 lock걸려있는 것을 풀어준다. (다른 사용자가 사용해야 되기 때문에)
= 또한 다음번에 로그인할때 문제가 되지 않도록환경을 만들어줌
- SMON (System Monitor)
= 단순히 데이터를 수정하는 것은 log를 사용해서 복구 하는 것이 아니라 undo파일을 이용해서 복구
= undo 파일을 commit을 해야지 저장
= 로그파일에는 commit하지 않아도 저장
= smon은 문제가 생겨서 컴퓨터가 꺼졋을때 로그파일에서 데이터를 가져와 undo와 비교해서 일치하면 가져오고 아니면 가져오지 않는다
=> 데이터를 일치 시켜줌
3. Instance
= instance ( sga + background processes )
= 인스턴스가 완료됫다는 소리는 정상적으로 실행이 되었다는 소리
4. WR
- DBWn
= Database Buffer Cache에 있는 내용을 쓸때 DBWn을 사용(하나의 블럭마다 따로 존재 때문에 n이 붙음)
- LGWR
= Redo Log Buffer의 내용을 commit시 파일로 내려씀 CKPT를 건드려서 DBWn이 내려쓰도록시킴
(LGWR가 쓴 내용과 DBWn이 쓴 내용이 일치)
= commit을 안해도 3초마다 자동으로 내려쓴다.
- CKPT
= 데이터파일에 있는 번호 / 컨트롤 파일에 있는 번호 / 로그파일에 있는 번호 -> 3가지의 번호가 일치 데이터베이스를 열어 볼 수 있다.(보안)
5. Archived Log files
= 로그파일은 다 꽉차면 다음 그룹에 쓴다. 마지막 그룹까지 다 차면 다시 앞으로 = 덮어쓰기(순환식)
= 덮어쓰기 때문에 ROLLBACK이 불가능 => Archived Log files가 필요한 이유
= 로그 스위치 => 다음그룹으로 넘어가는 것
= 로그 스위치할때 Archived Log files에 그대로 그 그룹을 기록한다(데이터베이스에서 관리 안함)
= 데이터베이스에서 관리하지 않기 때문에 삭제 가능(외부에 공간에 저장) - 관리자 권한 필요
= Archived Log files가 있기 때문에 거의 100%복구가 가능하다 => 중요한 파일
6. Server/User Process
- User Process
=제일 먼저 연결해야함
= pga영역을 정해야함
- Server Process
= user가 server process에 연결하려고 시도
- Background Pprocess
= oracle instance가 시작된 후에 시작
7. Tablespace
- Table space
= 논리적 구조
- Segment
= 나만 쓰는 내 공간
= 논리적인 공간(oracle에만 있는 용어)
= 오브젝트가 만들어져서 하드디스크에 저장된 있는 공간
- Datafile
= os에서의 개념
'...' 카테고리의 다른 글
2/18 - SCOPE영역(APPLICATION영역) / DB연결 / 액션태그(useBean) (0) | 2019.02.19 |
---|---|
1강. 설치 및 환경설정 (0) | 2019.02.12 |
9강 - DDL프로시져 / 함수 / 예외처리 / CURSOR (0) | 2019.01.23 |
8강 - INDEX / 시퀀스 / PLSQL - 무명프로시져,프로시져,함수 (0) | 2019.01.23 |
6강 - ALTER / DROP / COMMENT / DCL - GRANT,REVOKE / ROLE (0) | 2019.01.23 |