반응형

oracle 43

실행계획 순서분석

B+Tree 의 First Order 방식의 읽는 순서 - 자식 중의 종손 먼저 - 하위 tree 가 있다면 하위 다 읽고 다음 형재로 예) SELECT /*+ gather_plan_statistics */ O.PAYTYPE, O.STATUS, O.CUSTNO, OD.PRICE FROM ORDERS O, ORDERDETAILS OD WHERE O.ORDERNO = OD.ORDERNO AND O.PAYTYPE ='계좌이체' AND STATUS = '결제완료' PLAN_TABLE_OUTPUT SQL_ID 4bwaukvdmsqhs, child number 0 ------------------------------------- SELECT /*+ gather_plan_statistics */ O.PAYTYPE,..

Oracle/튜닝 2022.01.28

DISPLAY_CURSOR

DBMS_XPLAN.DISPLAY_CURSOR : 10g 부터 지원 : 9i 에서는 trace 10046 사용해야함 해당 패키지를 사용하기 위해서는 일반 DB유저에게 아래와 같은 권한을 부여해야한다. GRANT SELECT ON V_$SESSION TO 사용자; GRANT SELECT ON V_$SQL_PLAN_STATISTICS_ALL TO 사용자; GRANT SELECT ON V_$SQL TO 사용자; 사용법. 1. 실행 계획을 검토할 문장에 힌트 /*+ gather_plan_statistics */ 삽입 후 실행 2. select * from table(dbms_xplan.display_cursor(null,null,'TYPICAL ALLSTATS LAST')); 실행 예) SELECT /*+ ga..

Oracle/튜닝 2022.01.28

CBO, 테이블 통계, 인덱스 통계

CBO (Cost Based Optimizer) 비용 산정 을 위해 테이블 통계, 인덱스 통계, 히스토그램을 참조한다. TUNING.ORDERS ORDERNO ORDERDATE TOTAL PAYTYPE STATUS CUSTNO CODE 200004 2017-12-13 0:00 272900 신용카드 배송중 6091 29 200005 2017-12-15 0:00 61500 체크카드 배송중 5590 75 200006 2018-06-14 0:00 9700 체크카드 배송중 7693 7 200010 2019-11-24 0:00 593250 신용카드 결제완료 6162 62 200011 2019-06-30 0:00 575550 계좌이체 배송준비중 4498 98 200012 2018-02-22 0:00 9150 계좌이체..

Oracle/튜닝 2022.01.28

SQL Tuning

SQL Tuning 이란 ? - 쓸데 없는 일을 시키지 않는 것 - 병목현상을 없애어 모든 처리 과정이 최상의 성능을 발휘하도록 하는 것 - 최소한 자원으로 최대의 일을 시키는 것 - 놀고 있는 자원이 없도록 하는 것 SQL Tuning을 함으로써 튜닝이란 아래와 같이 3가지를 지칭할 수 있다. SQL Tuning 선결 과제 1) 오라클 서버 튜닝 (DBA) - SQL 특성에 맞도록 오라클 서버 튜닝 - 데이터베이스 메모리 및 I/O 튜닝 2) 운영체제 튜닝(SA) - 오라클 서버가 운용되는데 필요한 기본적인 리소스 파라미터 튜닝 3) 업무 기능 분석(개발자) - User Data 에 대한 정확한 이해자 - 명확한 업무 분석 및 설계자 오라클의 SQL 튜닝을 하기 위해 우리는 어느 영역을 건드리는지 알 ..

Oracle/튜닝 2022.01.27

RMAN 완전복구/불완전복구

rman 완전복구, 불완전복구 1. 사용 안함 설정 -> offline, shutdown 2. 백업 복원 -> restore 3. 복구 -> recover 4. 사용함 -> online, open Restore - 백업 파일로부터의 복원 Recover - Redo Log/Archive Log 적용시켜 복구 #완전복구 1) offline 가능한 data file 삭제 복구 작업 2) offline 불가능한 data file 삭제 복구 작업 3) 임시경로 생성하여 복구 4) 필요한 datafile 만 복구 # 불완전 복구 ( 불완전복구는 패스 : 하는방법만 숙지 ) 장애난 시간을 찾아 그시간을 복구 후. resetlogs, open 방식 1) drop table 복구 2) Drop table 복구 - 임시 ..

Oracle/backup 2022.01.26

아카이브 모드에서 완전복구/불완전복구

테스트 시나리오 ( 복구 ) ==================================================================== 2. 아카이브 로그 모드 에서 복구. 2-1. 완전복구 1) offline 이 되는 일반 tablespace 복구 2) offline 이 되지 않는 tablespace 복구 3) 백업파일이 없는 경우 복구 4) 일부 데이터 파일이 없는 경우 복구 (임시 경로를 이용한 긴급 복구) 2-2. 불안전 복구 - 논리적 장애 복구 1) drop table로 삭제된 테이블 복구 2) drop table 복구 (백업파일x) 3) 잘못된 UPDATE 장애 복구 4) drop tablespace 로 잘못 삭제된 tablespace 복구(백업 ctl 있음) 5) drop ..

Oracle/backup 2022.01.26

Cold Backup && Hot Backup

닫힌 백업 (콜드백업; Cold backup) - 오라클을 셧다운 시칸 상태에서 백업 - 단점 : 백업받은 동안은 DB서비스 불가능. 주의사항 - 모든 파일은 동일한 시점의 것이어야함 (SCN) - 정상적으로 db 셧다운 시킨상태에서 백업을 받아야함 - 아카이브 모드 , 노아카이브 가능 - 데이터 파일, 컨트롤 파일, 리두로그파일 모두 백업 가능. 순서 1) 백업 받을 파일의 경로 확인 후 DB정상 셧다운 2) 원하는 경로에 파일 복사 3) DB 오픈 ============================================================================================================= ** Recovery 원리 1) recover databas..

Oracle/backup 2022.01.26

RMAN (Recovery Manager)

RMAN (Recovery Manager) :RMAN 에게 명령하고 백업복구의 주체가 RMAN. -> 원래는 관리자가 직접 백업 하고 장애 발생시 적절한 백업파일을 찾아 복구하는 방식. V$RMAN_OUTPUT V$RMAN_BACKUP_JOB_DETAILS V$BACKUP_PIECE - 10G 부터는 ASM (Automatic Storage Management) 기반의 백업 및 복구는 RMAN 만 할 수 있다. - Rman 의 장점 1. 자주 실행하는 작업을 스크립트로 저장(Recovery Catalog 사용할 경우) : 규모가 큰 DB의 경우 백업 수행시 코딩하는 양이 많음. : 자주 사용하는 백업 명령어를 스크립트로 저장한 후 불러와서 사용 가능. 2. 증분 블록 레벨 백업 기능 지원 : 이전 백업받..

Oracle/backup 2022.01.26

Function

함수(Function) 값을 계산하고 결과 값을 반환하기 위해서 함수를 많이 사용 반드시 반환 될 값의 데이터 타입을 RETURN 문으로 선언 -- PL/SQL 블록에는 적어도 한 개의 RETURN 문이 있어야 한다. -- PL/SQL Block은 함수가 수행 할 내용을 정의한 몸체부분이다. CREATE OR REPLACE FUNCTION function name [(argument...)] RETURN datatype -- datatype은 반환되는 값의 datatype입니다. IS [변수 선언 부분] BEGIN [PL/SQL Block] -- 리턴문이 꼭 존재해야 합니다 RETURN 변수; END; CREATE OR REPLACE FUNCTION FC_update_sal2(v_empno IN NUMB..

Oracle/etc 2022.01.26

BCT(Block change tracking)

BCT (Block change tracking) - 마지막 백업 이후 변경된 블록들을 tracking 이 가능하도록 file 로 저장. - 변경된 block 들은 bct 파일의 bitmap로 관리되는데, 변경된 block 당 1bit로 계산되는것이 아니라, 데이터 block 의 32 kb 당 1개의 bit로 표현됨. => db_block_size 8kb 이면 => 4개의 db_block 1bit로 표현되는 것임. BCT 비활성화 alter database disable block change tracking; BCT 활성화 여부 확인 SYS@ORCL AS SYSDBA> select * from v$block_change_tracking; STATUS FILENAME BYTES ---------- ---..

Oracle/backup 2022.01.26
반응형