Oracle 60일차

[FUNCTION] input과 output 존재(input은 생략될 수 있음)input과 output의 관계를 정의하는 객체 ** 문법 ** 예제1) emp 테이블을 사용하여 부서 번호를 입력받으면 해당 부서의 최대 급여를 return하는 함수 ** 예제1-2) 위에서 만든 함수를 사용하여 각 부서별 최대 급여자의 이름, 부서번호, 급여 출력. ** 예제2) student, exam_01, hakjum 테이블을 사용하여 학번을 입력받고 해당 학생의 학점을 return하는 함수 … Read more

Oracle 59일차

[사용자 정의 예외 처리] 정해져 있는 상황(SELECT 결과가 아무것도 없을 때)이 아닌 논리적인 업무 상황을 가정하여 예외 처리를 할 경우 사용자가 직접 예외처리에 대한 상황을 정의해야 함. ** 방법1. raise– 예외 처리에 대한 상황을 정의하고 해당 예외에 대한 이름(예외명)을 부여– 실행부(begin절)에서 예외명 정의, 해당 예외에 대한 출력은 예외처리부(exception)에서 처리– 프로그램이 정상 종료됨. 2. raise_application_error– 에러코드와 … Read more

Oracle 57일차

[PLSQL 반복문] 1. basic loop문– 반복할 조건이나 대상이 없음– 횟수가 정해져 있지 않음– 무한 loop문이라 종료 조건이 필수임. 2. for문– 반복할 대상이나 횟수가 정해져 있음 3. while문– 반복할 조건이 정해져 있음. [basic loop문] ** 문법 ** 예제1) 1~10 출력 ** 예제2) 구구단 2단 출력 [for문] 반복할 대상, 횟수가 정해져 있는 경우 사용 ** 문법 ** … Read more

Oracle 56일차

[PL/SQL] 절차적 프로그래밍(이전 명령어의 결과를 다음 명령어에 전달)을 지원하는 SQL 확장 언어.변수 사용 가능.반복문/조건문 정의 가능.블럭 단위 구조(선언부/실행부/예외처리부로 구성)블럭 이름 유무에 따라 익명블럭, 저장블럭으로 나뉜다.– 블럭에 이름 부여 -> 객체 생성 객체 : 프로시저, 함수, 트리거, 패키지 1. 구조 1) 선언부(declare)– 변수 선언 (default value 지정 가능)– 데이터 타입 정의– IN/OUT 정의– 생략 가능 2) … Read more

Oracle 55일차

[메모리 관리] library hit ratio 85%이상 권고library hit ratio 가 너무 낮게 나오면 = hard parsing이 많다면 문제점이 2가지 있다.1. 메모리 문제 : 사이즈가 작으면 수행되는 SQL의 실행계획을 충분히 저장하지 못해서 hard parsing이 많이 발생할 수 있다. 해결하려면 shared pool size를 늘린다. ASMM환경이면 sga_target(sga 영역의 총 크기)의 size를 증가시킨다. 2. literal SQL 문제 : 변수처리되지 … Read more

Oracle 54일차

[DB health check] 주기적으로 DB 진단. 1) alert log 분석 : DB 물리적 변경, 에러, 장애 진단. 2) AWR 분석 : DB 성능 진단(hit ratio, physical/logical read 비율 등) 3) trace file 분석 : 특정 에러에 대한 세부 진단. [AWR] oracle 성능 진단 툴.성능 진단 결과를 html이나 text 파일 형태로 다운 가능.oracle 설치 시 자동으로 … Read more

Oracle 52일차

[Oracle block] DB_BLOCK_SIZE 파라미터로 사이즈 조절 가능. 동적 변경은 불가.사용자가 입력한 데이터를 하드디스크에 저장하거나 읽어들일 때 1건씩 처리하는 구조가 아닌 block단위로 작업한다.block size가 크면 데이터가 작은 경우 공간이 낭비될 수 있고, wait time이 많이 생길 수 있다.block size가 작으면 한 번에 담을 수 있는 데이터 양이 작아져 disk I/O가 많아진다.OLTP면 block size를 8k, DW면 16k정도를 … Read more

Oracle 51일차

