10장. 회복과 병행 제어 트랜잭션 장애와 회복 병행 제어.

Slides:



Advertisements
Similar presentations
CUBRID 소개 (Object 개념) 서비스 사업부 / 기술지원팀. 목차 구조 일반적 특징 객체지향 특징 ORDB 개념을 이용한 스키마 ORDB 개념을 이용한 질의.
Advertisements

Oracle DB 구조 및 트랜잭션 관리 이경화 Database 의 구조 Program Global Area (PGA) Instance Database Buffer Cache Redo Log Buffer Library Cache Shared.
의료자원 규제현황과 개선방향 자원평가실. 의료자원 관리 개요 규제개혁 토론과제.
뇌를 자극하는 SQL Server 장. 트랜잭션과 잠금. 뇌를 자극하는 SQL Server 장. 트랜잭션과 잠금 2 / 18 트랜잭션 개념과 문법 트랜잭션 개념  하나의 논리적 작업단위로 수행되는 일련의 작업  전부 되거나, 전부 안 되거나의.
© DBLAB, SNU 화일구조. 강의 소개 - 화일구조  Instructor : Prof. Sukho Lee (301 동 404 호 )  홈페이지 :  교과목 개요 – 이 과목은 데이타 관리와 응용을 위한 화일 구조의 설계와.
SQL Server 2000 트랜잭션과 잠금 데브피아 세미나
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
화일구조.
연 합 남 전 도 회 월 례 회 1부 예배- 찬 송 장 다같이 2011년 1월 2일 1부 예배- 찬 송 장 다같이 기 도
사 업 계 획 2011년 제1호 - 2월 1일 2011 주 안에서 소통하며 화합하고 참여하며 헌신하는 남신도회
공교육 정상화 및 선행학습 금지 학부모 연수 부천송일초등학교.
국민기초생활보장제도가 맞춤형 급여로 국민께 다가갑니다.
능력단위명 : 데이터베이스 구현( _14v2) 대분류 중분류 소분류 세분류 정보통신(20) 정보기술(01)
소리가 작으면 이어폰 사용 권장!.
데이터 모델링 방법론 2003년 03월.
블록 만들기와 삽입 블록 만들기 도면의 여러 객체를 하나의 블록으로 만드는 기능입니다. 한 도면에 같은 모양의 객체들이
안재훈 기업고객사업본부/기술사업부 한국마이크로소프트
관계 대수와 SQL.
제 5 장 인덱스 생성 및 관리.
AWR DB 보고서 분석.
You YoungSEok 고급 SQL You YoungSEok
10장. 데이터베이스 보안과 권한 관리 데이터베이스 보안과 권한 관리
SQL Server 2005 데이터베이스 가용성 강화 측면에서 본 데이터베이스 미러링과 스냅샷, 복제
Toad for Oracle 설치 방법.
EM 을 이용한 오라클 DataGuard 구성방안 (RAC + EM + DataGuard)
제 8장. 멀티미디어 데이터베이스 및 정보검색 시스템
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
장윤석과장 Technology Specialist (주)한국마이크로소프트
트랜잭션과 잠금 트랜잭션 처리 메커니즘을 자세히 이해한다. 트랜잭션의 종류를 파악한다.
교육팀 도경모 Big.
Oracle DBMS 설치.
Database 소개.
1장. 데이터베이스 시스템 컴퓨터를 사용하여 정보를 수집하고 분석하는데 데이터베이스 기술이 활용되고 있음
21강. 스프링JDBC JDBC를 이용한 반복코드 줄이기 Spring빈을 이용한 코드 간소화
트랜잭션(Transaction) I DBMS는 다수 사용자(Multi User) 용 대표적인 DB 응용
YOU Youngseok 트랜잭션(Transaction) YOU Youngseok
01 데이터베이스 개론 데이터베이스의 등장 배경 데이터베이스의 발전 과정 데이터베이스의 정의 데이터베이스의 특징
트랜잭션 처리(Transaction Processing)
문양세 (1st version: 문성우) (revised by 손시운)
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
~27 윤형기 Python 프로그래밍 (보충) ~27 윤형기
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
Design of Flash-Based DBMS: An In-Page Logging Approach
성균관대학교 전자전기컴퓨터공학과 오영환, 박효진
Chapter11 웹 스토리지 & 웹 데이터베이스
제 20 장 오라클에서 회복 및 백업 기능.
View(뷰) 1 가상 테이블(Virtual Relation)
고구려,백제,신라의 건국과 발전 Start!
데이터베이스 (Databases) 데이터베이스 소개 문양세 강원대학교 IT대학 컴퓨터과학전공.
기업고객사업본부 / 기술사업부 한국마이크로소프트
(주)아이티아이에스 각 분야별 신입/경력사원 모집
1조 김성수 백현기 석광우 김지원 박광연.
학습목표 학습목표 본 장은 동시성 제어와 잠금(lock) 등 효과적인 트랜잭션 관리 기법 과 필요한 명령을 다룬다. 또한 데이터베이스의 장애에 대비하여 안전한 데이터의 관리를 위한 백업과 복원 기법, 서로 다른 DBMS 간이나 다른 서버 사이의 데이터 교환을 위한 데이터.
데이터베이스 (Database) 데이터베이스와 데이터베이스 사용자 문양세 강원대학교 IT대학 컴퓨터과학전공.
12 데이터 무결성 제약조건 데이터 무결성 제약조건의 개념 데이터 무결성 제약조건의 종류 무결성 제약조건의 생성 방법.
NoSQL 박훈
1. 트랜잭션 (1) 트랜잭션 1) 트랜잭션의 정의 ① A collection of operations that performs a single logical function in a database application. (데이터베이스 응용프로그램에서 하나의 논리적 기능을.
화일구조.
제안 목적 고객성향 분석으로 매출 증대 유사업체 분석으로 신상품 홍보 원가요소 분석 및 피드백으로 원가율 관리
청각기관의 구조와 기능2 옥정달.
22강. 트랜잭션(Transaction)-I
제 18 장 (Oracle) 오라클에서 트랜잭션 지원
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
스님에게 빗을 팔아라..
대림대학교 2017년도 1학기 강의 왕보현 순서도와 스크래치 6주차 대림대학교 2017년도 1학기 강의 왕보현
데이터 베이스의 내부 구조.
10주 MariaDB에서 트랜잭션 지원 및 동시성 제어 기능
Mariadb 트랜잭션과 동시성 제어 장종원
체력 운동과 건강.
Presentation transcript:

10장. 회복과 병행 제어 트랜잭션 장애와 회복 병행 제어

학습목표 병행 제어와 회복 작업의 기본 단위인 트랜잭션의 개념을 이해한다. 데이터베이스를 장애로부터 복구하는 다양한 회복 기법을 익힌다. 여러 사용자가 동시에 접근할 수 있도록 트랜잭션 수행을 통제하는 병행 제어 기법을 익힌다.

01 트랜잭션 트랜잭션(transaction)의 개념 데이터베이스 관리시스템의 기능 하나의 작업을 수행하기 위해 필요한 데이터베이스 연산들을 모아놓은 것으로 데이터베이스의에서 논리적인 작업의 단위 또는 장애가 발생했을 때 데이터를 복구하는 작업 단위 작업 수행에 필요한 SQL 문들의 모임 특히, 데이터베이스를 변경하는 INSERT, DELETE, UPDATE 문의 실행을 관리 데이터베이스 관리시스템의 기능 - 다수 사용자가 동시에 사용하더라도 항상 모순 없는 정확한 데이터를 유지하는 기능 제공 - 장애가 발생하더라도 빠른 시간 내에 원래의 상태로 복구 할 수 있는 기능 제공 - 항상 정확하고 일관된 상태를 유지할 수 있는 기능 제공 등 ☞ DBMS 기능의 중심에는 트랜잭션이 있다.

처리 순서는 중요하지 않지만 두 개의 UPDATE 문이 모두 정상적으로 실행되어야 함 01 트랜잭션(컴퓨터로 처리하는 작업의 단위) 처리 순서는 중요하지 않지만 두 개의 UPDATE 문이 모두 정상적으로 실행되어야 함 트랜잭션의 예 (1)

정상적으로 실행되어야 상품주문 트랜잭션이 성공적으로 수행됨 01 트랜잭션 트랜잭션의 예 (2) INSERT 문과 UPDATE 문이 모두 정상적으로 실행되어야 상품주문 트랜잭션이 성공적으로 수행됨

01 트랜잭션 트랜잭션의 특성(ACID 특성)

01 트랜잭션 트랜잭션의 특성 – 원자성(atomicity) 트랜잭션의 연산들이 모두 정상적으로 실행되거나 하나도 실행되지 않아야 하는 all-or-nothing 방식을 의미 만약 트랜잭션 수행 도중 장애가 발생하면? 지금까지 실행한 연산들 모두 처리를 취소하고 데이터베이스를 트랜잭션 작업 전 상태로 되돌려야 함 원자성 보장을 위해 장애 발생 시 회복 기능이 필요

01 트랜잭션 트랜잭션의 특성 – 원자성

01 트랜잭션 트랜잭션의 특성 – 원자성

01 트랜잭션 트랜잭션의 특성 – 일관성(consistency) 트랜잭션이 성공적으로 수행된 후에도 데이터베이스가 일관성 있는 상태를 유지해야 함을 의미

01 트랜잭션 트랜잭션의 특성 – 일관성

01 트랜잭션 트랜잭션의 특성 – 격리성(isolation) 수행 중인 트랜잭션이 완료될 때까지 다른 트랜잭션들이 중간 연산 결과에 접근할 수 없음을 의미 여러 트랜잭션이 동시에 수행되더라도 마치 순서대로 하나씩 수행되는 것처럼 정확하고 일관된 결과를 얻을 수 있도록 제어하는 기능이 필요

01 트랜잭션 트랜잭션의 특성 – 격리성 계좌번호=200;

01 트랜잭션 트랜잭션의 특성 – 지속성(durability) 트랜잭션의 4가지 특성을 보장하기 위해 필요한 기능 트랜잭션이 성공적으로 완료된 후 데이터베이스에 반영한 수행 결과는 영구적이어야 함을 의미 지속성의 보장을 위해서는 장애 발생 시 회복 기능이 필요 트랜잭션의 4가지 특성을 보장하기 위해 필요한 기능

01 트랜잭션 트랜잭션의 주요 연산

01 트랜잭션 트랜잭션의 주요 연산 – commit 연산 트랜잭션의 수행이 성공적으로 완료되었음을 선언하는 연산

01 트랜잭션 트랜잭션의 주요 연산 – rollback 연산 트랜잭션의 수행이 실패했음을 선언하는 연산

01 트랜잭션 트랜잭션의 상태

01 트랜잭션 트랜잭션의 상태 활동(active) 상태 부분 완료(partially committed) 상태 트랜잭션이 수행을 시작하여 현재 수행 중인 상태 부분 완료(partially committed) 상태 트랜잭션의 마지막 연산이 실행을 끝낸 직후의 상태 완료(committed) 상태 트랜잭션이 성공적으로 완료되어 commit 연산을 실행한 상태 트랜잭션이 수행한 최종 결과를 데이터베이스에 반영하고 데이터베이스가 새로운 일관된 상태가 되면서 트랜잭션이 종료됨

01 트랜잭션 트랜잭션의 상태 실패(failed) 상태 철회(aborted) 상태 장애가 발생하여 트랜잭션의 수행이 중단된 상태 철회(aborted) 상태 트랜잭션의 수행 실패로 rollback 연산을 실행한 상태 지금까지 실행한 트랜잭션의 연산을 모두 취소하고 트랜잭션이 수행되기 전의 데이터베이스 상태로 되돌리면서 트랜잭션이 종료됨 철회 상태로 종료된 트랜잭션은 상황에 따라 다시 수행되거나 폐기됨

02 장애와 회복 장애(failure) 시스템이 제대로 동작하지 않는 상태 표 10-1 장애의 유형 연산자 설명 트랜잭션 장애 의미 트랜잭션 수행 중 오류가 발생하여 정상적으로 수행을 계속할 수 없는 상태 원인 트랜잭션의 논리적 오류, 잘못된 데이터 입력, 시스템 자원의 과다 사용 요구, 처리 대상 데이터의 부재 등 시스템 장애 하드웨어의 결함으로 정상적으로 수행을 계속 할 수 없는 상태 하드웨어 이상으로 메인 메모리에 저장된 정보가 손실되거나 교착 상태가 발생한 경우 등 미디어 장애 디스크 장치의 결함으로 디스크에 저장된 데이터 베이스의 일부 혹은 전체가 손상된 상태 디스크 헤드의 손상이나 고장 등

02 장애와 회복 데이터베이스를 저장하는 저장 장치의 종류 표 10-2 저장 장치의 종류 저장 장치 설명 휘발성(volatile) (소멸성) 의미 장애가 발생하면 저장된 데이터가 손실됨 예 메인 메모리 등 비휘발성(nonvolatile) (비소멸성) 장애가 발생해도 저장된 데이터가 손실되지 않음 단, 디스크 헤더 손상 같은 저장장치 자체에 이상이 발생하면 데이터가 손실될 수 있음 디스크, 자기 테이프, CD/DVD 등 안정(stable) 비휘발성 저장 장치를 이용해 여러 개 복사본을 만드는 방법으로, 어떤 장애가 발생해도 데이터가 손실되지 않고 데이터를 영구적으로 저장할 수 있음

02 장애와 회복 트랜잭션의 수행을 위해 필요한 데이터 이동 연산 디스크와 메인 메모리 간의 데이터 이동 연산 : input / output 메인 메모리와 프로그램 변수 간의 데이터 이동 연산 : read / write

02 장애와 회복 디스크와 메인 메모리 간의 데이터 이동 연산의 필요성 일반적으로 데이터베이스는 비휘발성 저장 장치인 디스크에 상주 트랜잭션이 데이터베이스의 데이터를 처리하기 위해서는 데이터를 디스크에서 메인 메모리로 가져와 처리한 다음 그 결과를 디스크로 보내는 작업이 필요함

02 장애와 회복 디스크와 메인 메모리 간의 데이터 이동 연산 input 연산 / output 연산 블록(block) 단위로 수행됨 디스크 블록 : 디스크에 있는 블록 버퍼 블록 : 메인 메모리에 있는 블록

02 장애와 회복 메인 메모리와 변수 간의 데이터 이동 연산 read 연산 / write 연산 응용 프로그램에서 트랜잭션의 수행을 지시하면 메인 메모리 버퍼 블록에 있는 데이터를 프로그램의 변수로 가져오고 데이터를 처리한 결과를 저장하고 있는 변수 값을 메인 메모리 버퍼 블록으로 옮기는 작업이 필요

02 장애와 회복 트랜잭션을 데이터 이동 연산을 포함한 프로그램으로 표현한 예

02 장애와 회복 회복(recovery) 장애가 발생했을 때 데이터베이스를 장애가 발생하기 전의 일관된 상태로 복구시키는 것 트랜잭션의 특성을 보장하고, DB를 일관된 상태로 유지하기 위해 필수적인 기능 회복 관리자(recovery manager)가 담당 장애 발생을 탐지하고, 장애가 탐지되면 데이터베이스를 복구하는 기능을 제공

02 장애와 회복 회복을 위해 데이터베이스 복사본을 만드는 방법 데이터베이스 핵심 원리는 데이터 중복!

02 장애와 회복 로그를 이용한 회복 연산

02 장애와 회복 로그 파일 데이터를 변경하기 이전의 값과 변경한 이후의 값을 기록한 파일 레코드 단위로 트랜잭션 수행과 함께 기록됨 표 10-3 로그 레코드의 종류 로그 레코드 설명 <Ti ,start> 의미 트랜잭션 Ti가 수행을 시작했음을 기록 예 <T1 ,start> <Ti ,X, old_value, new_value> 트랜잭션 Ti가 데이터 X를 이전 값(old_value)에서 새로운 값(new_value)으로 변경하는 연산을 실행했음을 기록 <T1 ,X, 10000, 5000> <Ti ,commit> 트랜잭션 Ti가 성공적으로 완료되었음을 기록 <T1 ,commit> <Ti ,abort> 트랜잭션 Ti가 철회되었음을 기록 <T1 ,abort>

02 장애와 회복 로그 기록 예

02 장애와 회복 회복 기법

02 장애와 회복 로그 회복 기법 – 즉시 갱신(immediate update) 회복 기법 트랜잭션 수행 중에 데이터 변경 연산의 결과를 데이터베이스에 즉시 반영 장애 발생에 대비하기 위해 데이터 변경에 관한 내용을 로그 파일에 기록 데이터 변경 연산이 실행되면 로그 파일에 로그 레코드를 먼저 기록한 다음 데이터베이스에 변경 연산을 반영 장애 발생 시점에 따라 redo나 undo 연산을 실행해 데이터베이스를 복구

02 장애와 회복 로그 회복 기법 – 즉시 갱신 회복 기법

02 장애와 회복 로그 회복 기법 – 즉시 갱신 회복 기법

02 장애와 회복 로그 회복 기법 – 즉시 갱신 회복 기법 적용 예 에서 장애 발생 시 : undo(T1) 에서 장애 발생 시 : undo(T2), redo(T1)

02 장애와 회복 로그 회복 기법 – 지연 갱신(deferred update) 회복 기법 트랜잭션 수행 중에 데이터 변경 연산의 결과를 로그에만 기록해두고, 트랜잭션이 부분 완료된 후에 로그에 기록된 내용을 이용해 데이터베이스에 한번에 반영 트랜잭션 수행 중에 장애가 발생하면 로그에 기록된 내용을 버리기만 하면 데이터베이스가 원래 상태를 그대로 유지하게 됨 undo 연산은 필요 없고 redo 연산만 사용 로그 레코드에는 변경 이후 값만 기록하면 됨 : <T1, X, new_value> 형식

02 장애와 회복 로그 회복 기법 – 지연 갱신 회복 기법

로그 기록을 무시하고 별다른 회복 조치를 하지 않음 02 장애와 회복 로그 회복 기법 – 지연 갱신 회복 기법 적용 예 에서 장애 발생 시 : 로그 기록을 무시하고 별다른 회복 조치를 하지 않음 에서 장애 발생 시 : redo(T1)

02 장애와 회복 검사 시점 회복 기법 로그 기록을 이용하되, 일정 시간 간격으로 검사 시점(checkpoint)를 만듦 검사 시점이 되면 모든 로그 레코드를 로그 파일에 기록하고 데이터 변경 내용을 데이터베이스에 반영한 후 검사 시점을 표시하는 <checkpoint L> 로그 레코드를 로그 파일에 기록함 <checkpoint L>에서 L은 현재 실행되고 있는 트랜잭션의 리스트 장애 발생 시 가장 최근 검사 시점 이후의 트랜잭션에만 회복 작업 수행 가장 최근의 <checkpoint L> 로그 레코드 이후 기록에 대해서만 회복 작업 수행 회복 작업은 즉시 갱신 회복 기법이나 지연 갱신 회복 기법을 이용해 수행 로그 전체를 대상으로 회복 기법을 적용할 때 발생할 수 있는 비효율성의 문제를 해결 검사 시점으로 작업 범위가 정해지므로 불필요한 회복 작업이 없어 시간이 단축됨

02 장애와 회복 미디어 회복 기법 디스크에 발생할 수 있는 장애에 대비한 회복 기법 덤프(복사본) 이용 전체 데이터베이스의 내용을 일정 주기마다 다른 안전한 저장 장치에 복사 디스크 장애가 발생하면 가장 최근에 복사해둔 덤프를 이용해 장애 발생 이전의 데이터베이스 상태로 복구하고 필요에 따라 redo 연산을 수행