Oracle 61일차

[ RAC 설치 ] 1. 설치 시 필요 프로그램 1) 가상화 프로그램 : VMWare 2) 서버 접속 툴 : Putty, MobaXterm 3) 파일 전송 프로그램 : winscp 4) GUI 출력 : xmanager, xming(https://sourceforge.net/projects/xming) 5) 서버 이미지 파일(https://edelivery.oracle.com/) : OEL8(V1042736-01.iso, 8.10 버전) <—— 14,156,824,576 바이트 6) 오라클 설치 파일grid 19c install : V982068-01.zipserver 19c install : … Read more

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