[gap 분석] 데이터 이관 시 양쪽 DB 현황을 조사하여 모든 이관 대상이 빠짐없이 이관됐는지 확인하는 과정.대상 : table, index, constraints, view, synonym, sequence, privilege 등, 테이블 내 컬럼순서, 컬럼명, 데이터타입, 컬럼길이, default값 등. 사전 준비 db1에서 table 생성 copydb에서 table 생성 1. table gap 분석 2. index gap 분석 3. 제약조건 gap 분석 [DDL 추출] … Read more

Oracle 50일차

[원격 expdp / 로컬 impdp] db1의 schema를 copydb에서 원격 expdp후 로컬 impdp 진행 1. 유저랑 테이블 생성 – oel7 db1에서 2. 원격 expdp – copy copydb에서 schema mode로 ** 근데 exp명령어랑 다르게 원격 expdp를 copy에서 입력하면 oel7쪽에 덤프파일이 생긴다.그래서 tns alias를 사용하는 방식을 사용하지 않는다. ** 따라서 다른 dblink(network_link)를 사용하는 방식을 사용해야 한다.copydb에서 db1으로 연결해놓은 … Read more

Oracle 49일차

[원격 exp – 로컬 imp] copy 쪽에서 db1의 데이터를 원격으로 exp 후 copydb에 로컬 imp하는 작업. 0. 기존 데이터 삭제 & itwill4 유저 생성 – copydb 1. 원격 exp 2. 로컬 imp 3. 데이터 조회 [전송모드 비교 – oel7 db1에서] conventional mode vs direct mode conventional mode direct mode ** 지금은 많이 차이 안 나지만 … Read more

Oracle 48일차

[exp / imp] oracle에서 제공하는 논리 백업 및 적재 방식.oracle 버전, 플랫폼(서버, os종류)이 다른 경우도 지원 가능 1) exp– 논리 백업 수행– 덤프 파일 형태로 백업 (바이너리 파일)– 백업 방식 : 테이블/스키마/테이블스페이스/전체(full) 단위로 백업 가능하다.– 전송 모드 : conventional mode / direct mode 2) imp– exp로 백업받은 덤프파일을 적재하는 기능. [exp] 논리 백업을 수행하는 명령어. … Read more

Oracle 47일차

[실습 – professor] professor.csv 를 oel7 서버 업로드 후(winscp – text) 해당 데이터를 새로운 테이블로 생성한 뒤 적재(테이블명 : sqlldr_apply) 1. 테이블 생성 2. winscp text모드로 professor.csv 옮기기 3. 적재 [실습 – student] 1. table 생성 2. winscp text모드로 student.csv 옮기기 3. 적재 [case5 : 여러 파일 적재하기] window에 있는 act_data_1.csv ~ act_data_6.csv 파일을 winscp를 … Read more

Oracle 46일차

[noarchive log mode에서의 복구] redo log에 저장된 변경 내용의 유실 발생 -> 데이터 복구 제한적 1) 장애 복구까지의 필요 정보가 현 redo log에 존재하는 경우-> 아카이브를 필요로 하지 않기 때문에 복구 가능 2) 장애 복구까지의 필요 정보가 현 redo log에 존재하지 않는 경우-> 아카이브를 필요로 하는데 아카이브가 없어서 복구 불가능 [noarchive 복구 실습을 위한 세팅] … Read more

Oracle 45일차

[copy DB open 안될 시 check] offline backup file을 full restore 시 각 파일들의 시점이 일치하므로 DB정상 open 1. ORACLE_SID 확인 : copydb 2. parameter file 확인경로 : $ORACLE_HOME/dbs/initcopydb.ora내용 : controlfile 경로 잘 되어있나 확인. 3. controlfile 확인경로 : /oracle12/recover내용 : redo log file, datafile 경로 수정 4. DB files restore$ cp /oracle12/backup/cold_backup/*.ctl /oracle12/recover$ cp … Read more

Oracle 44일차

[DB 장애별 복구 방법 정리 – archive log mode] 1. parameter file 유실 parameter file이 없어서 nomount부터가 안된다. * 해결 방법initdb2.ora를 백업이 있다면 가져오든가, 없으면 직접 쳐서 만들어서 DB 기동하면 됨. 2. controlfile 장애 parameter file에 기록된 controlfile이 실제로 존재해야 mount 단계로 갈 수 있음. case 1) 하나만 정상, 나머지 파일이 존재하지 않을 경우 : … Read more