Oracle 71일차

[oracle database storage 구성 방식] 1. file system DB를 구성하는 file(datafile, controlfile, redo log file)이 OS file 형태로 생성되는 방식.관리가 편함. (ls, cp, mv, rm 등의 파일 관리가 가능)보안, 장애에 취약.OS를 통해서 disk I/O가 발생해서 속도가 느리다.공유 디스크 설정 불가 -> RAC storage로는 적합X 2. raw device DB를 구성하는 file을 OS를 거치지 않고 disk에 직접 … 더 읽기

Oracle 70일차

[디스크 증설 작업] 기존에 사용 중인 ASM 디스크 그룹의 사이즈가 부족한 경우 새로운 디스크를 생성하여 기존 디스크 그룹에 디스크를 할당 1. 용량 확인 2. 새로운 디스크 추가 3. 물리, 논리 볼륨 생성 (root 계정) 4. ASM이 무는 디스크 생성 (root) 5. asmca로 공유 디스크 설정 6. 2번 서버 기동 7. 디스크 확인 [디스크 삭제] 1. … 더 읽기

Oracle 69일차

[tbs 장애 시 복구] 0. tbs 만들고 1. recover_test3 table 만들고 2. online backup 후 log switch 5번 3. 시점 확인 4. 장애 발생 5. scp로 parameter, data, archive, controlfile script 6. copydb 만들기 7. recover & open 8. dblink로 보내기 copy->RAC는 어제 글에 필기 되어있음.RAC->copy는 copy쪽에 listener를 만들어야 돼서 복잡함. [ASM 디스크 교체 / … 더 읽기

Oracle 68일차

[OEL8 + 19cR3 single DB 설치] OEL8 : V1009565-01.iso D드라이브, 디스크 100GB, 3GB memory, 1 cpu core, /boot 500M, swap 8192M, / 나머지Legacy UNIX Compatibility, Developement Toolssecurity disableIPv4 manual 172.16.124.134/24/172.16.124.2/8.8.8.8 19cR3 single : V982063-01.zip 설치 그대로로 server class 그대로 그대로 그대로 그대로 이름 ora19db 로 수정하고 밑에 pdb이름도 orapdb로 바꾸기 Character sets만! 변경 그대로 그대로 … 더 읽기

Oracle 67일차

[control file 장애] 1) DB 정상 종료 후 controlfile 손상의 경우 recover 필요없음.2) 운영 중에 controlfile 손상의 경우 DB 정상 종료 불가 & recover 필요. 모든 control file 손상 시 해결 방법1) old control file을 사용한 복구2) controlfile 재생성 스크립트로 재생성 실습 DB 정상 종료 후 controlfile 손상의 경우. 1. 백업 2. srvctl stop database … 더 읽기

Oracle 66일차

[asm 구성 정보 확인] 1. DISK_GROUP 2. 실제 DISK 3. 실제 FILE [asm 환경에서 테이블스페이스 관리] 1. 테이블스페이스 생성 2. datafile 추가 3. datafile resize 4. datafile autoextend on/off 5. 테이블스페이스 삭제 실습 A유저 생성, B테이블스페이스 생성하는데 hr소유의 테이블 사이즈만큼, A유저가 B테이블스페이스 내 테이블 생성하도록 작업. hr유저(orcl DB)의 모든 테이블을 A유저 소유로 생성. 1. A유저 … 더 읽기

Oracle 65일차

[RAC 환경에서의 auto start] 아래에서 하는 명령어는 19c에서 많이 바뀐거다. 따라서 그 이전 버전을 만지게 되면 명령어 좀 찾아보기. 1. 서버 기동 시 crs 자동 기동 2. crs 기동 시 DB 자동 open [백업] 1. online backup (= hot backup) archive log mode 상태에서 백업 가능.DB online 중 테이블스페이스, 데이터파일 단위로 백업.begin backup 모드로 전환 … 더 읽기

Oracle 64일차

[IP 종류] puvlic : 외부에서 (putty) 접근할 때 사용 private : rac에서 1번2번 노드끼리 통신할 때 사용 virtual : cluster 가 관리함. 한쪽 서버가 다운되어도 세션을 다른쪽 서버로 넘겨줄 수 있어서(failover) 접속이 끊기지 않게 됨. 그래서 기능이 끊기면 안되는 앱 WAS에서 사용한다. scan : 여기로 보내면 알아서 1번2번으로 load valance를 해준다. Orange로 RAC에 접속하기 위한 … 더 읽기

Oracle 60일차

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

Oracle 59일차

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

Oracle 57일차

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

Oracle 56일차

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

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 문제 : 변수처리되지 … 더 읽기

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 설치 시 자동으로 … 더 읽기

Oracle 52일차

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