728x90
반응형
SMALL

전체 글 342

Library Cache Pin _ procedure 생성 후 library cache pin 확인

■ Library Cache Pin - SQL문장이나 PL/SQL 객체를 고정하여 여러 session에서 공유되는 것을 보장하는 lock이다. 이는 공유 자원에 대한 동시 접근을 통제하여 데이터베이스의 일관성과 무결성을 유지하는 데 사용한다. 1. SQL문 hard parsing ▶ library cache pin을 exclusive mode 획득한다. - SQL문장이 처음 parsing 될때 해당 SQL 문장을 다른 session이 변경하지 못하도록 보호한다. 2. SQL문 execute 단계 ▶ library cache pin을 shared mode 획득한다. - 다른 session에서 동시에 동일한 SQL문장을 실행 할 수 있도록 한다. 3. SQL문 fetch 단계 ▶ library cache p..

Library Cache Lock_table 생성, 대량의 Data

=> 새롭게 접속 후 진행하기 #) 대량의 data 로드 하기 create table hr.test(id number, name char(10)); insert into hr.test select rownum, lpad(rownum, 10, '0') from dual connect by level alter문 확인되지 않음. 놓치는 경우가 있을 수 있다. select sql_text from v$sql where sql_id = '1mat065c25crk'; #) library cache 보는 위한 쿼리문 alter table hr.test modify name char(30); select count(*) from hr.test; select h.sid, substr(s.sql_text, 1 , 40)..

Library Cache Lock _ 같은 session에서 procedure 실행 후 wait event 확인

■ Library Cache Lock 1. Library Cache Lock은 Oracle 데이터베이스에서 사용되는 Lock의 일종으로, Library Cache Object(LCO)를 접근하거나 변경하는 경우 해당 LCO 에 대한 특정한 handle에 대해 획득하는 lock을 획득하는 것이다. 2. 여러 세션에서 동시에 동일한 LCO를 변경하는 것을 방지하기 위해서 사용한다. 3. Library cache lock 을 획득하지 못해 대기하는 경우, "library cache lock wait" event 가 발생한다. 참고) SELECT문 , DML, DDL 실행 : 해당 LCO를 변경하는 경우 handle-LCO-lock 이 획득된다. (예시) 1. SQL문장 hard parsing라면? ▶ libr..

Invalidations(무효화) 발생하는 경우

#) shared pool 을 비워주는 명령*2번 alter system flush shared_pool; SELECT sql_id, sql_text, parse_calls, loads, executions FROM v$sql WHERE sql_text LIKE '%hr.employees%' AND sql_text NOT LIKE '%v$sql%'; #) 샘플 테이블 생성 create table hr.emp as select * from hr.employees; alter system flush shared_pool; #) 확인 select last_name, salary from hr.emp where employee_id = 100; #) 조회했는지 확인 SELECT sql_id, sql_text, ..

shared pool _ select문의 실행 계획

#) shared pool 을 비워주는 명령*2번 alter system flush shared_pool; #) select문 실행 select * from hr.employees where employee_id = 100; #) HR 계정으로 로그인 해서 select문 실행 conn hr/hr SELECT * FROM hr.employees WHERE employee_id = 100; #) SQL문장의 실행 정보를 조회 -> hr.employees 를 포함한 SQL문장 검색 + v$sql 와 관련된 문장은 제외 -> SQL_ID(SQL문장 식별자), PARSE_CALLS(조회하는 횟수), LOADS(실행계획), EXECUTIONS(실행하는 횟수) SELECT sql_id, sql_text, parse_..

SAG(System Global Area) shared pool(공유 메모리), SELECT문 처리과정

■ SGA(System Global Area) 정의: Oracle 데이터베이스에서 사용되는 메모리 영역 - 데이터베이스 인스턴스를 실행하는 동안 메모리에 할당되며, 여러 중요한 구성 요소를 포함하고 있다. - 모든 user process 가 공유하는 공유 메모리 영역으로, 데이터베이스의 성능과 안정성에 영향을 미친다. ■ shared pool(공유메모리) - ★libarary cache : SQL, PL/SQL문이 저장되어 있는 메모리 -> why? 실행계획 - ★data dictionary cache : 딕셔러리 정보들이 저장되어 있는 메모리 - session data 정보 : 사용자 세션에 대한 SQL 문장, 파싱된 쿼리 계획, 사용자의 테이블과 인덱스에 대한 엑세스 경로 정보 등 예시) v$sess..

incarnation 하는 방법

#1) rman으로 접속 [oracle1@oracle ~]$ rman target / #2) 정상적으로 내렸다가 mount까지 DB 올리기 RMAN> shutdown immediate RMAN> startup mount; #3) 현재의 incarnation을 확인합니다. RMAN> list incarnation; #4) scn 번호와 비교해서 incarnation ID 로 돌아가기 => 미리 current한 번호 확인! RMAN> reset database to incarnation (이전의 incarnation id 번호) ; #5) 복원할 incarnation이 제대로 설정되었는지 확인. RMAN> list incarnation; #6) 이전 incarnation으로 데이터베이스를 복원하고 열기(op..

Backup/RMAN 2024.01.31

블록 손상(block corruption)

■ 블록 손상(block corruption) - 블록을 읽거나 쓸때마다 일관성 검사한다. 1) 블록에 대한 블록버전 체크 2) 블록 dba 값(data block address)과 비교되는 캐시의 dba 값을 체크 3) 블록에 대한 활성화된 블록의 체크섬(=:블록의 건강상태) - 손상된 블록의 경우 1) media 손상 2) 논리적/ 소프트웨어 손상(물리적) #) backup 있는지 확인 => cold/hot 백업 , RMAN 백업 체크 [oracle1@oracle cold_20240131]$ ls [oracle1@oracle hot_20240131]$ ls RMAN> list backup; #) 스키마 확인 RMAN> report schema; #) 샘플 테이블 생성 create table hr.em..

Backup/FlashBack 2024.01.31

Flashback Data Archive, Flashback Database

#) 데이터베이스 인스턴스에 설치되어 활성화된 옵션 및 기능의 정보 확인 select * from v$option; Flashback Table ★ Flashback Database ★ Flashback Data Archive ★ ■ Flashback Data Archive - 기록에 대한 데이터 저장소, DML 작업 - FBDA 백그라운드 프로세스를 사용하여 flashback data archive에 대한 활성화되어 있는 테이블의 데이터를 자동으로 추적하고 아카이브 한다. => 데이터를 저장하기 위해서는 별도의 공간이 필요하다.(tablespace 필요하다) => alert_ora11g.log 계속적으로 확인해줘야 한다! # fda 를 저장할 테이블스페이스 생성 => 공간 용량 관리 필수! ★, ale..

Backup/FlashBack 2024.01.31

Flashback Query, Flashback version query, Flashback Table

■ Flashback Query - 특정 시간에 query를 수행할 수 있다. - select 문의 as of 절을 사용하여 데이터를 확인 할 시간 기록을 지정할 수 있다. - 데이터의 불일치 분석에 유용하다. #) scn 번호 확인 select current_scn from v$database; #) scn 번호, 시간+날짜 정보 확인 select current_scn, systimestamp from v$database; #) 테이블 생성 후 확인 create table hr.emp_30 as select * from hr.employees where department_id = 30; => scn/시간+날짜 체크하기 select count(*) from hr.emp_30; #) update 문 + ..

Backup/FlashBack 2024.01.31
728x90
반응형
LIST