본문 바로가기
728x90

Dev/Oracle39

[Oracle] 인덱스 구조 인덱스 기본 구조 루트 블록 브랜치 블록 하위 노드 블록을 찾아가기 위한 Data Block Address를 갖는다. 리프 블록 : 가장 마지막 레벨의 블록 인덱스 키 컬럼, 주소 정보(ROWID)를 갖는다. ※ ROWID : 해당 테이블 레코드를 찾아가기 위한 주소 정보. 데이터파일 번호, 블록 번호, 로우 번호 같은 테이블 레코드의 물리적 위치 정보를 포함. 확장 ROWID 포맷 데이터 오브젝트 번호(6자리) : 데이터베이스 세그먼트를 식별하기 위해 사용되는 번호 데이터파일 번호(3자리) : 로우가 속한 데이터 파일 번호 블록 번호(6자리) : 해당 로우가 저장된 데이터 블록 번호 로우번호 (3자리) : 블록 내에서 각 로우에 붙여진 일련번호로서, 0부터 시작 ## ROWID 확인 SELECT ROW.. 2022. 6. 21.
[Oracle] 복구한 DB 원복 AS-IS : TESTDB , TO-BE : ORCL (초기상태) 다시 ORCL DB를 보게 만들어줘야 한다 .profile 수정 (TESTDB - > ORCL) (TESTDB)/> cd (TESTDB)/oracle/app/oracle/product/192> vi .profile # 수정 전 .profile ... export ORACLE_SID=TESTDB export ORACLE_UNQNAME=TESTDB ... # 수정 후 .profile ... export ORACLE_SID=ORCL export ORACLE_UNQNAME=ORCL ... # profile 적용 (TESTDB)/oracle/app/oracle/product/192> . ./.profile (ORCL)/oracle/app/oracl.. 2022. 6. 20.
[Oracle] RMAN 복구 목차 FULL BACKUP + ARCH 복구 FULL BACKUP 복구 ARCH 복구 ※ 모든 복구는 다른 데이터베이스에서 복구하는 상황을 가정한다. 복구를 위해 사전에 init.ora 파일 세팅해둘것 vi $ORACLE_HOME/dbs/initTESTDB.ora 1. FULL BACKUP + ARCH 복구 192.168.4.41 (TESTDB) -> VM (TESTDB) 이름은 동일하게 맞춰준다. RMAN으로 FULL BACKUP을 해주고 추가로 데이터를 쌓은 뒤 ARCHIVED LOG FILE은 파일 자체를 복사해왔다. 복구 과정은 VM C7 (스테이지DB) 에서만 진행된다. profile 설정 변경 . ./.profile 혹은 export ORACLE_SID=TESTDB export ORACLE_U.. 2022. 6. 19.
[Oracle] RMAN Backup RECOVERY MANAGER (RMAN) : 오라클에서 제공하는 백업 및 복구 작업을 수행하고, 백업 전략 관리를 자동화하는 솔루션 특징 : 증분 레벨 (INCREMENTAL LEVEL) 백업 기능 지원 BLOCK CHANGE TRACKING 기능 백업 수행 중 훼손된 블록 감지 자주 실행하는 작업을 스크립트로 저장 가능 사용 중인 블록만 백업 백업 수행시 압축 지원 제한 사항 : OPEN 상태에서 백업을 받으려면 DB가 ARCHIVE LOG MODE 이어야 한다. DB가 MOUNT 또는 OPEN 상태여야 한다. 백업 가능 대상 DATABASE TABLESPACE DATAFILE ARCHIVED REDO LOG CONTROL FILE +) ONLINE REDO LOG에 대해서는 백업하지 못하므로 ARC.. 2022. 6. 17.
[Oracle] 조인 정리 1. Nested Loop Join (NL 조인) 특징 테이블 간 조인을 한 레코드씩 순차적으로 수행한다. 랜덤액세스 방식으로, 대량의 데이터엔 비효율적이다. 수행 방법이 For loop와 유사 for tableA (Outer) for tableB (Inner) tableA.col == tableB.col 성능? 선행 테이블의 처리 범위, 스캔 범위가 작아야 유리하다. 선행 테이블은 조건 필터된 데이터를 풀 스캔하기 때문에, 선행 테이블의 데이터 양이 성능에 영향을 끼친다. 해당 결과를 가지고 후행 테이블에 접근할 때 인덱스를 사용하기 때문에, 후행 테이블의 인덱스가 잘 구성되어 있어야 좋은 성능을 낼 수 있다. => 선행 테이블의 데이터 양이 적고, 후행 테이블의 인덱스가 잘 구성되어 있을 수록 좋은 .. 2022. 6. 16.
[Oracle] 대기 이벤트 DBMS 내부에서 활동하는 수많은 프로세스 간에서는 상호작용이 필요하며, 그 과정에서 다른 프로세스가 일을 마칠 때까지 기다려야 하는 상황이 발생 그때마다 해당 프로세스는 자신이 일을 계속 진행할 수 있는 조건이 충족될 때까지 수면(Sleep)상태로 대기 구분 이벤트명 설 명 라이브러리 캐시 부하 latch : shared pool 라이브러리 캐시에서 SQL 커서를 찾고 최적화 하는 과정에서 경합이 발생하여 나타난 대기이벤트 latch : library cache 라이브러리 캐시에서 SQL 커서를 찾고 최적화 하는 과정에서 경합이 발생하여 나타난 대기이벤트 library cache lock SGA내의 library cache를 참조하기 위한 대기 library cache pin 수행중인 SQL이 참조하는.. 2022. 6. 15.
728x90