KR100365891B1 - 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를하지 않는 백업/회복 장치 및 그 방법 - Google Patents

주기억장치 상주형 데이터베이스 시스템에서 로그 처리를하지 않는 백업/회복 장치 및 그 방법 Download PDF

Info

Publication number
KR100365891B1
KR100365891B1 KR1020000076091A KR20000076091A KR100365891B1 KR 100365891 B1 KR100365891 B1 KR 100365891B1 KR 1020000076091 A KR1020000076091 A KR 1020000076091A KR 20000076091 A KR20000076091 A KR 20000076091A KR 100365891 B1 KR100365891 B1 KR 100365891B1
Authority
KR
South Korea
Prior art keywords
backup
transaction
pages
main memory
page
Prior art date
Application number
KR1020000076091A
Other languages
English (en)
Other versions
KR20020047601A (ko
Inventor
한미경
최완
김해근
최미선
송은미
정진미
김영국
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020000076091A priority Critical patent/KR100365891B1/ko
Publication of KR20020047601A publication Critical patent/KR20020047601A/ko
Application granted granted Critical
Publication of KR100365891B1 publication Critical patent/KR100365891B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions

Abstract

본 발명은 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를 하지 않는 백업/회복 장치 및 그 방법에 관한 것으로, 주기억장치 상주형 데이터베이스 시스템을 위한 로그 처리를 하지 않는 대신, 주기억장치의 그림자 영역에 갱신되는 페이지를 직접 복사하여 수정하고 수정된 페이지를 안정기억장치로 1단계 백업을 실시한 후, 최종적으로 안정기억장치에서 백업디스크로 2단계 백업을 실시함으로써, 시스템 전체의 성능을 향상시킨 백업/회복 장치 및 그 방법을 제공하기 위하여, 주기억장치에서의 트랜잭션 수행 결과에 따라, 그림자 영역에서 현재 트랜잭션에 의해 변경된 페이지들을 안정기억장치의 백업 버퍼로 첫 번째 백업을 실시하는 제 1 단계; 상기 안정기억장치를 통해 백업 버퍼에서 백업 디스크로 두 번째 백업을 실시하는 제 2 단계; 및 시스템 오류 발생시 백업 리스트에 있는 페이지를 상기 주기억장치 상주형 데이터베이스로 적재하여 회복시키는 제 3 단계를 포함하며, 주기억장치 상주형 데이터베이스 시스템 등에 이용됨.

Description

주기억장치 상주형 데이터베이스 시스템에서 로그 처리를 하지 않는 백업/회복 장치 및 그 방법{Backup/recovery Apparatus and method for non-log processing of real-time main memory database system}
본 발명은 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를 하지 않는 백업/회복 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 특히 별도의 로그를 생성하거나 처리할 필요없이 주기억장치의 일부분을 실제 데이터 갱신이 발생하는 그림자 영역으로 사용하도록 그림자 페이징 기법을 사용하고, 안정기억장치를 백업 공간으로 활용하여 주기억장치의 그림자 영역에서 안정기억장치로의 1단계 백업을 실시하고 안정기억장치에서 백업 디스크로 2단계 최종 백업을 실시함으로써, 시스템 전체의 성능을 향상시킨 백업/회복 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
일반적으로, 데이터데이스 회복 기법은, 로그기반 회복기법과 그림자 페이징 기법을 기본으로 하며, 기존의 주기억장치 데이터베이스 시스템(MMDB : Main-Memory Database System)은 로그기반 회복기법 또는 로그기반 회복기법과 그림자 페이징 기법을 병행하여 사용하고 있다.
첨부된 도 1 은 종래의 주기억장치 상주형 데이터베이스 회복 시스템의 일실시예 구성도로서, 주기억장치 상주형 데이터베이스(11)와 로그 버퍼(log buffer)를 포함하는 주기억장치(10)와, 페이지를 저장하기 위한 백업 데이터베이스(20)와, 주기억장치 상주형 데이터베이스(11)의 로그를 기록하는 로그 디스크(30)를 구비한다.
도 1에 도시된 바와 같이, 로그 기반 회복 기법은 회복 처리 시 실행취소(UNDO) 및 재시행(REDO) 연산을 모두 사용하고, 트랜잭션(transaction) 철회 시 실행취소(UNDO) 연산을 수행한다. 반면에, 로그와 그림자 페이징을 병용하는 경우에는 트랜잭션 철회 또는 회복작업 수행시 재수행(REDO) 연산만을 수행하여 좀더 효율적인 처리를 수행하게 된다.
그러나, 종래의 이 두 가지 방법은 모두 로그를 사용하기 때문에 다음과 같은 공통적인 문제점들이 있다.
첫째, 로그 처리 기법은 데이터베이스에 대한 처리가 모두 로그로 기록되기 때문에 시스템 성능을 저하시키게 된다. 즉, 로그의 생성 및 기록, 저장이 트랜잭션 수행 중에 이루어지기 때문에 그 수행 시간을 지연시키고, 결국 MMDB(Main-Memory Database System)의 장점인 빠른 수행을 상쇄시키게 된다.
둘째, 시스템 오류 발생시 재가동하기 전에 데이터베이스를 복구하기 위하여 로그를 반영하게 되는데, 그것은 새로운 트랜잭션의 처리를 지연시킴으로써 시스템 다운 시간을 증가시키게 된다.
셋째, 회복처리가 트랜잭션에 미치는 영향을 최소화하기 위하여 로그 기반 회복 기법에서 널리 사용되고 있는 검사점 기법은 가장 최신의 데이터베이스 내용을 백업 디스크에 유지함으로써 회복 시 로그의 처리 시간을 가장 짧게 하기 위한 방법으로써, 로그 기반의 회복 시스템에서는 반드시 필요하다. 특히, 퍼지 검사점 기법은 그 수행이 트랜잭션 처리와 비동기적으로 이루어져서 시스템 성능에 영향을 거의 미치지 않기 때문에 검사점 방법들 중에서 가장 널리 사용되는 방법이다. 그러나, 이 방법은 두 개의 중복된 백업 디스크 공간을 필요로 하기 때문에 추가적인 하드웨어가 필요한 문제점이 있다.
참고적으로, 로그 기반 방식을 사용하지 않는 주기억장치 상주형 데이터베이스 시스템 회복 방법에 대해 보다 상세히 설명하면 다음과 같다.
로그를 사용하지 않는 주기억장치 상주형 데이터베이스 시스템 회복 방법 방법과 관련하여 "안정기억장치를 이용한 주기억장치 상주형 데이터베이스 회복 방법"(대한민국 특허출원번호 "10-1999-0057328", 1999.12.13 출원)을 살펴보면 다음과 같다.
이 특허는 그림자 페이징 기법과 안정기억장치(stable memory)를 활용하여 로그 처리를 하지 않는 주기억장치 상주형 데이터베이스 시스템의 회복 기법에 관한 것으로, 안정기억장치를 데이터의 갱신이 발생하는 그림자 영역 및 백업 공간으로 사용하고 별도의 검사점을 실시하지 않고 그림자 영역의 페이지들 중에서 트랜잭션이 완료된 페이지들에 대해 백업 디스크로 직접 백업을 실시한다. 백업이 완료된 페이지들은 그림자 영역에서 삭제하지 않고 그림자 영역에 여유 공간이 있는 한 그대로 남겨두어서 추후의 다른 트랜잭션들에 의해 재사용될 수 있도록 한다.
주기억장치에는 데이터베이스의 원본이 저장되어 있으며, 안정기억장치는 데이터의 갱신이 이루어지는 그림자 영역과 백업되어질 페이지들을 저장하고 있는 백업 영역, 현재 수행되고 있는 트랜잭션이 사용 중인 페이지들에 대한 정보 및 안정기억장치에서 재사용 가능한 페이지들의 정보, 백업 디스크로 백업되어져야 할 페이지들에 대한 정보, 안정기억장치 내의 빈 페이지 정보를 위한 공간으로 구성된다.
따라서, 이 특허는 그림자 페이징 기법을 사용함으로써, 실행취소(undo)를 수행하여 로그의 필요성을 제거하며, 데이터 갱신 및 백업을 위한 공간으로 시스템 오류 시에도 내용이 그대로 보존되는 안정기억장치를 활용함으로써, 재시행(redo) 로그의 필요성을 제거하여 회복시 로그 레코드 반영을 하지 않기 때문에 시스템 전체의 성능 향상을 기대할 수 있는 효과를 가지고 있다.
그러나, 여기에서는 안정기억장치를 그림자 영역 및 백업 공간으로 활용하므로 요구되는 안정기억장치의 크기가 최악의 경우에는 MMDB 크기의 2배가 될 수 있고 일반적으로 안정기억장치의 접근 속도가 주기억장치보다 느리다는 점을 감안할 때 데이터 처리 속도가 저하될 수 있다는 문제를 가지고 있다. 주기억장치의 그림자 영역에서 데이터이 변경이 이루어지고 변경된 페이지들은 안정기억장치로 1단계 백업되었다가 최종적으로 안정기억장치에서 백업 디스크로 2단계 백업을 실시하도록 하는 방안이 제시되지는 않았다.
본 발명은, 상기한 바와 같은 문제점을 해결하기 위하여 제안된 것으로, 주기억장치 상주형 데이터베이스 시스템을 위한 로그 처리를 하지 않는 대신, 주기억장치의 그림자 영역에 갱신되는 페이지를 직접 복사하여 수정하고 수정된 페이지를 안정기억장치로 1단계 백업을 실시한 후, 최종적으로 안정기억장치에서 백업디스크로 2단계 백업을 실시함으로써, 시스템 전체의 성능을 향상시킨 백업/회복 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
도 1 은 종래의 주기억장치 상주형 데이터베이스 회복 시스템의 일실시예 구성도.
도 2 는 본 발명에 따른 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를 하지 않는 백업/회복 장치에 대한 일실시예 구성도.
도 3 은 본 발명에 따른 로그 처리를 하지 않는 백업/회복 장치 중 주기억장치의 일실시예 구성도.
도 4 는 본 발명에 따른 로그 처리를 하지 않는 백업/회복 장치 중 안정기억장치의 일실시예 구성도.
도 5 는 본 발명에 따른 로그 처리를 하지 않는 백업/회복 방법 중 트랜잭션 처리 및 1단계 백업 과정에 대한 일실시예 흐름도.
도 6 은 본 발명에 따른 로그 처리를 하지 않는 백업/회복 방법 중 트랜잭션 철회 처리 과정에 대한 일실시예 흐름도.
도 7 은 본 발명에 따른 로그 처리를 하지 않는 백업/회복 방법 중 2단계백업 처리 과정에 대한 일실시예 흐름도.
도 8 은 본 발명에 따른 로그 처리를 하지 않는 백업/회복 방법 중 시스템 오류 발생 후 회복을 수행하기 위한 과정에 대한 일실시예 흐름도.
* 도면의 주요 부분에 대한 부호의 설명
21 : 데이터처리기 22 : 회복처리기
23 : 주기억장치 24 : 안정기억장치
25 : 백업디스크
상기 목적을 달성하기 위한 본 발명은, 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를 하지 않는 백업/회복 장치에 있어서, 그림자 페이징 기법을 이용하여 트랜잭션을 수행하고, 트랜잭션의 수행결과에 따라 그림자 영역에서 현재 트랜잭션에 의해 변경된 페이지들을 백업 버퍼로 전달하여 1단계 백업을 실시하기 위한 데이터 처리수단; 상기 데이터 처리수단을 통해 1단계 백업된 백업 페이지들에 대하여 상기 백업 버퍼를 통해 제3 저장수단으로 2단계 백업을 실시하고, 시스템 오류 발생시 백업 리스트에 있는 페이지들을 MMDB(Main Memory Database) 영역에 적재하여 회복시키기 위한 회복 처리수단; 데이터베이스의 원본이 저장되는 MMDB 영역과 현재 수행되고 있는 트랜잭션의 변경 내용이 기록되는 그림자 영역에 대한 정보를 저장하기 위한 제1 저장수단; 상기 데이터 처리수단에 의해서 처리된 트랜잭션 페이지들을 저장하고, 상기 회복 처리수단에 의해 상기 제3 저장수단으로 백업되어져야 할 백업 페이지들을 저장하기 위한 제2 저장수단; 및 상기 회복 처리수단에 의해 2단계 백업된 페이지들을 유지하기 위한 상기 제3 저장수단을 포함하여 이루어진 것을 특징으로 한다.
본 발명은, 주기억장치 상주형 데이터베이스 시스템에 적용되는 로그 처리를 하지 않는 백업/회복 방법 있어서, 주기억장치에서의 트랜잭션 수행 결과에 따라, 그림자 영역에서 현재 트랜잭션에 의해 변경된 페이지들을 안정기억장치의 백업 버퍼로 첫 번째 백업을 실시하는 제 1 단계; 상기 안정기억장치를 통해 백업 버퍼에서 백업 디스크로 두 번째 백업을 실시하는 제 2 단계; 및 시스템 오류 발생시 백업 리스트에 있는 페이지를 상기 주기억장치 상주형 데이터베이스로 적재하여 회복시키는 제 3 단계를 포함하여 이루어진 것을 특징으로 한다.
또한, 본 발명은, 프로세서를 구비한 주기억장치 상주형 데이터베이스 시스템에, 주기억장치에서의 트랜잭션 수행 결과에 따라, 그림자 영역에서 현재 트랜잭션에 의해 변경된 페이지들을 안정기억장치의 백업 버퍼로 첫 번째 백업을 실시하는 제 1 기능; 상기 안정기억장치를 통해 백업 버퍼에서 백업 디스크로 두 번째 백업을 실시하는 제 2 기능; 및 시스템 오류 발생시 백업 리스트에 있는 페이지를 상기 주기억장치 상주형 데이터베이스로 적재하여 회복시키는 제 3 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명은 그림자 페이징 기법에 기반을 두고 주기억장치를 그림자 영역으로, 안정기억장치(stable memory)를 백업 버퍼로 활용하여 주기억장치-안정기억장치간, 안정기억장치-백업 디스크간의 2단계 백업을 실시함으로써, 별도의 로그 처리 및 검사점(checkpoint) 처리를 하지 않는 것을 특징으로 한다.
따라서, 본 발명은, 그림자 페이징 기법의 데이터 갱신을 위한 그림자 영역으로 주기억장치의 일부분을 사용하고 백업을 위한 공간으로 안정기억장치를 활용함으로써, 데이터베이스의 변경에 대한 로그 생성 및 회복 시 로그 레코드 반영을 하지 않을 뿐만 아니라 백업 작업이 트랜잭션 처리에 미치는 영향을 최소화함으로써, 시스템 전체의 성능을 향상시킬 수 있다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 2 는 본 발명에 따른 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를 하지 않는 백업/회복 장치에 대한 일실시예 구성도이다.
도 2에 도시된 바와 같이, 본 발명에 따른 백업/회복 장치는, 그림자 페이징 기법을 이용하여 트랜잭션을 수행하고, 트랜잭션의 수행결과에 따라 그림자 영역에서 현재 트랜잭션에 의해 변경된 페이지들을 안정기억장치(24)의 백업 버퍼로 전달하여 1단계 백업을 실시하는 데이터처리기(21)와, 데이터처리기(21)를 통해 1단계 백업된 백업 페이지들이 안정기억장치(24)의 백업 버퍼를 통해 백업 디스크(25)로 2단계 백업을 실시하고, 시스템 오류 발생시 백업 리스트에 있는 페이지들을 MMDB 영역에 적재하여 회복시키기 위한 회복처리기(22)와, 데이터베이스의 원본이 저장되는 MMDB 영역과 현재 수행되고 있는 트랜잭션의 변경 내용이 기록되는 그림자 영역에 대한 정보를 저장하기 위한 주기억장치(23)와, 데이터처리기(21)에 의해서 처리된 트랜잭션 페이지들을 저장하고, 회복처리기(22)에 의해 백업 디스크(25)로 백업되어져야 할 백업 페이지들을 저장하기 위한 안정기억장치(24)와, 회복처리기(22)에 의해 2단계 백업된 페이지들을 유지하기 위한 백업디스크(25)를 구비한다.
상기한 바와 같은 구조를 갖는 본 발명의 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를 하지 않는 백업/회복 장치의 동작을 상세하게 설명하면 다음과 같다.
본 발명에 따른 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를 하지 않는 백업/회복 장치는, 주기억장치(23)에 상주하는 MMDB(Main Memory Database) 영역의 페이지에 대한 수정 요구에 따라, 주기억장치(23)의 그림자 영역에 복사된 후 갱신되고 트랜잭션 완료시 MMDB에 반영된다. 이때, 그림자 영역에 있던 수정된 페이지는 안정기억장치(24)로 1단계 백업을 수행하기 위해 복사되며, 이후 회복 처리기(22)에 의해서 안정기억장치(24)에서 백업 디스크(25)로 저장되는 2단계 백업이 수행된다.
도 3 은 본 발명에 따른 로그 처리를 하지 않는 백업/회복 장치 중 주기억장치의 일실시예 구성도이다.
도 3에 도시된 바와 같이, 논리적인 페이지들로 분할되어 있는 주기억장치(23)는 크게 데이터베이스의 원본이 저장되는 MMDB 영역(301)과 현재 수행되고 있는 트랜잭션이 MMDB의 특정 페이지들의 내용을 변경시킬 경우 변경 내용을 기록하는 그림자 영역(302)으로 나뉘며, 데이터처리기(21)를 위해 필요한 정보를 저장하는 저장 공간(303 내지 305)으로 사용되기도 한다. 데이터처리기(21)는 트랜잭션 처리 및 1단계 백업 작업을 위해 트랜잭션 페이지 리스트(TPList : Transaction Page List)(303), 사용가능 페이지 리스트((UsableList : Usable page List)(304), 그림자 영역 프리 페이지 리스트(SFreeList : Shadow Area Free Page List)(305) 등의 정보를 일관성 있게 유지해야 한다.
여기서, 트랜잭션 페이지 리스트(303)는 현재 트랜잭션이 사용하고 있는 그림자 영역 내의 페이지들에 대한 연결 리스트이고, 트랜잭션 페이지 리스트(303)에 연결된 페이지들은 트랜잭션 완료 시점에서 안정기억장치(24)의 백업 버퍼로 복사된다(1단계 백업).
그리고, 사용가능 페이지 리스트(304)는 MMDB 영역(301)에서 그림자 영역(302)으로의 복사 비용을 경감시키기 위해 유지되는 정보로 그림자 영역(302)에 존재하는 페이지들 중에서, 현재 수행 중인 트랜잭션에 의해 재사용 가능한 페이지들에 대한 연결 리스트이다. 이전에 완료된 트랜잭션에 의해 사용되었던 페이지들이나 현재 트랜잭션에 의해 사용되고 있는 페이지들이 사용가능 리스트 페이지 리스트(304)에 의해서 관리되며, 트랜잭션이 어떤 페이지를 접근할 때는 항상 이정보를 먼저 검색한다. 그림자 영역 프리 페이지 리스트(305)는 주기억장치(23)내의 그림자 영역(302)의 빈 페이지들을 관리한다. 빈 페이지가 없을 경우에는, 사용가능 페이지 리스트(304)에서 현재 사용되지 않는 페이지들을 빈 페이지 리스트에 추가한다. 철회된 트랜잭션에 의해 사용되어진 페이지들이 그림자 영역 프리 페이지 리스트(305)에 추가된다.
도 4 는 본 발명에 따른 로그 처리를 하지 않는 백업/회복 장치 중 안정기억장치의 일실시예 구성도이다.
도 4에 도시된 바와 같이, 안정기억장치(24)는 백업 버퍼와 회복처리기(22)를 위한 정보 저장 공간으로 사용된다. 회복처리기(22)는 백업 디스크(25)로의 2단계 최종 백업을 담당하며, 이를 위해 백업 페이지 리스트(BackupList : Backup Page List)(402), 백업 버퍼 프리 페이지 리스트(BFreeList : Backup Buffer Free page list)(403) 등의 정보를 일관성있게 유지해야 한다.
여기서, 백업 페이지 리스트(402)는 회복처리기(22)에 의해 백업 디스크(25)로 백업되어져야 할 백업 버퍼 영역(401) 내의 페이지들에 대한 연결 리스트이다.
그리고, 백업 버퍼 프리 페이지 리스트(403)는 안정기억장치(24)의 백업 버퍼 영역(401) 내의 빈 페이지들을 관리한다. 이런 안정기억장치(24)는 현실적으로 구현이 어렵다거나 하드웨어적인 부담때문에 실제 데이터베이스 시스템에 이용하는 것이 어려웠으나 요즘에 들어서는 노트북처럼 배터리를 가진 백업시스템이나 플래쉬(flash) 메모리 등의 등장으로 현실성을 갖게 되었다.
그러면, 첨부된 도 5 내지 도 8을 참조하여 본 발명에 따른 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를 하지 않는 백업/회복 방법에 대해 자세히 설명한다.
도 5 는 본 발명에 따른 로그 처리를 하지 않는 백업/회복 방법 중 트랜잭션 처리 및 1단계 백업 과정에 대한 일실시예 흐름도이다.
먼저, 트랜잭션 처리 및 1단계 백업 과정을 살펴보면, 수행되는 트랜잭션에 의한 모든 변경은 해당 페이지를 그림자 영역(302)에 복사한 후 그림자 페이지 내에서 이루어진다. 만약, 이전 트랜잭션에 의해 변경된 페이지가 아직 그림자 영역(302)에 남아 있다면 MMDB로부터 다시 복사할 필요없이 이전 페이지를 그대로 이용하여 페이지 복사에 대한 비용까지도 경감시킨다.
이후, 트랜잭션이 완료되면 변경된 모든 페이지들은 MMDB에 반영되고 백업 버퍼에 복사된 후 그 내용을 안정기억장치(23)의 백업 버퍼에 복사하고 백업 리스트에 추가시키는 1단계 백업을 수행하여 추후에 회복처리기(22)에 의해 2단계 백업이 이루어질 수 있도록 한다. 완료된 트랜잭션에 대한 변경 페이지들은 이후의 다른 트랜잭션들에 의해 재사용될 수 있도록 하기 위해서 그림자 영역(302)에 그대로 유지된다.
다음으로, 상기한 바와 같은 구조를 갖는 본 발명에 따른 트랜잭션 처리 및 1단계 백업 과정의 동작을 도 5를 참조하여 상세히 설명하면 다음과 같다.
먼저, 수행되는 트랜잭션의 각 연산이 읽기 연산 또는 쓰기 연산인지를 확인한다(501).
확인결과, 트랜잭션의 각 연산이 읽기 연산이면 해당 페이지가 트랜잭션 페이지 리스트(303)에 존재하는지를 확인하여(502) 존재하면 그림자 영역(302)에서 해당 페이지를 읽고(503), 트랜잭션 페이지 리스트(303)에 존재하지 않으면 MMDB 영역(301)에서 해당 페이지를 읽는다(504).
이후, 트랜잭션을 처리한 후(505) 트랜잭션 페이지 리스트(303)에 있는 페이지들을 백업 버퍼에 복사하고, 백업 페이지 리스트(402)에 등록함으로써, 1단계 백업을 수행한 후(506) 트랜잭션 페이지 리스트(303)에 있는 페이지들을 MMDB 영역(301)으로 복사하여(507) 트랜잭션을 완료한다.
한편, 트랜잭션의 각 연산이 쓰기 연산이면 해당 페이지가 트랜잭션 페이지 리스트(303)에 존재하는지를 확인한다(508).
확인결과, 해당 페이지가 트랜잭션 페이지 리스트(303)에 존재하지 않으면 해당 페이지가 사용가능 페이지 리스트(304)에 존재하는지를 확인하여(509) 존재하면 그림자 영역(302)의 해당 페이지를 트랜잭션 페이지 리스트(303)에 연결하고, 그림자 영역(302)의 해당 페이지를 변경하여(511) 트랜잭션을 처리하는 과정(505)으로 진행하고, 해당 페이지가 사용가능 페이지 리스트(304)에 존재하지 않으면 그림자 영역 프리 페이지 리스트(305)로부터 그림자 영역(302)의 빈 페이지를 할당하고(512) MMDB 영역(301)에서 해당 페이지 내용을 할당받은 페이지에 복사한 후(513) 그림자 영역(302)의 해당 페이지를 변경하는 과정(511)으로 진행한다.
한편, 확인결과(508), 해당 페이지가 트랜잭션 페이지 리스트(303)에 존재하면 그림자 영역(302)의 해당 페이지를 변경하는 과정(511)으로 진행한다.
도 6 은 본 발명에 따른 로그 처리를 하지 않는 백업/회복 방법 중 트랜잭션 철회 처리 과정에 대한 일실시예 흐름도로서, 각 페이지들이 MMDB에서 직접 수정되는 것이 아니라 그림자 영역(302)에 복사된 후 수정되었기 때문에 변경된 페이지들만 그대로 해제하면 된다. 또한, 시스템에 오류가 발생한다고 하더라도 별도의 실행취소(Undo) 연산이 필요치 않다.
상기한 바와 같은 구조를 갖는 본 발명에 따른 트랜잭션 철회 처리 과정의 동작을 설명하면 다음과 같다.
먼저, 트랜잭션 철회 요구를 수신하여(601) 트랜잭션 페이지 리스트(303)의 모든 페이지에 대해서 사용가능 페이지 리스트(304) 내용을 삭제하고(602), 트랜잭션 철회가 요구된 페이지를 그림자 영역 프리 페이지 리스트(305)에 추가한 후(603), 해당 페이지를 트랜잭션 페이지 리스트(303)에서 삭제한다(604).
도 7 은 본 발명에 따른 로그 처리를 하지 않는 백업/회복 방법 중 2단계 백업 처리 과정에 대한 일실시예 흐름도로서, 기존 시스템에서처럼 별도의 검사점 작업을 수행하지 않고, 대신 트랜잭션이 완료되어 안정기억장치(24)의 백업 버퍼로 1단계 백업되어 백업 페이지 리스트(402)에 의해 연결되어진 페이지들을 백업한다(2단계 백업). 백업 페이지 리스트(402)의 페이지들은 백업이 완료될 때까지 그림자 영역(302)에 유지되므로 재실행(Redo) 연산도 필요치 않다.
상기한 바와 같은 구조를 갖는 본 발명에 따른 2단계 백업 처리 과정의 동작을 설명하면 다음과 같다.
먼저, 백업 페이지 리스트(402)가 비었는가를 판단한다(701).
판단결과, 백업 페이지 리스트(402)가 비었을 경우, 상기 (701)과정부터 반복 수행하고, 백업 페이지 리스트(402)가 비어있지 않은 경우, 페이지를 백업 디스크(25)로 백업한다(702).
이어서, 해당 페이지를 그림자 영역 프리 페이지 리스트(305)에 추가한 후(703), 백업 페이지 리스트(402)가 비었는지를 판단하는 과정(701)부터 반복 수행한다.
도 8 은 본 발명에 따른 로그 처리를 하지 않는 백업/회복 방법 중 시스템 오류 발생 후 회복을 수행하기 위한 과정에 대한 일실시예 흐름도로서, 실행취소/재실행 연산이 필요없으므로 시스템 재시작 후 백업 페이지 리스트(402)에 있는 페이지들만 MMDB로 적재되면, 곧바로 트랜잭션을 수행할 수 있다. 또한, 간단한 재적재 알고리즘은 그림자 영역(302)의 관리에도 큰 부담을 주지 않는다.
그리고, 시스템 재시작 후 먼저 백업 페이지 리스트(402)의 모든 페이지를 MMDB로 적재하는데 이것은 메모리 내에서 이루어지므로 오랜 처리 시간을 요구하지 않는다. 복구 처리와 상관없이 백업은 비동기적으로 계속 수행된다. 만약, 백업 페이지 리스트(402)의 내용을 주기억장치(23)로 적재하는 도중에 다시 시스템 오류가 발생하더라도 백업 페이지 리스트(402)는 여전히 안정기억장치(23)에 유지되고 있기 때문에 일관성을 잃지 않는다.
상기한 바와 같은 구조를 갖는 본 발명에 따른 시스템 오류 발생 후 회복을 수행하기 위한 과정의 동작을 설명하면 다음과 같다.
먼저, 시스템을 재시작한 후(801), 백업 페이지 리스트(402)에 있는 모든 페이지들을 MMDB에 적재한다(802).
이어서, 트랜잭션이 시작됐는지를 판단한다(803).
판단결과, 트랜잭션이 시작되지 않았을 경우, 백업 디스크(25)에서 모든 페이지들을 MMDB로 적재한 후(804), 트랜잭션이 시작됐는지를 판단하는 과정(803)으로 진행하고, 트랜잭션이 시작되었을 경우, 요구 페이지가 MMDB에 존재하는지를 판단한다(805).
판단결과, 요구 페이지가 MMDB에 존재하면 일반 트랜잭션 처리 과정을 수행한 후(806), 트랜잭션이 시작됐는지를 판단하는 과정(803)부터 반복 수행하고, 요구 페이지가 MMDB에 존재하지 않으면 백업 디스크(25)에서 요구 페이지를 MMDB로 적재한 후(807), 일반 트랜잭션을 처리하는 과정(806)부터 반복 수행한다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
상기한 바와 같은 본 발명은, 트랜잭션 수행 시 로그 처리에 대한 오버헤드가 없으므로 빠른 수행 시간의 보장은 물론 그림자 페이징 기법을 이용하여 트랜잭션 철회나 회복에 있어서도 빠른 처리가 가능하며, 그림자 영역으로 주기억장치의 일부분을 사용하므로 안정기억장치를 그림자영역으로 사용하는 경우보다 빠른 접근 속도 및 경제성을 기대할 수 있는 효과가 있다.
또한, 본 발명은, 트랜잭션 처리를 주기억장치에서 수행하는 반면에 최종 백업은 안정기억장치의 백업 버퍼에서 수행함으로써, 트랜잭션 처리에 영향을 주지 않는, 즉 기존의 MMDB에서처럼 검사점 실시에 의한 성능 저하를 의식할 필요가 없는 효과가 있다.

Claims (8)

  1. 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를 하지 않는 백업/회복 장치에 있어서,
    그림자 페이징 기법을 이용하여 트랜잭션을 수행하고, 트랜잭션의 수행결과에 따라 그림자 영역에서 현재 트랜잭션에 의해 변경된 페이지들을 백업 버퍼로 전달하여 1단계 백업을 실시하기 위한 데이터 처리수단;
    상기 데이터 처리수단을 통해 1단계 백업된 백업 페이지들에 대하여 상기 백업 버퍼를 통해 제3 저장수단으로 2단계 백업을 실시하고, 시스템 오류 발생시 백업 리스트에 있는 페이지들을 MMDB(Main Memory Database) 영역에 적재하여 회복시키기 위한 회복 처리수단;
    데이터베이스의 원본이 저장되는 MMDB 영역과 현재 수행되고 있는 트랜잭션의 변경 내용이 기록되는 그림자 영역에 대한 정보를 저장하기 위한 제1 저장수단;
    상기 데이터 처리수단에 의해서 처리된 트랜잭션 페이지들을 저장하고, 상기 회복 처리수단에 의해 상기 제3 저장수단으로 백업되어져야 할 백업 페이지들을 저장하기 위한 제2 저장수단; 및
    상기 회복 처리수단에 의해 2단계 백업된 페이지들을 유지하기 위한 상기 제3 저장수단
    을 포함하는 백업/회복 장치.
  2. 제 1 항에 있어서,
    상기 제1 저장수단은,
    상기 데이터 처리수단에 의해서 상기 MMDB영역으로부터 트랜잭션이 원하는 페이지의 데이터가 복사되어 그림자 갱신이 수행되는 그림자 영역과, 현재 트랜잭션에 의해 변경되어 상기 그림자 영역에 존재하는 페이지들에 대한 정보를 유지하는 트랜잭션 페이지 리스트와, 상기 그림자 영역에 존재하는 트랜잭션들에 의해 변경되어진 페이지들에 대한 정보를 유지하는 사용가능 페이지 리스트와, 상기 그림자 영역 내의 빈 페이지들을 관리하는 그림자 영역 프리 페이지 리스트를 포함하는 것을 특징으로 하는 백업/회복 장치.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 제2 저장수단은,
    상기 데이터 처리수단에 의해서 완료된 트랜잭션에 의해 수정되어진 페이지들이 1단계 백업되어 복사되는 영역인 백업버퍼 영역과, 상기 제3 저장수단으로 2단계 백업되어질 상기 백업버퍼 영역내의 페이지들에 대한 정보를 관리하는 백업 페이지 리스트와, 상기 백업버퍼 영역내의 빈 페이지들을 관리하는 백업버퍼 프리 페이지 리스트를 포함하는 것을 특징으로 하는 백업/회복 장치.
  4. 주기억장치 상주형 데이터베이스 시스템에 적용되는 로그 처리를 하지 않는 백업/회복 방법 있어서,
    주기억장치에서의 트랜잭션 수행 결과에 따라, 그림자 영역에서 현재 트랜잭션에 의해 변경된 페이지들을 안정기억장치의 백업 버퍼로 첫 번째 백업을 실시하는 제 1 단계;
    상기 안정기억장치를 통해 백업 버퍼에서 백업 디스크로 두 번째 백업을 실시하는 제 2 단계; 및
    시스템 오류 발생시 백업 리스트에 있는 페이지를 상기 주기억장치 상주형 데이터베이스로 적재하여 회복시키는 제 3 단계
    를 포함하는 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를 하지 않는 백업/회복 방법.
  5. 제 4 항에 있어서,
    상기 제 1 단계는,
    데이터처리기가 그림자 페이징 기법을 이용하여 트랜잭션을 수행하고, 트랜잭션이 정상 완료될 경우 상기 그림자 영역에서 현재 트랜잭션에 의해 변경된 페이지들을 상기 안정기억장치의 백업 버퍼로 첫 번째 백업을 실시하고 변경된 내용을 상기 MMDB(Main Memory Database)로 반영한 후 트랜잭션을 완료하는 것을 특징으로하는 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를 하지 않는 백업/회복 방법.
  6. 제 4 항 또는 제 5 항에 있어서,
    상기 제 2 단계는,
    별도의 검사점 작업을 수행하지 않고, 대신 트랜잭션이 완료되어 상기 안정기억장치의 백업 버퍼로 첫 번째 백업되어 백업 페이지 리스트에 의해 연결된 페이지들을 이용하여 두번째 백업을 실시하는 것을 특징으로 하는 하는 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를 하지 않는 백업/회복 방법.
  7. 제 6 항에 있어서,
    상기 제 3 단계는,
    시스템 오류 발생시, 상기 시스템을 재시작하여 상기 주기억장치의 모든 내용을 초기화하고, 상기 안정기억장치의 내용을 그대로 유지하면서, 상기 백업 디스크로 반영되어지지 않은 백업 페이지 리스트에 있는 페이지들의 내용을 상기 MMDB에 적재하는 제 4 단계;
    상기 데이터처리기에 의해 트랜잭션 수행을 재개하는 제 5 단계; 및
    상기 트랜잭션이 요구하는 요구 페이지가 상기 MMDB에 존재하지 않으면 상기백업 디스크에서 요구페이지를 상기 MMDB로 적재한 후 상기 트랜잭션을 처리하는 제 6 단계
    를 포함하는 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를 하지 않는 백업/회복 방법.
  8. 프로세서를 구비한 주기억장치 상주형 데이터베이스 시스템에,
    주기억장치에서의 트랜잭션 수행 결과에 따라, 그림자 영역에서 현재 트랜잭션에 의해 변경된 페이지들을 안정기억장치의 백업 버퍼로 첫 번째 백업을 실시하는 제 1 기능;
    상기 안정기억장치를 통해 백업 버퍼에서 백업 디스크로 두 번째 백업을 실시하는 제 2 기능; 및
    시스템 오류 발생시 백업 리스트에 있는 페이지를 상기 주기억장치 상주형 데이터베이스로 적재하여 회복시키는 제 3 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020000076091A 2000-12-13 2000-12-13 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를하지 않는 백업/회복 장치 및 그 방법 KR100365891B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000076091A KR100365891B1 (ko) 2000-12-13 2000-12-13 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를하지 않는 백업/회복 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000076091A KR100365891B1 (ko) 2000-12-13 2000-12-13 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를하지 않는 백업/회복 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20020047601A KR20020047601A (ko) 2002-06-22
KR100365891B1 true KR100365891B1 (ko) 2002-12-27

Family

ID=27681557

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000076091A KR100365891B1 (ko) 2000-12-13 2000-12-13 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를하지 않는 백업/회복 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100365891B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100689762B1 (ko) * 2005-01-25 2007-03-08 심상엽 데이터베이스 시스템 및 그 데이터베이스 시스템의데이터베이스 컴포넌트를 메인 메모리에 저장하는 시스템및 방법
KR100810013B1 (ko) 2005-11-07 2008-03-10 인터내셔널 비지네스 머신즈 코포레이션 다단 가상 메모리 페이징 시스템
KR101066783B1 (ko) 2003-05-30 2011-09-21 마이크로소프트 코포레이션 새도우 페이징을 위한 데이터베이스에 액세스하는 방법, 컴퓨터 판독가능 저장 매체, 및 데이터베이스에 액세스하는 시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2508659A (en) 2012-12-10 2014-06-11 Ibm Backing up an in-memory database
KR102049417B1 (ko) * 2018-03-28 2019-11-27 주식회사 리얼타임테크 Nvdimm을 이용한 인-메모리 데이터베이스 기반의 데이터 저장 및 복원 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01298453A (ja) * 1988-05-27 1989-12-01 Mitsubishi Electric Corp キャッシュエラー処理方式
WO1994014126A1 (en) * 1992-12-08 1994-06-23 Telefonaktiebolaget Lm Ericsson A system for relations recovery of a data base in case of errors
KR970062904A (ko) * 1996-02-16 1997-09-12 양승택 이중면 비휘발성 메모리를 이용한 데이타베이스 회복 장치 및 그 방법
US5787243A (en) * 1994-06-10 1998-07-28 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
KR19980037407A (ko) * 1996-11-21 1998-08-05 양승택 디스크 공유 병렬 데이타베이스 시스템에서의 이중면 비휘발성 메모리의 구조 및 이를 이용한 회복 방법
KR19980034995A (ko) * 1996-11-11 1998-08-05 양승택 공통 블럭 레지스터 내장 메모리의 구조와 이를 이용한 그림자 페이지 회복 구조 및 회복 기법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01298453A (ja) * 1988-05-27 1989-12-01 Mitsubishi Electric Corp キャッシュエラー処理方式
WO1994014126A1 (en) * 1992-12-08 1994-06-23 Telefonaktiebolaget Lm Ericsson A system for relations recovery of a data base in case of errors
US5787243A (en) * 1994-06-10 1998-07-28 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
KR970062904A (ko) * 1996-02-16 1997-09-12 양승택 이중면 비휘발성 메모리를 이용한 데이타베이스 회복 장치 및 그 방법
KR19980034995A (ko) * 1996-11-11 1998-08-05 양승택 공통 블럭 레지스터 내장 메모리의 구조와 이를 이용한 그림자 페이지 회복 구조 및 회복 기법
KR19980037407A (ko) * 1996-11-21 1998-08-05 양승택 디스크 공유 병렬 데이타베이스 시스템에서의 이중면 비휘발성 메모리의 구조 및 이를 이용한 회복 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101066783B1 (ko) 2003-05-30 2011-09-21 마이크로소프트 코포레이션 새도우 페이징을 위한 데이터베이스에 액세스하는 방법, 컴퓨터 판독가능 저장 매체, 및 데이터베이스에 액세스하는 시스템
KR100689762B1 (ko) * 2005-01-25 2007-03-08 심상엽 데이터베이스 시스템 및 그 데이터베이스 시스템의데이터베이스 컴포넌트를 메인 메모리에 저장하는 시스템및 방법
KR100810013B1 (ko) 2005-11-07 2008-03-10 인터내셔널 비지네스 머신즈 코포레이션 다단 가상 메모리 페이징 시스템

Also Published As

Publication number Publication date
KR20020047601A (ko) 2002-06-22

Similar Documents

Publication Publication Date Title
US10936441B2 (en) Write-ahead style logging in a persistent memory device
US7293146B1 (en) Method and apparatus for restoring a corrupted data volume
EP0566966B1 (en) Method and system for incremental backup copying of data
US8768890B2 (en) Delaying database writes for database consistency
US7499954B2 (en) Consistent reintegration of a failed primary instance
EP0827079B1 (en) Checkpoint computer system
JP2559995B2 (ja) データベースのバックアップ方法、復元方法及びデータ記憶システム
US7107294B2 (en) Method and apparatus for interrupting updates to a database to provide read-only access
US5504883A (en) Method and apparatus for insuring recovery of file control information for secondary storage systems
US5724581A (en) Data base management system for recovering from an abnormal condition
JP2501152B2 (ja) アンドゥ―ログ使用の最大利用のための方法及び装置
US7640276B2 (en) Backup system, program and backup method
US20060069885A1 (en) File system with file management function and file management method
CN109542682B (zh) 一种数据备份方法、装置、设备和存储介质
JPH06318165A (ja) 故障後の再起動中でのトランザクション適応システムにおいてデータを利用可能にする方法
US6944635B2 (en) Method for file deletion and recovery against system failures in database management system
JPH05210555A (ja) ゼロ時間データ・バックアップ・コピーの方法及び装置
WO2016010527A1 (en) Database transaction replay
KR100365891B1 (ko) 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를하지 않는 백업/회복 장치 및 그 방법
US20030088814A1 (en) Method and apparatus for logging file system operations
US6978354B1 (en) Method for creating a virtual data copy of a volume being restored
JPH06149485A (ja) データ完結性保証処理方法
KR20010055981A (ko) 안전기억장치를 이용한 주기억장치 상주형 데이터베이스회복 방법
Silberschatz et al. Recovery system
JP2000163294A (ja) データベース管理方法及びその装置並びにプログラムを記録した機械読み取り可能な記録媒体

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20071115

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee