KR20150065696A - 가상 데이터베이스를 제공하기 위한 유효성 검증된 데이터베이스 스냅샷의 생성 - Google Patents

가상 데이터베이스를 제공하기 위한 유효성 검증된 데이터베이스 스냅샷의 생성 Download PDF

Info

Publication number
KR20150065696A
KR20150065696A KR1020157008538A KR20157008538A KR20150065696A KR 20150065696 A KR20150065696 A KR 20150065696A KR 1020157008538 A KR1020157008538 A KR 1020157008538A KR 20157008538 A KR20157008538 A KR 20157008538A KR 20150065696 A KR20150065696 A KR 20150065696A
Authority
KR
South Korea
Prior art keywords
database
restoration
milestone
designated time
blocks
Prior art date
Application number
KR1020157008538A
Other languages
English (en)
Other versions
KR101780340B1 (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 델픽스 코퍼레이션
Publication of KR20150065696A publication Critical patent/KR20150065696A/ko
Application granted granted Critical
Publication of KR101780340B1 publication Critical patent/KR101780340B1/ko

Links

Images

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/1458Management of the backup or restore process
    • 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/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

가상 데이터베이스들이 소스 데이터베이스의 지정 시간 복사들을 이용하여 제공된다. 소스 데이터베이스로부터 수신된 트랜잭션 로그들이 가상 데이터베이스들에 사용될 수 있는 데이터베이스 블록들을 포함하는 복원 이정표들을 생성하기 위해 소스 데이터베이스의 지정 시간 복사에 적용된다. 복원 이정표들은 가상 데이터베이스를 제공하기 위한 요청을 수신하기 이전에 먼저 생성된다. 각 복원 이정표는 일관성 스냅샷이 복원 이정표를 사용하여 생성될 수 있는지를 결정하기 위해 유효성 검증된다. 만일 문제가 일관된 데이터베이스 스냅샷의 생성을 방지하는 것으로 식별된다면, 문제는 다음 복원 이정표를 생성하기 전에 해결된다. 지정 시간에 대응하는 가상 데이터베이스를 제공하기 위한 요청을 수신하는 것에 응답하여, 복원 이정표가 식별되고, 트랜잭션 로그들이 요청된 지정 시간에 대응하는 데이터베이스 스냅샷을 생성하기 위해 복원 이정표에 적용된다.

Description

가상 데이터베이스를 제공하기 위한 유효성 검증된 데이터베이스 스냅샷의 생성{CREATING VALIDATED DATABASE SNAPSHOTS FOR PROVISIONING VIRTUAL DATABASES}
본 발명은 일반적으로 데이터베이스에 관한 것으로, 특히, 유효성 검증된 데이터베이스 스냅샷을 생성함으로써 요청 전에 미리 가상 데이터베이스를 제공하는 것에 관한 것이다.
데이터베이스는 조직(organization)에 중요하며, 따라서 조직의 정보 기술 기반구조의 중요한 부분을 형성하는 데이터를 저장한다. 조직에서 이용가능한 정보가 증가하기 때문에, 그 정보를 저장하는 데이터베이스를 관리하기 위해 요구되는 기반구조는 복잡해진다. 기반구조의 증가된 복잡도는 데이터베이스 및 그 데이터베이스에 의존하는 애플리케이션을 관리하기 위해 요구되는 자원을 증가시킨다. 이 증가된 비용은 데이터베이스를 관리하는 하드웨어와 연관된 비용뿐만 아니라, 하드웨어를 유지하기 위해 필요한 추가의 인원과 연관된 비용을 포함한다. 기반구조의 증가된 복잡도는 또한 데이터베이스와 연관된 유지 동작에 영향을 미치는 데, 예를 들어, 백업 및 복원 동작이 상당히 오래 걸리게 한다.
일반적인 조직의 기반구조 환경에서, 생성 데이터베이스 서버는 조직의 매일의 트랜잭션을 관리하는 애플리케이션을 작동시킨다. 생성 데이터베이스 또는 그 생성 데이터베이스에 의존하는 애플리케이션에 대한 변화가 생성 환경을 보호하기 위해 데이터베이스의 복사에서 시험된다. 생성 데이터베이스의 복사가 생성 데이터베이스 및 그 생성 데이터베이스에 의존하는 애플리케이션에 관련된 작업흐름의 라이프사이클 내의 몇몇 단계에 대해 요구될 수 있다. 예를 들어, 생성 데이터베이스에 결합된 변화의 라이프사이클 내의 단계는 개발 단계, 조율 단계, 시험 단계, 품질 보증 단계, 인증 단계, 훈련 단계 및 스테이징(staging) 단계를 포함할 수 있다. 각 단계에서 생성 데이터베이스의 복사를 행하는 것은 상당히 많은 시간이 걸릴 수 있는, 데이터를 복사하기 위해 요구되는 시간 오버헤드뿐만 아니라 불필요하고(redundant) 값비싼 하드웨어 기반구조를 요구한다.
기존의 데이터베이스 기술에 의해 충족되지 않는 요구들을 해결하기 위하여, 본 발명의 실시예들은 요청을 수신하기에 앞서 유효성 검증된 데이터베이스 스냅샷(validated database snapshot)들을 미리 제공한다.
데이터베이스 저장 시스템은 소스 데이터베이스의 데이터베이스 블록들을 포함하는 소스 데이터베이스의 상이한 지정 시간 복사들(point-in-time copies)을 수신하고, 그것들을 저장 시스템 상에 저장한다. 데이터베이스 저장 시스템은 소스 데이터베이스에서 실행된 트랜잭션들에 대응하는 트랜잭션 로그들을 소스 데이터베이스로부터 수신한다. 데이터베이스 저장 시스템은 다수의 복원 이정표(recovery milestone)들을 생성하고, 각 복원 이정표는 트랜잭션 로그들이 소스 데이터베이스의 지정 시간 버전에 대응하는 일관성 스냅샷(consistent snapshot)을 생성하기 위해 적용되는 데이터베이스 블록들을 포함한다. 데이터베이스 블록들의 적어도 일부는 다수의 복원 이정표들과 연관된다. 각 복원 이정표들은 소스 데이터베이스로부터 수신된 복수의 데이터베이스 블록들 또는 이전 복원 이정표의 복수의 데이터베이스 블록들 중 어느 하나에 트랜잭션 로그들의 세트를 적용함으로써 생성된다. 데이터베이스 저장 시스템은 복원 이정표가 소스 데이터베이스의 일관성 스냅샷을 생성하기 위해 사용될 수 있는지 여부를 결정하기 위해 생성된 상기 복원 이정표를 유효성 검증한다. 만일 데이터베이스 저장 시스템이 가상 데이터베이스를 생성하기 위한 요청을 수신한다면, 데이터베이스 저장 시스템은 지정 시간에 대응하는 복원 이정표를 식별하고, 복원 이정표에 기초하여 상기 요청된 가상 데이터베이스를 제공한다.
일 실시예에서, 만일 데이터베이스 저장 시스템이 복원 이정표가 무효함을 결정한다면, 데이터베이스 저장 시스템은 무효한 복원 이정표의 생성을 초래하는 결함을 식별하기 위한 단계 및 대응하는 유효한 복원 이정표를 생성하기 위한 조치들을 취한다.
본 요약 내용과 다음의 상세한 설명에서 설명된 특징 및 이점은 전부를 포함하는 것이 아니다. 다수의 추가적인 특징 및 이점이 도면, 명세서, 및 청구범위를 고려하여 해당 기술분야의 통상의 기술자에게 명백해질 것이다.
도 1은 본 발명의 실시예에 따라 어떻게 정보가 생성 데이터베이스로부터 데이터베이스 저장 시스템으로 복사되고 파일 공유 시스템을 사용해서 가상 데이터베이스로서 제공되는지를 예시한 도면이다.
도 2는 본 발명의 실시예에 따라 생성 데이터베이스로부터 정보에 대해 저장에 효율적인 복사를 하고 가상 데이터베이스를 제공하는 시스템의 구조에 대한 개략도이다.
도 3은 본 발명의 일 실시예에 따라 생성 데이터베이스의 지정시간(point-in-time) 복사로부터의 요청 시 가상 데이터베이스를 제공하는 프로세스를 예시한다.
도 4는 본 발명의 일 실시예에 따라 유효성 검증된 데이터베이스 스냅샷을 제공하기 위해 복원 이정표들을 미리 제공하는 프로세스에 대한 예시도이다.
도 5는 본 발명의 일 실시예에 따라 데이터베이스의 유효성 검증된 스냅샷들을 미리 제공하기 위한 프로세스의 흐름도이다.
상기 도면들은 단지 예시 목적으로 본 발명의 여러 실시예들을 도시한다. 해당 기술분야의 통상의 기술자는 본 명세서에 예시된 구조 및 방법의 대안적인 실시예가 본 명세서에 설명된 본 발명의 원리로부터 벗어남이 없이 쓰여질 수 있다는 것을 다음의 설명으로부터 쉽게 인식할 것이다.
데이터베이스는 컴퓨터로 구현된 애플리케이션에 의해 사용하기 위해 컴퓨터에 저장된 데이터를 포함한다. 데이터베이스 서버는 데이터베이스와 상호작용할 수 있는 컴퓨터 프로그램이고 데이터베이스에 저장된 데이터에 대한 액세스를 예로 하는 데이터베이스 서비스를 제공한다. 데이터베이스 서버는 상업적으로 이용 가능한 프로그램을 포함하고, 예를 들어, 데이터베이스 서버에는 ORACLE, SYBASE, MICROSOFT SQL 서버, IBM DB2, MYSQL, POSTGRES 등에 의해 제공된 데이터베이스 관리 시스템이 포함된다. 데이터베이스는 관계 모드, 객체 모델, 계층 모드 또는 네트워크 모델을 예로 하는 데이터베이스 모델을 사용해서 구현될 수 있다. 용어 "생성 데이터베이스"는 기술의 유용한 애플리케이션들을 예시하기 위해 특정한 예에서 사용될 수 있으나, 개시된 기술은, 데이터베이스가 생성 데이터베이스로서 사용되는지와 무관하게, 임의의 데이터베이스에 대하여 사용될 수 있음이 이해될 수 있다. 나아가, 실시예들은 라이브 생성 데이터베이스(live production database)를 대신에 생성 데이터베이스의 저장 레벨 스냅샷 또는 생성 데이터베이스의 복제를 사용하여 가상 데이터베이스를 생성할 수 있다. 가상 데이터베이스는 데이터베이스 파일의 물리적인 구현이 데이터베이스 서버에 의해 데이터베이스 파일의 논리적 사용과 결합되지 않는다는 의미에서 "가상"적으로 된다. 가상 데이터베이스는 2009년 10월 21일에 출원되고, 미국 특허 제8,150,808호로서 등록된, 미국 특허 출원 제 12/603,541에서 설명되고, 각각은 그것의 전체로서 본 명세서에서 참조에 의해 통합된다.
일 실시예에서, 생성 데이터베이스로부터의 정보가 여러 시간에, 예컨대 주기적으로, 데이터베이스 저장 시스템에 복사된다. 지정 시간에서 생성된 가상 데이터베이스가 그 지정 시간에서 사용 가능한 데이터베이스의 정보를 포함하는 파일의 세트로서 저장된다. 각 파일은 데이터베이스 블록의 세트와 그 데이터베이스 블록에 관련 있는 데이터 구조를 포함한다. 가상 데이터베이스에 대응하는 파일은 파일 공유 메커니즘을 사용해서 데이터베이스 서버에 사용 가능하여, 가상 데이터베이스를 저장 시스템에 저장된 적합한 데이터베이스 블록에 링크시킨다. 가상 데이터베이스를 데이터베이스 서버에 사용 가능하게 하는 프로세스는 가상 데이터베이스를 "제공하는 것"으로 지칭된다. 일부의 실시예에서, 가상 데이터베이스를 제공하는 것은 가상 데이터베이스에 기초하여 실행 데이터베이스 서버(running database server)를 생성하는 프로세스를 관리하는 것을 포함한다. 가상 데이터베이스를 제공하였던 데이터베이스 서버가 저장 시스템에 저장된 파일로부터 판독할 수 있고 그 파일로 기록할 수 있다. 데이터베이스 블록은 상이한 파일들간에 공유될 수 있고, 각 파일이 다른 가상 데이터베이스와 연관된다. 특히, 만일 대응하는 가상 데이터베이스 시스템(130)이 데이터 블록의 정보를 판독만하고 데이터베이스 블록에 기록하지 않다면, 데이터베이스 블록은 공유된다.
데이터베이스 저장 시스템은 생성 데이터베이스의 마지막 지정 시간 복사가 획득되었기 때문에 생성 데이터베이스에서 실행된 트랜잭션들에 대응하는 트랜잭션 로그들을 수신한다. 이 트랜잭션 로그들은 두 지정 시간 복사들 사이에서 생성 데이터베이스의 상태에 대응하는 데이터베이스를 생성하기 위하여 지정시간 복사에 적용된다. 만일 두 지정 시간 복사들 사이의 시간에 대응하는 데이터베이스를 제공하기 위한 요청이 획득된다면, 트랜잭션 로그들은 가상 데이터베이스가 요청된 시간 이전에 발생한 가장 최근 지정 시간 복사에 적용된다. 가상 데이터베이스를 제공하는 단계에서 가장 많은 시간을 소비하는 단계는 지정 시간 복사에 트랜잭션 로그들을 적용하는 단계이다. 뿐만 아니라, 만일 가상 데이터베이스를 생성하기 위해 사용된 데이터에 어느 손상이 있다면, 데이터베이스 저장 시스템은 트랜잭션 로그들의 손상을 야기하는 문제를 해결하기 위한 단계를 취하지 않은 채 트랜잭션 로그들을 적용할 수 없다. 어느 문제를 해결하기 위해 취해진 단계는 느릴 수 있고, 예를 들면, 사람의 개입을 요구하는 단계일 수 있다. 그 결과, 가상 데이터베이스를 제공하는 것은, 요청자가 기다리도록 하는, 제공을 위한 요청이 수신되기 때문에 상당히 많은 시간이 걸릴 수 있다.
실시예들은 가상 데이터베이스에 대한 요청을 수신하는 것과 요청된 가상 데이터베이스를 제공하는 것 사이의 많은 양의 시간을 감소시킨다. 데이터베이스 저장 시스템은 생성 데이터베이스의 지정 시간 복사를 수신한 후에 다수의 복원 이정표들을 생성한다. 각 복원 이정표는 지정 시간에서의 생성 데이터베이스의 상태에 대응한다. 각 복원 이정표는 생성 데이터베이스의 지정 시간 복사로서 수신된 데이터베이스 블록들에 트랜잭션 로그들을 적용함으로써 생성된다. 데이터베이스 저장 시스템은 또한 유효한 데이터베이스 스냅샷이 복원 이정표를 사용하여 생성될 수 있음을 보장하기 위해 복원 이정표들의 유효성 검증을 수행한다. 만일 문제가 검출된다면, 데이터베이스 저장 시스템은 문제를 해결하기 위해 적당한 단계를 취할 수 있다. 만일 데이터의 손상 또는 소프트웨어 모듈 내의 버그 또는 결함이 가상 데이터베이스를 제공하기 위한 요청을 수신한 후에 식별된다면, 제공된 데이터베이스에 대한 임의의 요청을 수신하기 이전에 문제들을 해결하는 것은, 요청자가 기다려야 하는 시간을 감소시킨다.
뿐만 아니라, 데이터베이스 저장 시스템 내에 저장된 트랜잭션 로그들이 지정 시간 복사들에 적용되기 때문에, 지정 시간 복사들이 생성 데이터베이스로부터 수신되는 비율은 복원 이정표들이 생성되지 않는 시스템에 비하여 감소될 수 있다. 게다가, 만일 다수의 가상 데이터베이스가 동일한 지정 시간에 대응하여 제공된다면, 예를 들어, 상이한 가상 데이터베이스가 상이한 플랫폼들에 대하여 제공된다면, 상당한 시간 절약이 성취될 수 있다.
전체 시스템 환경( Overall System Environment )
도 1은 정보가 생성 데이터베이스로부터 데이터베이스 저장 시스템으로 어떻게 복사되는지 및 파일 공유 시스템을 사용하는 가상 데이터베이스로서 어떻게 제공되는지에 관한 일 실시예를 예시한다. 생성 데이터베이스 시스템(110)은 조직되는 데이터를 관리한다. 일부의 실시예에서 정보가 라이브 생성 데이터베이스를 대신해서 생성 데이터베이스의 저장 레벨 스냅샷 또는 생성 데이터베이스의 복제로부터 복사될 수 있다. 데이터베이스 저장 시스템(100)은 하나 이상의 데이터베이스 시스템(110)으로부터 데이터베이스에 연관된 데이터를 검색하고 데이터를 하기에서 설명되는 효율적인 방법으로 저장한다. 데이터베이스 관리자 사용자 인터페이스는 데이터베이스 관리자로 하여금 데이터베이스 저장 시스템(100)에 의해 지원된 각종 동작을 실행하게 한다.
관리 시스템(140)으로부터의 요청에 응답하여 또는 이미 정의된 스케줄을에 기초하여, 데이터베이스 저장 시스템(100)은 데이터에 대한 요청(150)을 생성 데이터베이스 시스템(110)에 보낼 수 있다. 생성 데이터베이스 시스템(110)이 생성 데이터베이스에 저장된 정보를 데이터(160)의 스트림으로서 보냄에 의해 응답한다. 그 요청(150)은 주기적으로 보내지고 생성 데이터베이스 시스템(110)이 생성 데이터베이스에 저장된 데이터 변화를 표현하는 정보를 보냄에 의해 응답하는 데, 왜냐하면 최종 응답(160)이 생성 데이터베이스 시스템(110)에 의해 보내지기 때문이다. 데이터베이스 저장 시스템(100)이 생성 데이터베이스 시스템(110)에 의해 보내진 데이터(160)를 수신하고 그 데이터를 저장한다. 데이터베이스 저장 시스템(100)은, 만일 그 정보가 이전 지정 시간에서 데이터베이스를 복구하기 위해 유용하지 않다면, 정보를 저장 또는 스킵하는지를 결정하기 위해 수신된 데이터(160)를 분석할 수 있다. 데이터베이스 저장 시스템(100)이 예를 들어, 변화된 데이터베이스 블록의 버전을 유지하고 변화되지 않은 데이터베이스 블록을 재사용함에 의해 정보를 효율적으로 저장한다.
가상 데이터베이스를 생성하기 위해, 데이터베이스 저장 시스템(100)은 정해진 지정 시간에서 생성 데이터베이스 시스템(110)에 대응하는 정보를 표현하는 파일을 생성한다. 데이터베이스 저장 시스템(100)은 파일 공유 시스템(120)을 사용해서 대응하는 파일을 가상 데이터베이스 시스템(130)에 노출시킨다(170). 가상 데이터베이스 시스템(130)은 데이터베이스 저장 시스템(100)에 의해 노출된(170) 파일로써 동작할 수 있는 데이터베이스 서버를 실행시킨다. 따라서, 생성 데이터베이스의 가상 복사가 저장에 효율적인 방법으로 정해진 지정 시간에서 가상 데이터베이스 시스템(130)에 대해 생성된다.
시스템 구조(System Architecture)
도 2는 생성 데이터베이스로부터 정보에 대해 저장에 효율적인 복사를 하고 그 정보를 사용해서 하나 이상의 가상 데이터베이스를 제공하는 데 적합한 시스템환경을 예시하는 고레벨 블록블록 다이어그램을 도시한다. 시스템 환경은 하나 이상의 생성 데이터베이스 시스템(110), 데이터베이스 저장 시스템(100), 관리 시스템(140), 하나 이상의 가상 데이터베이스 시스템(130)을 포함한다. 도 2에 도시된 시스템은 네트워크를 통해 필요한 경우에 서로 통신할 수 있다.
생성 데이터베이스 시스템(110)은 그 매일의 트랜잭션을 유지하기 위한 구조에 의해 일반적으로 사용된다. 예를 들어, 온라인 서점은 생성 데이터베이스 시스템(110)에서 책 구매, 책 반납, 또는 재고 관리에 관련되는 온고잉(ongoing) 트랜잭션 모두를 저장할 수 있다. 생성 데이터베이스 시스템(110)은 데이터베이스 서버(245)와, 생성 DB 데이터 저장부(250)를 포함한다. 대안의 구성에서, 상이한 및/또는 추가적인 모듈들이 생성 데이터베이스 시스템(110)에 포함될 수 있다.
생성 DB 데이터 저장부(250)는 회사의 매일의 트랜잭션을 표현하는 정보를 예를 들어 표현할 수 있는 데이터베이스와 연관된 데이터를 저장한다. 데이터베이스 서버(245)는 생성 DB 데이터 저장부(250)상에 저장된 데이터를 관리하기 위한 데이터베이스 서비스 및 애플리케이션 프로그래밍 인터페이스(application programming interface; API)를 제공하는 컴퓨터 프로그램이다. 생성 DB 데이터 저장부(350)를 데이터베이스 저장 시스템(100)상에 장착하는 것은 생성 데이터베이스 시스템(110)상에 저장된 정보가 데이터베이스 저장 시스템(100)으로 전송되도록 한다.
저장 시스템 데이터 저장부(290)에 저장된 데이터는 가상 데이터베이스 시스템(130)가 그 데이터를 생성 데이터베이스 시스템(110)에 저장된 생성 데이터베이스의 복사로서 처리하게 하는 가상 데이터베이스 시스템(130)에 노출될 수 있다. 데이터베이스 저장 시스템(100)은 지정 시간 복사 관리기(210), 트랜잭션 로그 관리기(220), 저장 할당 관리기(265), 파일 공유 관리기(270), 가상 데이터베이스 관리기(275), 복원 이정표 관리기(280), 유효성 검증 모듈(validation module)(285), 및 저장 시스템 데이터 저장부(290)를 포함한다. 대안의 구성에서, 상이한 및/또는 추가적인 모듈들이 데이터베이스 저장 시스템(100)에 포함될 수 있다.
지정 시간 복사 관리기(210)는 상호작용하여 생성 DB 데이터 저장부(250)에 저장된 데이터베이스의 지정 시간 복사("PIT(point-in-time) 복사"라고도 지칭됨)를 표현하는 정보를 검색하기 위한 요청을 보냄에 의해 생성 데이터베이스 시스템(110)과 상호작용한다. 지정 시간 복사 관리기(210)가 생성 데이터베이스 시스템으로부터 획득된 데이터를 저장 시스템 데이터 저장부(290)에 저장한다. 지정 시간 복사 관리기(210)에 의해 검색된 데이터가 생성 DB 데이터 저장부(250)로부터 복사된 데이터베이스의 데이터베이스 블록록(또는 페이지)에 대응한다. 제1 PIT 복사가 생성 DB 데이터 저장부(250)로부터 정보를 검색하도록 요청한 후, 연속된 PIT 복사 요청은 이전의 요청 후에 데이터베이스에서 변화된 데이터만을 검색할 필요가 있을 수 있다. 제1 요청에서 수집된 데이터는 데이터가 제2 요청에 대해 생성 DB 데이터 저장부(250)로부터 검색되었던 지정 시간에 대응하는 데이터베이스의 복사를 복구하기 위하여 제2요청에서 수집된 데이터와 결합 될 수 있다.
트랜잭션 로그 관리기(220)는 생성 데이터베이스 시스템(110)에 저장된 트랜잭션 로그들의 일부를 검색하기 위하여 생성 데이터베이스 시스템(110)에 요청을 보낸다. 생성 데이터베이스 시스템(110)으로부터 트랜잭션 로그 관리자(320)에 의해 획득된 데이터가 저장 시스템 데이터 저장부(290)에 저장된다. 일 실시예에서, 트랜잭션 로그에 대한 이전의 요청이 처리되었으므로, 트랜잭션 로그에 대한 요청은 생성 데이터베이스 시스템(110)에서 트랜잭션 로그의 변화만을 검색한다. 트랜잭션 로그 관리자(220)에 의해 검색된 트랜잭션 로그와 결합된 지정 시간 복사 관리기(210)에 의해 검색된 데이터베이스 블록은 지정 시간 복사가 행해진 시간들 사이의 과거 시간에 대응하는 생성 시스템(110)에서 데이터베이스의 복사를 복구하기 위해 사용될 수 있다.
저장 할당 관리기(265)는 생성 데이터베이스 시스템(110)으로부터 검색된 데이터를 저장하는 기능(functionality)을 제공한다. 예를 들어, 지정 시간 복사 관리기(210)는 저장 할당 관리기의 API를 호출하여 생성 데이터베이스 시스템(110)으로부터 검색된 데이터의 블록을 저장한다. 저장 할당 관리기(265)는 생성 데이터베이스 시스템(110)으로부터 획득될 수 있는 데이터의 각 블록의 다양한 버전의 트랙을 유지시킨다. 정해진 지정 시간에서, 저장 할당 관리기(265)는 정해진 지정 시간 전에 획득된 데이터의 블록의 최신 버전을 제공하기 위해 요청될 수 있다. 저장 할당 관리기(265)는 또한 데이터의 블록을 복사하기 위하여 사용될 수 있다. 만일 데이터의 블록이 판독 전용으로 복사된다면, 저장 할당 관리기(265)는 단지 충분한 저장소를 할당하여 기준 포인터를 데이터의 기존 블록으로 유지한다. 그러나, 만일 데이터의 복사된 블록에 기록하기 위한 시도가 이루어진다면, 저장 할당 관리기(265)는 충분한 저장소를 할당하여 데이터의 블록의 실제 복사가 데이터의 원래의 블록을 갱신하지 않도록 한다.
파일 공유 관리기(270)는 저장 시스템 데이터 저장부(290)에 저장된 파일이 네트워크를 통해 데이터베이스 저장 시스템(100)에 연결될 수 있는 컴퓨터들 사이에서 공유되게 된다. 파일 공유 관리기(270)는 파일을 공유하기 위하여 파일 공유 시스템(120)을 사용한다. 파일을 공유하는 시스템의 예가 NFS(network file system)이다. 파일을 공유하는 시스템은 FC-SAN(fiber channel Storage area networks), NAS(network attached storage) 또는 그 결합체 및 변형예를 활용할 수 있다. 파일을 공유하는 시스템은 SCSI(small computer system interface) 프로토콜, iSCSI(internet small computer system interface) 프로토콜, 섬유 채널 프로토콜 또는 다른 유사하고 관련된 프로토콜을 기반으로 할 수 있다. 일부의 실시예에서, 데이터베이스 저장 시스템(100)은 논리 볼륨 관리기(logical volume manager)를 사용할 수 있다. 파일 공유 관리기(270)를 사용해서 저장 시스템 데이터 저장부(290)에 저장된 파일을 공유하는 것은 가상 데이터베이스 시스템(130)을 예로 하는 원격 컴퓨터가 공유된 파일의 데이터에 액세스하게 한다. 원격 시스템은 저장 시스템 데이터 저장부(290)에 의해 공유된 파일로부터 판독하고, 그리고 그 파일로 기록할 수 있다.
복원 이정표 관리기(280)는 지정 시간 복사가 생성 데이터베이스에 대하여 수신된 이후에, 복원 이정표들을 생성한다. 각 복원 이정표는 생성 데이터베이스의 지정 시간 복사로서 수신된 데이터베이스 블록들에 트랜잭션 로그들을 적용함으로써 생성된다. 복원 이정표 관리기(280)는 데이터베이스 블록들에 트랜잭션 로그들을 적용하기 위해 트랜잭션 로그 관리기(220)를 호출한다. 복원 이정표는 데이터베이스 블록들의 세트를 저장하는 파일들의 세트로서 저장될 수 있다. 일 실시예에서, 복원 이정표의 구현 예는 데이터베이스의 지정 시간 복사의 구현 예와 유사(또는 동일)하다.
유효성 검증 모듈(285)은, 복원 이정표가 일관성 스냅샷을 생성하기 위해 사용될 수 있는지를 유효성 검증한다. 만일 복원 이정표가 유효한 데이터베이스 스냅샷을 생성하기 위해 사용될 수 없다면, 유효성 검증 모듈(285)은 에러를 수정하기 위한 단계를 실행한다. 예를 들면, 유효성 검증 모듈(285)은 생성 데이터베이스로부터 적당한 데이터를 수신하기 위한 단계를 실행한다. 만일 문제가 소프트웨어 모듈 내의 버그에 의해 야기되었다면, 유효성 검증 모듈(285)은 소프트웨어 모듈을 고치기 위한 단계, 예를 들면, 적당한 벤더(vender)로부터 소프트웨어 모듈의 수정된 버전을 획득함으로써, 상기 단계를 취할 수 있다. 일 실시예에서, 유효성 검증 모듈(285)은 요구된 단계를 취하기 위해 시스템 관리자에게 적당한 정보를 제공한다. 일 실시예에서, 복원 이정표를 위해 저장 시스템 내에 저장된 데이터 블록들은 복원 이정표에 기초하여 생성된 가상 데이터베이스를 위해 저장 시스템 상에 저장된 데이터 블록들과 동일하다. 그러나, 가상 데이터베이스는 복원 이정표에 기초하여 데이터베이스 서버를 시작하기 위해 요구되는 추가적인 정보, 예컨대, 어떤 구성 정보를 포함할 수 있다.
가상 데이터베이스 관리기(275)는 가상 데이터베이스 시스템(130)을 위한 가상 데이터베이스의 생성에 대한 요청을 수신한다. 가상 데이터베이스의 생성에 대한 요청이 관리 시스템(140)을 사용하는 데이터베이스 관리기에 의해 보내지고 생성 데이터베이스 시스템(110) 및 가상 데이터베이스 시스템(130)을 식별하고, 가상 데이터베이스가 생성될 필요가 있는 대응하는 과거 지정 시간을 포함한다. 가상 데이터베이스 관리기(275)는 생성된 가상 데이터베이스에 대응하는 파일을 생성하고, 그 파일을 가상 데이터베이스 시스템(130)과 공유한다. 가상 데이터베이스 시스템(130)에 대한 데이터베이스 관리자는 생성 데이터베이스 시스템(110)에 대한 데이터베이스 관리자와 상이할 수 있다. 복원 이정표로부터 가상 데이터베이스를 생성하기 위하여, 가상 데이터베이스 관리기(275)는 복원 이정표에 적용될 필요가 있는 로그들의 최소 세트를 메타데이터로부터 계산할 수 있다.
가상 데이터베이스 시스템(130)은 데이터베이스 서버(260)를 포함한다. 데이터베이스 서버(260)는 데이터베이스 서버(245)의 기능과 유사하고 생성 DB 데이터 저장부(250)에 저장된 데이터를 관리하기 위하여 데이터베이스 서비스 및 애플리케이션 프로그래밍 인터페이스(API)를 제공하는 컴퓨터 프로그램이다. 데이터베이스 서버(260)에 의해 관리된 데이터가 파일 공유 시스템(120)을 사용해서 데이터베이스 저장 시스템(100)에 의해 공유되는 저장 시스템 데이터 저장부(290)에 저장될 수 있다. 대안의 구성에서, 상이한 및/또는 추가적인 모듈들이 가상 데이터베이스 시스템(130)에 포함될 수 있다.
실제로 데이터베이스 저장 시스템(100)의 구성요소들 중 적어도 일부가 네트워크를 통해 통신하는, 다수의 컴퓨터들에 분산될 수 있다는 것이 또한 이해되어야만 한다. 그러나, 설명의 편의를 위해, 데이터베이스 저장 시스템(100)의 구성요소들은 마치 그들이 단일 컴퓨터 상에서 구현되었던 것처럼 논의된다. 다른 실시예에서, 어떤 구성요소들은 네트워크에 의해 데이터베이스 저장 시스템(100)에 결합된(coupled) 분리된 시스템(separate system) 상에 위치될 수 있다. 데이터베이스 저장 시스템(100)은 또한, 데이터가 시스템으로 그리고 시스템으로부터 입력되고 출력되는 것을 허용하는 하나 이상의 입/출력 장치를 포함할 수 있다. 데이터베이스 저장 시스템(100)의 실시예들은 또한, 운영체제 및 이와 유사한 것과 같은 표준 소프트웨어 및 하드웨어 구성요소들을 포함하고, 나아가, 설명의 명료함을 위해 도면에 도시되지 않은 표준 하드웨어 구성 요소들(예컨대, 네트워크 인터페이스, 저장 장치 등)을 포함한다.
도 3은 생성 데이터베이스의 지정 시간 복사로부터의 요청 시 가상 데이터베이스를 제공하는 프로세스를 예시한다. 지정 시간 복사 관리기(210)는 시간 T1에서 생성 데이터베이스의 지정 시간 복사를 수신(305)한다. 가상 데이터베이스 관리기(275)는 시스템 관리자로부터의 요청 시 가상 데이터베이스를 제공(320)한다. 가상 데이터베이스를 제공하기 위한 요청은 생성 데이터베이스의 지정 시간 복사가 시간 T1에 수신된 후 임의의 시간에 수신될 수 있다. 트랜잭션 로그 관리기(220)는 트랜잭션 로그들을 검색하고, 그 로그들을 DB 스냅샷을 생성(310)하기 위해 수신된 생성 데이터베이스의 지정 시간 복사에 적용한다. 트랜잭션 로그들은 트랜잭션 관리기에 의해 주기적으로 수신될 수 있다. 그러나, 트랜잭션 로그들은 가상 데이터베이스를 제공하기 위한 요청이 수신된 후에 지정 시간 복사에 적용된다. 따라서, 상당히 많은 양의 트랜잭션 로그들이 가상 데이터베이스를 제공하기 위해 지정 시간 복사에 적용될 수 있어야 할 것이다. 일 실시예에서, 가상 데이터베이스를 제공하기 위한 요청은 가상 데이터베이스가 제공될 필요가 있는 지정 시간을 특정한다. 트랜잭션 로그들은 그 요청에 특정된 지정 시간까지 제공된다. 일부 실시예에서, 모든 트랜잭션 로그들은 그 요청이 수신된 현재 시간까지 적용될 수 있다.
긴 시간 간격에 대응하는 트랜잭션 로그들이 데이터베이스의 지정 시간 복사에 적용되기 때문에, 때때로 적용될 필요가 있는 로그들의 일부가 손상될 수 있다. 예를 들면, 일부 로그들은 손실되거나, 다른 데이터에 의해 겹쳐 쓰여질 수 있다. 그 로그들은 로그들을 처리하는 소프트웨어 내의 버그 또는 결함 때문에, 또는 아마도 전송 중 데이터의 손실 때문에, 손상될 수 있다. 트랜잭션 로그 관리기(220)는 로그들을 지정 시간 복사에 적용한 후에 데이터의 손상이 있음을 인식할 수 있다. 예를 들면, 트랜잭션 로그 관리기(220)는 로그들을 지정 시간 복사에 적용하는 것이 데이터베이스의 일관성 스냅샷을 제공하지 않음을 인식할 수 있다. 이 상황에서, 어떤 절차가 무효한 데이터를 복원하기 위해 수행되어야 할 것이다. 상기 절차는 사람의 개입을 수반할 수 있거나, 또는 자동적으로 수행될 수 있다. 그러나, 상기 절차는 데이터의 유효 상태가 성취되고 요청된 가상 데이터베이스가 제공될 수 있기 전에 시간이 필요할 수 있다. 이 지연 모두는 가상 데이터베이스를 제공하기 위한 요청이 수신된 후에 경험된다. 따라서, 최종 사용자는 최종 사용자가 요청된 가상 데이터베이스를 수신하기 전에 상당히 많은 시간 동안 기다려야 할 것이다.
도 4는 본 발명의 일 실시예에 따른, 유효 데이터베이스 스냅샷을 제공하기 위해 복원 이정표들을 미리 제공하는 프로세스를 예시한다. 도 4에 예시된 프로세스는 다수의 복원 이정표들을 생성하기 위해, 그리고 복원 이정표에 기초하여 가상 데이터베이스를 제공하기 위해, 수행되는 다양한 단계를 표시하는 타임 라인을 도시한다. 시간 T0에서, 생성 데이터베이스의 지정 시간 복사에 대응하는 데이터베이스 블록들이 수신된다. 이 데이터베이스 블록들은 상기 지정 시간 복사가 수신되었기 때문에 변경된 생성 데이터베이스의 데이터베이스 블록들에 대응한다.
제1 복원 이정표는, 일단 충분한 트랜잭션 로그들이 일관성 스냅샷을 생성하기 위해 수신된다면, 생성 데이터베이스의 지정 시간 복사가 수신된 직후의 시간 T1에서 생성(410a)된다. 그 후에, 복원 이정표들(410b, 410b, 410d)이 미리 정의된 스케줄에 기초하여, 예컨대, 정기적으로, 생성될 수 있다. 복원 이정표가 생성되는 빈도(frequency)는 데이터베이스의 지정 시간 복사들이 생성 데이터베이스로부터 수신되는 빈도보다 대체적으로 더 높다. 예를 들면, 생성 데이터베이스의 지정 시간 복사들이 매일 수신된다면, 복원 이정표는 매 시간 또는 30분 마다 생성될 수 있다. 복원 이정표를 생성하는 것은, 제1 복원 이정표가 데이터베이스의 지정 시간 복사를 수신한 후에 생성된 경우, 생성된 이전 복원 이정표에 또는 수신된 데이터베이스의 지정 시간 복사에 생성 데이터베이스로부터 수신된 트랜잭션 로그들을 적용(430)하는 것을 포함한다.
유효성 검증 모듈(285)은 유효한 데이터베이스 스냅샷이 복원 이정표에 기초하여 생성될 수 있는지를 결정하기 위해 생성된 각 복원 이정표를 유효성 검증한다. 만일 유효성 검증 모듈(285)이 문제를 식별(420)한다면, 유효성 검증 모듈(285)은 문제를 해결하기 위해 어느 요청된 절차를 수행한다. 일 실시예에서, 유효성 검증 모듈(285)은 유효성 검증 목적으로 가상 데이터베이스를 생성할 수 있다. 예를 들면, 유효성 검증이 복원 이정표에 기초하여 가상 데이터베이스에 시험 질의(test query)를 실행함으로써 수행될 수 있다. 그 대신에, 가상 데이터베이스에 기초하여 데이터베이스 서버를 시작하는 프로세스는 가상 데이터베이스가 유효한지를 표시할 수 있다.
시간 TN에 대응하는 가상 데이터베이스를 제공하기 위한 요청이 수신되는 경우, 가상 데이터베이스 관리기(275)는 시간 TN 이전에 생성되었던 가장 최근의 복원 이정표를 식별하고(예컨대, 도 4에 도시된 것처럼 시간 T4), 상기 식별된 복원 이정표에 기초하여 데이터베이스 스냅샷을 생성(310b)한다. 일 실시예에서, 만일 가상 데이터베이스가 트랜잭션 로그들을 가장 최근의 복원 이정표에 적용함으로써 생성된다면, 새 복원 이정표가 요청된 가상 데이터베이스에 대응하여 생성된다. 상기 새 복원 이정표는 그 다음의 복원 이정표들을 생성하기 위해 사용될 수 있다.
도 5는 본 발명의 일 실시예에 따른, 데이터베이스의 유효성 검증된 스냅샷을 미리 제공하기 위한 프로세스의 흐름도이다. 지정 시간 복사 관리기(210)는 생성 데이터베이스의 지정 시간 복사를 수신(510)한다. 지정 시간 복사는 미리 정의된 스케줄 또는 사용자 명령에 기초한 요구에 기초하여 수신될 수 있다. 예를 들면, 지정 시간 복사 관리기(210)는 생성 데이터베이스로부터 주기적으로, 예를 들면, 매일 특정 시간에 또는 며칠에 한 번씩, 지정 시간 복사를 수신할 수 있다. 트랜잭션 로그 관리기(220)는 생성 데이터베이스로부터 트랜잭션 로그들을 주기적으로 검색한다. 트랜잭션 로그 관리기(220)가 트랜잭션 로그들을 검색하는 비율(rate)은 생성 데이터베이스의 지정 시간 복사가 검색되는 비율보다 대체적으로 더 높다. 지정 시간 복사 관리기(210)는 다음 지정 시간 복사를 수신하기 전에 예정된 지연(scheduled delay) 동안 기다린다(535). 생성 데이터베이스의 지정 시간 복사는 이전 지정 시간 복사가 획득되었기 때문에 변경된 생성 데이터베이스의 데이터베이스 블록들을 포함한다.
복원 이정표 관리기(280)는 주기적으로 복원 이정표를 생성한다. 복원 이정표 관리기(280)가 복원 이정표를 생성하는 빈도는 지정 시간 복사가 검색되는 빈도 보다 더 높다. 그 결과, 몇몇 복원 이정표들은 검색된 생성 데이터베이스의 각 지정 시간 복사에 대응하여 전형적으로 생성된다. 일 실시예에서, 복원 이정표 관리기(280)는 트랜잭션 로그 관리기(220)가 일관성 스냅샷을 생성하기 위해 필요로 되는 로그들을 검색한 직후, 생성 데이터베이스의 지정 시간 복사를 얻은 후에 복원 이정표를 생성한다. 일 실시예에서, 복원 이정표 관리기(280)는 검색된 로그들이 일관성 스냅샷을 생성할 수 있는지를 결정하기 위한 프로세스를 실행하기 위하여 애플리케이션 프로그래밍 인터페이스(API)를 호출한다. 로그들과 연관된 메타데이터는 그들이 일관성 스냅샷을 만들기 위해 필요로 되는 변경들을 포함하는지를 결정하기 위해 분석된다. 복원가능성(recoverability)이 요구된 로그들이 손실되는지 결정하기 위해 연역적으로(a priori) 계산된다.
예를 들면, 도 4에 도시된 것처럼, 복원 이정표는 지정 시간 복사가 시간 T0에서 수신(305b)된 직후에 시간 T1에서 생성(410a)된다. 그 다음에, 복원 이정표가 미리 정의된 스케줄에 기초하여 생성(515)된다. 예를 들면, 도 5에 도시된 것처럼, 복원 이정표 관리기(280)는 다음 복원 이정표를 생성하기 이전에 예정된 지연 동안 기다린다(540).
복원 이정표 관리기(280)는 복원 이정표를 획득하기 위해 수신(510)된 생성 데이터베이스의 지정 시간 복사에 트랜잭션 로그 관리기(220)에 의해 획득된 데이터베이스 로그들을 적용한다. 그 다음에, 복원 이정표 관리기(280)는 가장 최근의 복원 이정표에 트랜잭션 로그 관리기(220)에 의해 획득된 데이터베이스 로그들을 적용한다. 유효성 검증 모듈(285)은 생성 데이터베이스로부터 획득된 데이터의 유효성 검증을 수행(520)한다. 예를 들면, 유효성 검증 모듈(285)은 트랜잭션 로그 관리기(220)에 의해 획득된 트랜잭션 로그들에 임의의 손상이 있는지를 결정할 수 있다. 만일 수신된 트랜잭션 로그들이 손상된다면, 복원 이정표 관리기(280)는 트랜잭션 로그들을 사용하여 데이터베이스의 일관성 스냅샷을 획득할 수 있다. 트랜잭션 로그의 손상은 트랜잭션 로그들의 일부가 손실되거나 어떤 다른 데이터에 의해 겹쳐 쓰여졌기 때문에 발생한다.
만일 유효성 검증 모듈(285)이 검색된 데이터가 유효하고 일관된 데이터베이스 스냅샷이 상기 검색된 데이터를 사용하여 생성될 수 있음을 결정한다면, 복원 이정표 관리기는 다음 복원 이정표를 생성하기 이전에 예정된 지연 동안 기다린다(540). 만일 유효성 검증 모듈(285)이 생성 데이터베이스로부터 획득된 데이터가 유효하지 않음을 결정(525)한다면, 유효성 검증 모듈(285)은 무효 데이터의 원인을 해결하기 위해 어떤 절차를 수행(530)할 수 있다. 유효성 검증 모듈(285)은 다시 생성 데이터베이스로부터 트랜잭션 로그들을 요청할 수 있고, 트랜잭션 로그들의 그 다음 복사가 유효한지를 유효성 검증할 수 있다. 일 실시예에서, 유효성 검증 모듈(285)은 발생되었을지 모르는 어느 에러를 복원하기 위한 절차들을 수행하기 위해 시스템 관리자에 요구된 정보를 제시한다. 데이터의 손상은 위 단계 중 어느 하나 동안에 사용되는 소프트웨어, 예를 들면, 생성 데이터베이스 시스템을 실행하는 소프트웨어, 내의 어떤 결함 또는 버그 때문에 발생될 가능성이 있다. 이 상황에서, 시스템 관리자는 문제를 해결하기 위해 소프트웨어에 대한 어떤 업데이트들을 수행해야 할 수 있다. 일단 소프트웨어가 적당히 업그레이드되었다면, 시스템은 도 5에 예시된 흐름도의 단계를 진행할 수 있다. 이 단계는 어떤 문제들을 해결하기 위한 절차를 수행(530)하기 위하여 상당한 시간이 걸릴 수 있다. 일 실시예에서, 만일 시스템이 손실된 로그들 때문에 복원 이정표가 생성될 수 없음을 결정한다면, 시스템은 손실된 로그들을 요청하거나, 또는 손실된 로그들을 검색하기 위해 시스템 관리자를 활성화하는 시스템 관리자에 정보를 제공할 수 있다.
위 프로세스는 데이터가 가진 문제들이 가상 데이터베이스를 제공하기 위한 요청에 앞서 해결될 수 있게 한다. 예를 들면, 위 절차 없이, 상기 문제가 가상 데이터베이스를 제공하기 위한 요청이 수신된 후에 인식되는 것이 가능하다. 이 상황에서, 가상 데이터베이스의 요청자는, 임의의 문제를 수정하기 위한 절차가 가상 데이터베이스가 요청자에게 이용가능하도록 만들어 지기 전에 수행되는 동안의, 상당한 시간 동안 기다려야만 할 것이다.
도 5에 도시된 흐름도에 예시된 단계는 동시에 또는 도 4에 도시된 것과 상이한 순서로 수행될 수 있다. 예를 들면, 어떤 인증 단계가 복원 이정표가 생성(515)되기 이전에 수행(520)될 수 있다. 또한, 어떤 단계가 위에서 설명된 모듈들 대신에 상이한 모듈들에 의해 수행될 수 있다. 또한, 복원 이정표들의 생성은 정책 기반 방식(policy driven) 또는 요청들에 기초한 주문형 방식(on-demand)일 수 있다.
일부 실시예들에서, 생성 데이터베이스는 로깅(logging)이 하나 이상의 테이블에 대하여 꺼지도록 설정될 수 있다. 만일 로깅이 모든 테이블들에 대하여 완전히 꺼진다면, 로그들이 이용가능하지 않기 때문에, 가상 데이터베이스를 미리 제공하는 것은 로그들을 적용함으로써 수행될 수 없다. 그러나, 이러한 상황에서, 로깅은 일부 테이블들에 대하여 꺼질 수 있으나 다른 테이블에 대하여는 이용가능할 수 있다. 이 상황들에서, 상기 미리 제공하는 것은 사용자가 로깅이 생성된 가상 데이터베이스에서 이용가능한 테이블들만을 질의할 수 있도록 수행될 수 있다. 만일 사용자가 로깅이 꺼진 테이블들을 질의하는 것을 시도한다면, 사용자는 최신 정보를 얻을 수 없거나 또는 이 테이블들에 대한 일관성 스냅샷 조차도 얻을 수 없다. 또한, 사용자는 미리 제공된 복원 이정표로부터 생성된 가상 데이터베이스 내의 로그온 된 테이블들 및 로그 오프 된 테이블을 연결하는 질의들을 실행할 수 없다. 로그 오프되었던 테이블들에서, 상기 테이블을 설명하는 최신 정보는 트랜잭션 로그들을 수신하는 것에 의하기 보다는 생성 데이터베이스로부터 데이터 블록들을 수신하는 것에 의하여 획득된다.
추가적인 구성에 관한 고려사항( Additional Configuration Considerations )
본 명세서에 걸쳐서, 복수의 예가 단일 예로서 설명된 구성요소, 동작 또는 구조를 구현할 수 있다. 하나 이상의 방법 중 개별 동작이 분리된 동작으로서 예시 및 설명되지만, 하나 이상의 개별 동작이 동시에 수행될 수 있고, 그 동작이 예시된 순서로 수행되는 것을 전혀 요구하지 않는다. 예시된 구성에서 분리된 구성요소로서 제시된 구조 및 기능이 결합된 구조 또는 구성요소로서 구현될 수 있다. 이와 유사하게, 단일 구성으로 제시된 구조 및 기능은 별도의 구성요소로 구현될 수 있다. 그것 및 다른 변형, 수정, 추가, 개선점은 본 명세서에의 발명 주제의 범위 내에 있다.
소정의 실시예가 논리 또는 다수의 구성요소, 모듈 또는 메커니즘을 포함하는 것으로 본 명세서에서 설명된다. 모듈은 소프트웨어 모듈(예를 들어, 기계 판독가능 매체 상에서 또는 송신 신호로 실시된 코드) 또는 하드웨어 모듈 중 어느 하나를 구성할 수 있다. 하드웨어 모듈이 소정의 동작을 수행할 수 있는 유형의 유닛이고 소정의 방법으로 구성 또는 배열될 수 있다. 예시된 실시예에서, 하나 이상의 컴퓨터 시스템(예를 들어, 독립 실행형(standalone), 클라이언트 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템의 하나 이상의 하드웨어 모듈(예를 들어, 프로세서 또는 프로세서 그룹)은 본 명세서에서 설명된 바와 같이 소정의 동작을 수행하기 위해 동작하는 하드웨어 모듈로서 소프트웨어(예를 들어, 애플리케이션 또는 애플리케이션 부분)에 의해 구성될 수 있다.
다양한 실시예에서, 하드웨어 모듈은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들어, 하드웨어 모듈이 소정의 동작을 수행하기 위해 영구히 구성되는 전용 회로 또는 논리(예를 들어, FPGA(field programmable gate array) 또는 ASIC(application-specific integrated circuit)와 같은 특수-목적 프로세서(special-purpose processor))를 포함할 수 있다. 하드웨어 모듈은 또한 소정의 동작을 수행하기 위해 소프트웨어로 임시로 구성되는 프로그램가능한 논리 또는 회로(예를 들어, 범용 프로세서 또는 다른 프로그램가능한 프로세서 내에 포함된 바와 같이)도 포함할 수 있다. 전용 회로 및 영구히 구성된 회로 또는 임시로 구성된 회로(예를 들어, 소프트웨어로 구성된)에서 하드웨어 모듈을 기계적으로 구현하는 결정이 비용 및 시간을 고려할 때 행해질 수 있음을 알 수 있다.
따라서, 용어 "하드웨어 모듈"은 소정의 방법으로 동작하거나 본 명세서에서 설명된 소정의 동작을 수행하기 위해 물리적으로 구성되고, 영구히 구성되고(예를 들어, 하드웨어로 구성된), 또는 임시로 구성되는(예를 들어, 프로그램된) 엔티티(entity)인 유형의 엔티티를 포함하는 것으로 이해되어야 한다. 본 명세서에서 사용했듯이, "하드웨어로 구현된 모듈"은 하드웨어 모듈을 말한다. 하드웨어 모듈을 임시로 구성하는(예를 들어, 프로그램된) 실시예를 고려할 때, 각 하드웨어 모듈은 어느 하나의 예에서 시간에 맞춰 구성 또는 예시할 필요가 없다. 예를 들어, 하드웨어 모듈이 소프트웨어를 사용해서 구성된 범용 프로세서를 포함하는 경우에, 범용 프로세서가 상이한 시간에 각기 상이한 하드웨어 모듈로서 구성될 수 있다. 따라서, 소프트웨어가 예를 들어, 하나의 시간 예에서 특정한 하드웨어 모듈을 구성하고 다른 시간 예에서 다른 하드웨어 모듈을 구성하는 프로세서를 구성할 수 있다.
하드웨어 모듈이 정보를 다른 하드웨어 모듈로 제공할 수 있고 정보를 다른 하드웨어 모듈로부터 수신할 수 있다. 따라서, 그 설명된 하드웨어 모듈은 통신적으로 결합되는 것으로 간주될 수 있다. 다수의 하드웨어 모듈이 동시에 존재하는 경우에, 통신이 하드웨어 모듈을 연결하는 신호 송신(예를 들어, 적합한 회로 및 버스를 통해)을 통해 행해질 수 있다. 다수의 하드웨어 모듈을 상이한 시간에 구성 또는 예시하는 실시예에서, 그 하드웨어 모듈들 간의 통신은 예를 들어, 다수의 하드웨어 모듈을 액세스하는 메모리 구조에서 정보의 저장 및 검색을 통해 행해질 수 있다. 예를 들어, 하나의 하드웨어 모듈은 통신적으로 결합되는 메모리 장치에서 동작을 수행하고 그 동작의 출력을 저장할 수 있다. 그 후, 부가적인 하드웨어 모듈은 그 저장된 출력을 검색하고 처리하기 위해 메모리 장치에, 이후, 액세스할 수 있다. 하드웨어 모듈은 입력 또는 출력 장치와의 통신을 개시할 수 있고, 자원(예를 들어, 정보 수집)에서 동작할 수 있다.
본 명세서에서 설명된 예시된 방법의 다양한 동작은 관련된 동작을 수행하기 위해 임시로 구성되거나(예를 들어, 소프트웨어에 의해) 영구히 구성되는 하나 이상의 프로세서에 의해 적어도 부분적으로 수행될 수 있다. 임시로 또는 영구히 구성되든지 간에, 그 프로세서는 하나 이상의 동작 또는 기능을 수행하기 위해 동작하는 프로세서로 구현된 모듈을 구성할 수 있다. 본 명세서에서 언급된 모듈은 일부 예시적인 실시예에서 프로세서로 구현된 모듈을 포함할 수 있다.
유사하게, 본 명세서에 설명된 방법은 프로세서로 적어도 부분적으로 구현될 수 있다. 예를 들어, 방법의 동작들 중 적어도 일부가 하나 또는 프로세서들 또는 프로세서로 구현된 하드웨어 모듈에 의해 수행될 수 있다. 소정의 동작 성능은 단일 기계 내에 상주할 뿐 아니라 다수의 기계에 배치된 하나 이상의 프로세서들 간에 분배될 수 있다. 일부의 실시예에서, 프로세서(들)는 (예를 들어, 가정 환경, 사무실 환경 또는 서버 팜 내에서) 단일 위치에 위치될 수 있는 반면에 다른 실시예에서 그 프로세서들이 다수의 위치에 분배될 수 있다.
하나 이상의 프로세서들은 "클라우드 컴퓨팅" 환경에서 또는 "서비스로서의 소프트웨어("software as a service"(SaaS))"로서 관련된 동작 성능을 지원하기 위해 동작할 수 있다. 예를 들어, 동작들 중 적어도 일부가 (프로세서를 포함하는 기계의 예로서) 컴퓨터 그룹에 의해 수행될 수 있고, 그 동작이 네트워크(예를 들어, 인터넷) 및 하나 이상의 적합한 인터페이스(예를 들어, 애플리케이션 프로그램 인터페이스(API))를 경유해서 액세스 가능하다.
소정의 동작 성능은 단일 기계 내에 상주할 뿐 아니라 다수의 기계에 배치된 하나 이상의 프로세서들 간에 분배될 수 있다. 일부의 실시예에서, 하나 이상의 프로세서 또는 프로세서로 구현된 모듈은(예를 들어, 가정 환경, 사무실 환경 또는 서버 팜 내에서) 단일의 지리적인 위치에 위치될 수 있다. 다른 실시예에서 하나 이상의 프로세서 또는 프로세서로 구현된 모듈이 다수의 지리적인 위치에 분배될 수 있다.
본 명세서의 일부가 기계 메모리(예를 들어, 컴퓨터 메모리) 내의 비트 또는 2진 데이터 신호로서 저장된 데이터 상에서 동작의 알고리즘 또는 심벌 표현으로 제시된다. 그 알고리즘 또는 심벌 표현이 그들의 작업 자료를 해당 기술분야의 다른 통상의 기술자에게 전달하기 위한 데이터 처리 기술에서 통상의 기술자에 의해 사용된 기술의 예이다. 본 명세서에서 사용하듯이, "알고리즘"은 동작의 일관된 시퀀스 또는 바라는 결과를 초래하는 유사한 처리이다. 이런 문맥에서, 알고리즘 및 동작은 물리적인 양의 물리적인 조작을 포함한다. 그 양은 기계에 의해 저장, 액세스, 이송, 결합, 비교, 또는 조작될 수 있는 전기, 자기 또는 광학 신호의 형태인 것이 일반적이나 반드시 그럴 필요는 없다. "데이터", "컨텐츠", "비트", "값", "소자", 심벌", "문자", "용어", "숫자", "부호" 등과 같은 단어를 사용해서 그 신호들을 설명하는 것이 주로 일반적으로 사용되는 용어라는 이유로 때로는 편리하다. 그러나, 그 단어는 단지 편리한 레이블이고 알맞은 물리적인 양과 관련된다.
그렇지 않고 특정하게 언급하지 않으면, "처리", "컴퓨팅", "계산", "결정", "제시", "표시" 등과 같은 단어를 사용하는 본 명세서의 논의가 정보를 수신, 저장, 송신 또는 표시하는 하나 이상의 메모리(예를 들어, 휘발성 메모리, 비-휘발성 메모리 또는 그 결합체), 레지스터 또는 다른 기계 구성 내의 물리적인(예를 들어, 전자적, 자기적 또는 광학적) 양으로서 표현된 데이터를 조작 또는 변환하는 기계(예를 들어, 컴퓨터)의 작용 또는 프로세스를 말할 수 있다.
본 명세서에 사용된 "일 실시예" 또는 "실시예"는 실시예와 관련되어 설명된 특정한 소자, 특징, 구조 또는 특성이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 본 명세서의 여러 군데서 "일 실시예에서"라는 문구의 기재는 같은 실시예를 모두 말하지는 않는다.
일부의 실시예는 그 파생어와 함께 "결합된" 및 "연결된"의 표현을 사용해서 설명될 수 있다. 그 용어가 서로 동의어로 의도된 것은 아니라는 것이 이해되어야 할 것이다. 예를 들어, 일부의 실시예는 2개 이상의 소자들이 서로 직접적으로 물리적으로 또는 전기적으로 접촉하게 되는 것을 표시하기 위해 용어 "연결된"을 사용해서 설명될 수 있다. 다른 예에서, 일부의 실시예는 2개 이상의 소자들이 직접적으로 물리적으로 또는 전기적으로 접촉하게 되는 것을 표시하기 위해 용어 "결합된"을 사용해서 설명될 수 있다. 그러나, 용어 "결합된"은 2개 이상의 소자가 서로 직접적으로 접촉하지 않는 것을 의미하나, 서로 협력하거나 상호작용하는 것을 의미할 수 있다. 그 실시예들은 그 문맥에서 제한되지 않는다.
본 명세서에서 사용했듯이, 용어 "구비하고", "구비하는", "포함하고", "포함하는", "갖고", "갖는", 또는 그것들의 다른 변형은 비-배타적인 포함을 의도하는 것이다. 예를 들어, 소자의 목록을 구성하는 프로세스, 방법, 물품, 또는 장치는 이들 요소만으로 반드시 제한되지 않으나 그 프로세스, 방법, 물품 또는 장치에 표현적으로 목록 또는 내재하지 않는 다른 요소를 포함할 수 있다. 또한, 달리 언급된 경우를 제외하고, "또는"은 포함하는 '또는'을 의미하고 배타적인 "또는"을 의미하는 것이 아니다. 예를 들어, 상태 A 또는 B는 다음 것 중 어느 하나에 의해 만족되고: A는 진실(또는 존재)이고 B가 거짓(또는 부재)이고, A는 거짓(또는 부재)이고 B가 진실(또는 존재)이고, A 및 B 모두가 진실(또는 존재)이다.
또한, "하나"의 사용은 본 명세서의 실시예의 소자 및 구성을 설명하기 위해 사용된다. 그것은 단지 편리성을 위해 및 본 발명의 일반적인 의미를 부여하기 위해 행해진다. 그 설명은 하나 또는 적어도 하나를 포함하는 것으로 읽을 필요가 있고, 단수형은 달리 의미되는 것이 명백한 경우를 제외하고 복수형을 포함한다.
본 개시를 판독할 때, 해당 기술분야의 통상의 기술자는 저장 관리기에 저장된 생성 데이터베이스의 지정 시간 복사로부터 가상 데이터베이스를 생성하기 위한 시스템 및 프로세스에 대한 추가의 대안적인 구조 및 기능 설계를 인식할 것이다. 그러므로, 특정한 실시예 및 애플케이션이 예시 및 설명되어 있으나, 개시된 실시예가 본 명세서에 개시된 정확한 구조 및 구성요소로 제한되지 않는다. 해당 기술분야의 통상의 기술자에게 명백하게 되는 각종 수정, 변경, 및 변형은 첨부된 특허청구범위에 정의된 정신 및 범위를 벗어남이 없이 본 명세서에서 개시된 방법 및 장치의 배열, 동작 및 상세한 설명에 있어서 행해질 수 있다.

Claims (22)

  1. 유효성 검증된 데이터베이스 스냅샷을 미리 제공하기 위한 방법으로서,
    상기 소스 데이터베이스에 대응하는 복수의 데이터베이스 블록들을 수신하는 단계;
    저장 시스템 상에 상기 데이터베이스 블록들을 저장하는 단계;
    상기 소스 데이터베이스에서 실행된 트랜잭션들에 대응하는 트랜잭션 로그들을 상기 소스 데이터베이스로부터 수신하는 단계;
    가상 데이터베이스를 제공하기 위한 요청을 수신하지 않고 다수의 복원 이정표들을 생성하는 단계로서, 각 복원 이정표는 지정 시간에 대응하는 소스 데이터베이스의 일관성 스냅샷(consistent snapshot)이 생성될 수 있는 데이터베이스 블록들을 포함하고, 상기 데이터베이스 블록들의 적어도 일부는 다수의 복원 이정표들과 연관되고,
    각 복원 이정표의 상기 생성은:
    상기 소스 데이터베이스로부터 수신된 복수의 데이터베이스 블록들 또는 이전 복원 이정표의 복수의 데이터베이스 블록들 중 어느 하나에 트랜잭션 로그들의 세트를 적용하는 단계; 및
    상기 복원 이정표가 상기 소스 데이터베이스의 일관성 스냅샷을 생성하기 위해 사용될 수 있는지 여부를 결정하기 위해 생성된 상기 복원 이정표를 유효성 검증하는 단계를 포함하는, 상기 다수의 복원 이정표들을 생성하는 단계; 및
    지정 시간에 대응하는 가상 데이터베이스를 제공하기 위한 요청을 수신하는 것에 응답하여, 상기 지정 시간에 대응하는 복원 이정표를 식별하고, 상기 복원 이정표에 기초하여 상기 요청된 가상 데이터베이스를 제공하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 요청된 가상 데이터베이스의 상기 지정 시간이 복원 이정표의 지정 시간과 일치하는 것에 응답하여, 상기 일치하는 복원 이정표의 상기 데이터베이스 블록들을 포함하는 상기 요청된 가상 데이터베이스를 제공하는 단계를 포함하는, 방법.
  3. 제 1 항에 있어서,
    각 복원 이정표를 생성하는 단계는:
    상기 요청된 가상 데이터베이스의 상기 지정 시간이 상기 복원 이정표들 중 어느 하나의 지정 시간과 일치하지 않는 것에 응답하여, 가장 가까운 지정 시간을 가지며 상기 요청된 지정 시간 이전에 발생된 복원 이정표를 선택하는 단계; 및
    상기 요청된 지정 시간에 대응하는 데이터베이스 스냅샷을 생성하기 위해 상기 선택된 복원 이정표의 상기 데이터베이스 블록들에 트랜잭션 로그들을 적용하는 단계; 및
    생성된 상기 데이터베이스 스냅샷의 상기 데이터베이스 블록들을 포함하는 상기 요청된 가상 데이터베이스를 제공하는 단계를 포함하는, 방법.
  4. 제 1 항에 있어서,
    상기 다수의 복원 이정표들은 미리 정의된 스케줄에 기초하여 생성되는, 방법.
  5. 제 1 항에 있어서,
    상기 복원 이정표를 유효성 검증하는 단계는:
    상기 복원 이정표에 대응하는 트랜잭션 로그들의 세트가 손상됨을 결정하는 것에 응답하여, 상기 복원 이정표가 무효함을 결정하는 단계를 포함하는, 방법.
  6. 제 1 항에 있어서,
    상기 복원 이정표를 유효성 검증하는 단계는:
    상기 복원 이정표가 무효함을 결정하는 것에 응답하여, 무효한 복원 이정표의 생성을 초래하는 결함을 식별하기 위한 단계 및 상기 결함을 해소하기 위한 단계를 실행하는 단계를 포함하는, 방법.
  7. 제 6 항에 있어서,
    상기 복원 이정표를 유효성 검증하는 단계는:
    무효한 복원 이정표가 생성되었음을 결정하는 상기 유효성 검증에 응답하여, 대응하는 유효한 복원 이정표를 생성하기 위해 벤더 라이브러리(vendor library)의 최신 버전을 수신하는 단계를 포함하는, 방법.
  8. 제 1 항에 있어서,
    상기 복원 이정표에 기초하여 상기 요청된 가상 데이터베이스를 제공하는 단계는 상기 복원 이정표에 트랜잭션 로그들의 제1 세트를 적용하는 단계를 포함하되, 상기 트랜잭션 로그들의 제1 세트는 동일한 복원 이정표를 획득하기 위해 상기 소스 데이터베이스의 지정 시간 복사에 적용된 트랜잭션 로그들의 세트보다 더 작은, 방법.
  9. 제 1 항에 있어서,
    복원 이정표들이 생성된 경우에 상기 소스 데이터베이스의 지정 시간 복사들이 수신되는 비율이 어느 복원 이정표들도 생성되지 않은 경우에 상기 소스 데이터베이스의 지정 시간 복사들이 수신되는 비율 보다 더 작은지를 결정하는 단계를 더 포함하는, 방법.
  10. 유효성 검증된 데이터베이스 스냅샷을 미리 제공하기 위한 방법으로서,
    상기 소스 데이터베이스에 대응하는 복수의 데이터베이스 블록들을 수신하는 단계;
    저장 시스템 상에 상기 데이터베이스 블록들을 저장하는 단계;
    상기 소스 데이터베이스에서 실행된 트랜잭션들에 대응하는 트랜잭션 로그들을 상기 소스 데이터베이스로부터 수신하는 단계; 및
    가상 데이터베이스를 제공하기 위한 요청을 수신하지 않고 다수의 복원 이정표들을 생성하는 단계를 포함하되,
    각 복원 이정표는 지정 시간에 대응하는 소스 데이터베이스의 일관성 스냅샷이 생성될 수 있는 데이터베이스 블록들을 포함하고, 상기 데이터베이스 블록들의 적어도 일부는 다수의 복원 이정표들과 연관되고,
    각 복원 이정표의 상기 생성은:
    상기 소스 데이터베이스로부터 수신된 복수의 데이터베이스 블록들 또는 이전 복원 이정표의 복수의 데이터베이스 블록들 중 어느 하나에 트랜잭션 로그들의 세트를 적용하는 단계를 포함하는, 방법.
  11. 제 10 항에 있어서,
    지정 시간에 대응하는 가상 데이터베이스를 제공하기 위한 요청을 수신하는 것에 응답하여, 상기 지정 시간에 대응하는 복원 이정표를 식별하고, 상기 복원 이정표에 기초하여 상기 요청된 가상 데이터베이스를 제공하는 단계를 더 포함하는, 방법.
  12. 제 11 항에 있어서,
    상기 복원 이정표에 기초하여 상기 요청된 가상 데이터베이스를 제공하는 단계는 상기 복원 이정표에 트랜잭션 로그들의 제1 세트를 적용하는 단계를 더 포함하되, 상기 트랜잭션 로그들의 제1 세트는 동일한 복원 이정표를 획득하기 위해 상기 소스 데이터베이스의 지정 시간 복사에 적용된 트랜잭션 로그들의 세트보다 더 작은, 방법.
  13. 제 10 항에 있어서,
    지정 시간에 대응하는 가상 데이터베이스를 제공하기 위한 요청을 수신하는 단계;
    상기 요청된 가상 데이터베이스의 상기 지정 시간이 상기 복원 이정표들 중 어느 하나의 지정 시간과 일치하지 않는 것에 응답하여, 가장 가까운 지정 시간을 가지며 상기 요청된 지정 시간 이전에 발생된 복원 이정표를 선택하는 단계;
    상기 요청된 지정 시간에 대응하는 데이터베이스 스냅샷을 생성하기 위해 상기 선택된 복원 이정표의 상기 데이터베이스 블록들에 트랜잭션 로그들을 적용하는 단계; 및
    생성된 상기 데이터베이스 스냅샷의 상기 데이터베이스 블록들을 포함하는 상기 요청된 가상 데이터베이스를 제공하는 단계를 더 포함하는, 방법.
  14. 제 10 항에 있어서,
    각 복원 이정표를 생성하는 단계는:
    상기 복원 이정표가 상기 소스 데이터베이스의 일관성 스냅샷을 생성하기 위해 사용될 수 있는지 여부를 결정하기 위해 생성된 상기 복원 이정표를 유효성 검증하는 단계를 더 포함하는, 방법.
  15. 제 14 항에 있어서,
    상기 복원 이정표를 유효성 검증하는 단계는:
    상기 복원 이정표에 대응하는 트랜잭션 로그들의 세트가 손상됨을 결정하는 것에 응답하여, 상기 복원 이정표가 무효함을 결정하는 단계를 포함하는, 방법.
  16. 제 14 항에 있어서,
    상기 복원 이정표를 유효성 검증하는 단계는:
    상기 복원 이정표가 무효함을 결정하는 것에 응답하여, 무효한 복원 이정표의 생성을 초래하는 결함을 식별하기 위한 단계 및 상기 결함을 해소하기 위한 단계를 실행하는 단계를 포함하는, 방법.
  17. 제 10 항에 있어서,
    복원 이정표들이 생성된 경우에 상기 소스 데이터베이스의 지정 시간 복사들이 수신되는 비율이 어느 복원 이정표들도 생성되지 않은 경우에 상기 소스 데이터베이스의 지정 시간 복사들이 수신되는 비율 보다 더 작은지를 결정하는 단계를 더 포함하는, 방법.
  18. 컴퓨터 프로세스 상에서 실행하도록 구성된 컴퓨터 프로그램 모듈들을 저장하는 비-일시적인 컴퓨터-판독가능 저장 매체를 갖는 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 프로그램 모듈들은:
    상기 소스 데이터베이스에 대응하는 복수의 데이터베이스 블록들을 수신하고, 저장 시스템 상에 상기 데이터베이스 블록들을 저장하도록 구성된 지정 시간 복사 관리기;
    상기 소스 데이터베이스에서 실행된 트랜잭션들에 대응하는 트랜잭션 로그들을 상기 소스 데이터베이스로부터 수신하도록 구성된 트랜잭션 로그 관리기;
    가상 데이터베이스를 제공하기 위한 요청을 수신하지 않고 다수의 복원 이정표들을 생성하도록 구성된 복원 이정표 관리기로서, 각 복원 이정표는 지정 시간에 대응하는 소스 데이터베이스의 일관성 스냅샷이 생성될 수 있는 데이터베이스 블록들을 포함하고, 상기 데이터베이스 블록들의 적어도 일부는 다수의 복원 이정표들과 연관되고,
    각 복원 이정표의 상기 생성은:
    상기 소스 데이터베이스로부터 수신된 복수의 데이터베이스 블록들 또는 이전 복원 이정표의 복수의 데이터베이스 블록들 중 어느 하나에 트랜잭션 로그들의 세트를 적용하는 것; 및
    상기 복원 이정표가 상기 소스 데이터베이스의 일관성 스냅샷을 생성하기 위해 사용될 수 있는지 여부를 결정하기 위해 생성된 상기 복원 이정표를 유효성 검증하는 것을 포함하는, 상기 복원 이정표 관리기; 및
    지정 시간에 대응하는 가상 데이터베이스를 제공하기 위한 요청을 수신하는 것에 응답하여, 상기 지정 시간에 대응하는 복원 이정표를 식별하고, 상기 복원 이정표에 기초하여 상기 요청된 가상 데이터베이스를 제공하도록 구성된 가상 데이터베이스 관리기를 포함하는, 컴퓨터 프로그램 제품.
  19. 제 18 항에 있어서,
    각 복원 이정표를 생성하는 것은:
    가장 가까운 지정 시간을 가지며 상기 요청된 지정 시간 이전에 발생된 복원 이정표를 선택하는 것; 및
    상기 요청된 지정 시간에 대응하는 데이터베이스 스냅샷을 생성하기 위해 상기 선택된 복원 이정표의 상기 데이터베이스 블록들에 트랜잭션 로그들을 적용하는 것; 및
    생성된 상기 데이터베이스 스냅샷의 상기 데이터베이스 블록들을 포함하는 상기 요청된 가상 데이터베이스를 제공하는 것을 포함하는, 컴퓨터 프로그램 제품.
  20. 제 18 항에 있어서,
    상기 다수의 복원 이정표들은 미리 정의된 스케줄에 기초하여 생성되는, 컴퓨터 프로그램 제품.
  21. 제 18 항에 있어서,
    상기 복원 이정표를 유효성 검증하는 것은:
    상기 복원 이정표에 대응하는 트랜잭션 로그들의 세트가 손상됨을 결정하는 것에 응답하여, 상기 복원 이정표가 무효함을 결정하는 것을 포함하는, 컴퓨터 프로그램 제품.
  22. 제 18 항에 있어서,
    제 1 항에 있어서,
    상기 복원 이정표를 유효성 검증하는 것은:
    상기 복원 이정표가 무효함을 결정하는 것에 응답하여, 상기 무효한 복원 이정표의 생성을 초래하는 결함을 식별하기 위한 단계 및 상기 결함을 해소하기 위한 단계를 실행하는 것을 포함하는, 컴퓨터 프로그램 제품.
KR1020157008538A 2012-10-04 2013-10-02 가상 데이터베이스를 제공하기 위한 유효성 검증 데이터베이스 스냅샷의 생성 방법, 시스템 및 컴퓨터 판독가능 저장 매체 KR101780340B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/645,409 2012-10-04
US13/645,409 US8788461B2 (en) 2012-10-04 2012-10-04 Creating validated database snapshots for provisioning virtual databases
PCT/US2013/063120 WO2014055685A2 (en) 2012-10-04 2013-10-02 Creating validated database snapshots for provisioning virtual databases

Publications (2)

Publication Number Publication Date
KR20150065696A true KR20150065696A (ko) 2015-06-15
KR101780340B1 KR101780340B1 (ko) 2017-10-10

Family

ID=50433529

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157008538A KR101780340B1 (ko) 2012-10-04 2013-10-02 가상 데이터베이스를 제공하기 위한 유효성 검증 데이터베이스 스냅샷의 생성 방법, 시스템 및 컴퓨터 판독가능 저장 매체

Country Status (6)

Country Link
US (2) US8788461B2 (ko)
EP (1) EP2904501B1 (ko)
KR (1) KR101780340B1 (ko)
AU (1) AU2013327062B2 (ko)
CA (1) CA2885056C (ko)
WO (1) WO2014055685A2 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11392557B1 (en) * 2012-10-15 2022-07-19 Google Llc Efficient data backup in a distributed storage system
US9497145B2 (en) 2013-09-20 2016-11-15 Oracle International Corporation System and method for supporting fault tolerant job management in a cloud platform environment
US9552259B1 (en) * 2014-05-30 2017-01-24 EMC IP Holding Company LLC Dynamic provisioning of snapshots
US10083196B2 (en) * 2015-02-04 2018-09-25 Delphix Corporation Creating secure virtual databases storing masked data
CN105988897A (zh) * 2015-02-12 2016-10-05 广东欧珀移动通信有限公司 一种移动终端备份数据的还原方法及装置
US9990366B2 (en) * 2015-03-13 2018-06-05 Delphix Corporation Virtual partitions in virtual databases
US10380066B2 (en) * 2015-07-09 2019-08-13 Quantum Corporation File system with multi-class in situ tiered archiving
WO2017023342A1 (en) * 2015-07-31 2017-02-09 Hewlett Packard Enterprise Development Lp Backup changes in transaction log file
US10572347B2 (en) 2015-09-23 2020-02-25 International Business Machines Corporation Efficient management of point in time copies of data in object storage by sending the point in time copies, and a directive for manipulating the point in time copies, to the object storage
US10983951B1 (en) * 2016-09-29 2021-04-20 EMC IP Holding Company LLC Recovery processing for persistent file data cache to reduce data loss
US10552372B2 (en) 2017-01-31 2020-02-04 Microsoft Technology Licensing, Llc Systems, methods, and computer-readable media for a fast snapshot of application data in storage
US10901957B2 (en) * 2018-08-29 2021-01-26 International Business Machines Corporation Checkpointing for increasing efficiency of a blockchain
US11196542B2 (en) 2018-08-29 2021-12-07 International Business Machines Corporation Checkpointing for increasing efficiency of a blockchain
US11334439B2 (en) 2018-08-29 2022-05-17 International Business Machines Corporation Checkpointing for increasing efficiency of a blockchain
USD886143S1 (en) 2018-12-14 2020-06-02 Nutanix, Inc. Display screen or portion thereof with a user interface for database time-machine
US10817157B2 (en) 2018-12-20 2020-10-27 Nutanix, Inc. User interface for database management services
US11010336B2 (en) 2018-12-27 2021-05-18 Nutanix, Inc. System and method for provisioning databases in a hyperconverged infrastructure system
US11816066B2 (en) 2018-12-27 2023-11-14 Nutanix, Inc. System and method for protecting databases in a hyperconverged infrastructure system
US11176090B2 (en) 2019-01-28 2021-11-16 International Business Machines Corporation Verification of the integrity of data files stored in copy-on-write (CoW) based file system snapshots
CN111611108A (zh) * 2020-05-21 2020-09-01 云和恩墨(北京)信息技术有限公司 虚拟数据库还原的方法及装置
US11604705B2 (en) 2020-08-14 2023-03-14 Nutanix, Inc. System and method for cloning as SQL server AG databases in a hyperconverged system
US11907167B2 (en) 2020-08-28 2024-02-20 Nutanix, Inc. Multi-cluster database management services
US11640340B2 (en) 2020-10-20 2023-05-02 Nutanix, Inc. System and method for backing up highly available source databases in a hyperconverged system
CN112380058A (zh) * 2020-11-12 2021-02-19 上海上讯信息技术股份有限公司 文件恢复方法及设备
US11604806B2 (en) 2020-12-28 2023-03-14 Nutanix, Inc. System and method for highly available database service
US11892918B2 (en) 2021-03-22 2024-02-06 Nutanix, Inc. System and method for availability group database patching
JP7242744B2 (ja) * 2021-04-13 2023-03-20 株式会社日立製作所 マイグレーション支援方法及びシステム
US11803368B2 (en) 2021-10-01 2023-10-31 Nutanix, Inc. Network learning to control delivery of updates

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4853843A (en) 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US6970434B1 (en) 1995-06-07 2005-11-29 Broadcom Corporation Hierarchical communication system providing intelligent data, program and processing migration
US5680618A (en) 1993-05-26 1997-10-21 Borland International, Inc. Driver query and substitution for format independent native data access
EP1003103B1 (en) 1993-06-03 2008-10-01 Network Appliance, Inc. Write anywhere file-system layout method and apparatus
US5680608A (en) 1995-02-06 1997-10-21 International Business Machines Corporation Method and system for avoiding blocking in a data processing system having a sort-merge network
US5634053A (en) 1995-08-29 1997-05-27 Hughes Aircraft Company Federated information management (FIM) system and method for providing data site filtering and translation for heterogeneous databases
US7197491B1 (en) 1999-09-21 2007-03-27 International Business Machines Corporation Architecture and implementation of a dynamic RMI server configuration hierarchy to support federated search and update across heterogeneous datastores
US6523036B1 (en) 2000-08-01 2003-02-18 Dantz Development Corporation Internet database system
US7072916B1 (en) 2000-08-18 2006-07-04 Network Appliance, Inc. Instant snapshot
US7512673B2 (en) 2001-01-11 2009-03-31 Attune Systems, Inc. Rule based aggregation of files and transactions in a switched file system
US20020143764A1 (en) 2001-04-03 2002-10-03 Martin Andrew R. Data management system and method for intercepting and changing database instructions between a database back end and an application front end
DE50101548D1 (de) 2001-05-17 2004-04-01 Presmar Peter Virtuelle Datenbank heterogener Datenstrukturen
US7373364B1 (en) 2002-03-05 2008-05-13 Network Appliance, Inc. System and method for creating a point-in-time restoration of a database file
US7225204B2 (en) 2002-03-19 2007-05-29 Network Appliance, Inc. System and method for asynchronous mirroring of snapshots at a destination using a purgatory directory and inode mapping
US7340489B2 (en) 2002-04-10 2008-03-04 Emc Corporation Virtual storage devices
JP2003316522A (ja) 2002-04-26 2003-11-07 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
EP1387269A1 (en) * 2002-08-02 2004-02-04 Hewlett Packard Company, a Delaware Corporation Backup system and method of generating a checkpoint for a database
US7107385B2 (en) 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
JP4124331B2 (ja) 2002-09-17 2008-07-23 株式会社日立製作所 Dbms向け仮想ボリューム作成・管理方法
US7243093B2 (en) 2002-11-27 2007-07-10 International Business Machines Corporation Federated query management
US6883083B1 (en) 2002-12-20 2005-04-19 Veritas Operating Corporation System and method for maintaining and accessing information regarding virtual storage devices
US7457982B2 (en) 2003-04-11 2008-11-25 Network Appliance, Inc. Writable virtual disk of read-only snapshot file objects
US7181476B2 (en) 2003-04-30 2007-02-20 Oracle International Corporation Flashback database
US7269607B2 (en) 2003-09-29 2007-09-11 International Business Machines Coproartion Method and information technology infrastructure for establishing a log point for automatic recovery of federated databases to a prior point in time
US7346923B2 (en) 2003-11-21 2008-03-18 International Business Machines Corporation Federated identity management within a distributed portal server
US7409511B2 (en) 2004-04-30 2008-08-05 Network Appliance, Inc. Cloning technique for efficiently creating a copy of a volume in a storage system
US7334095B1 (en) 2004-04-30 2008-02-19 Network Appliance, Inc. Writable clone of read-only volume
US7334094B2 (en) 2004-04-30 2008-02-19 Network Appliance, Inc. Online clone volume splitting technique
GB0428108D0 (en) 2004-12-23 2005-01-26 Ibm Storage system with multiple copy targeting
US7757056B1 (en) 2005-03-16 2010-07-13 Netapp, Inc. System and method for efficiently calculating storage required to split a clone volume
US7631021B2 (en) 2005-03-25 2009-12-08 Netapp, Inc. Apparatus and method for data replication at an intermediate node
US7814057B2 (en) * 2005-04-05 2010-10-12 Microsoft Corporation Page recovery using volume snapshots and logs
US7539836B1 (en) 2005-04-18 2009-05-26 Netapp, Inc. Method and system for configuring a data storage object
US7822758B1 (en) 2005-04-22 2010-10-26 Network Appliance, Inc. Method and apparatus for restoring a data set
CA2954888C (en) 2005-06-24 2019-06-04 Catalogic Software, Inc. System and method for high performance enterprise data protection
JP4822889B2 (ja) 2006-03-20 2011-11-24 富士通株式会社 データベース統合参照プログラム、データベース統合参照方法及びデータベース統合参照装置
US7590660B1 (en) 2006-03-21 2009-09-15 Network Appliance, Inc. Method and system for efficient database cloning
US7653794B2 (en) 2006-05-08 2010-01-26 Microsoft Corporation Converting physical machines to virtual machines
US7587563B1 (en) 2006-07-11 2009-09-08 Network Appliance, Inc. Method and system to make a read-only file system appear to be writeable
US7856424B2 (en) 2006-08-04 2010-12-21 Apple Inc. User interface for backup management
US8311988B2 (en) 2006-08-04 2012-11-13 Apple Inc. Consistent back up of electronic information
US7827366B1 (en) 2006-10-31 2010-11-02 Network Appliance, Inc. Method and system for providing continuous and long-term data protection for a dataset in a storage system
WO2008121873A1 (en) 2007-03-29 2008-10-09 Vmware, Inc. Synchronization and customization of a clone computer
US8775663B1 (en) 2007-04-25 2014-07-08 Netapp, Inc. Data replication network traffic compression
US8010900B2 (en) 2007-06-08 2011-08-30 Apple Inc. User interface for electronic backup
WO2009032710A2 (en) 2007-08-29 2009-03-12 Nirvanix, Inc. Filing system and method for data files stored in a distributed communications network
US7877357B1 (en) 2007-10-12 2011-01-25 Netapp, Inc. Providing a simulated dynamic image of a file system
US7996636B1 (en) 2007-11-06 2011-08-09 Netapp, Inc. Uniquely identifying block context signatures in a storage volume hierarchy
US8082234B2 (en) 2007-11-19 2011-12-20 Teradata Us, Inc. Closed-loop system management method and process capable of managing workloads in a multi-system database environment
US7779051B2 (en) 2008-01-02 2010-08-17 International Business Machines Corporation System and method for optimizing federated and ETL'd databases with considerations of specialized data structures within an environment having multidimensional constraints
US20090177697A1 (en) 2008-01-08 2009-07-09 International Business Machines Corporation Correlation and parallelism aware materialized view recommendation for heterogeneous, distributed database systems
US8700574B2 (en) 2008-03-21 2014-04-15 Omnitracs, Llc Pourover journaling
US8532973B1 (en) 2008-06-27 2013-09-10 Netapp, Inc. Operating a storage server on a virtual machine
US8037032B2 (en) 2008-08-25 2011-10-11 Vmware, Inc. Managing backups using virtual machines
US8280858B2 (en) 2009-06-29 2012-10-02 Oracle America, Inc. Storage pool scrubbing with concurrent snapshots
US10120767B2 (en) 2009-07-15 2018-11-06 Idera, Inc. System, method, and computer program product for creating a virtual database
US8150808B2 (en) 2009-10-21 2012-04-03 Delphix Corp. Virtual database system
US8161077B2 (en) 2009-10-21 2012-04-17 Delphix Corp. Datacenter workflow automation scenarios using virtual databases
US9106591B2 (en) 2009-12-24 2015-08-11 Delphix Corporation Adaptive resource management using survival minimum resources for low priority consumers
WO2011082132A1 (en) * 2009-12-31 2011-07-07 Commvault Systems, Inc. Systems and methods for analyzing snapshots
US8745434B2 (en) * 2011-05-16 2014-06-03 Microsoft Corporation Platform for continuous mobile-cloud services

Also Published As

Publication number Publication date
CA2885056A1 (en) 2014-04-10
US8788461B2 (en) 2014-07-22
US9639429B2 (en) 2017-05-02
AU2013327062B2 (en) 2017-11-23
EP2904501A4 (en) 2016-09-21
AU2013327062A1 (en) 2015-04-16
KR101780340B1 (ko) 2017-10-10
US20140101108A1 (en) 2014-04-10
EP2904501A2 (en) 2015-08-12
EP2904501B1 (en) 2017-12-06
WO2014055685A3 (en) 2015-07-16
WO2014055685A2 (en) 2014-04-10
US20140250081A1 (en) 2014-09-04
CA2885056C (en) 2018-02-06

Similar Documents

Publication Publication Date Title
KR101780340B1 (ko) 가상 데이터베이스를 제공하기 위한 유효성 검증 데이터베이스 스냅샷의 생성 방법, 시스템 및 컴퓨터 판독가능 저장 매체
JP7379599B2 (ja) クラウドデータストアにわたるファイルシステム階層ミラーリング
CA2885059C (en) Retrieving point-in-time copies of a source database for creating virtual databases
JP6514306B2 (ja) バックアップシステムからのデータベースのストリーミング復元
US10310949B1 (en) Disaster restore of big data application with near zero RTO
US9727273B1 (en) Scalable clusterwide de-duplication
KR101617339B1 (ko) 가상 데이터베이스 시스템
KR101658964B1 (ko) 가상 데이터베이스를 사용하는 데이터센터 작업흐름 자동화 시나리오를 위한 시스템 및 방법
US10152387B1 (en) Instant start of virtual machine from archive copy on backup media
US10572470B2 (en) Enhanced FSCK mechanism for improved consistency in case of erasure coded object storage architecture built using clustered file system
US11003364B2 (en) Write-once read-many compliant data storage cluster
US11704335B2 (en) Data synchronization in a data analysis system
KR20170031004A (ko) 데이터의 사일런트 커럽션을 감지하는 시스템들 및 그것의 동작 방법들
WO2023111910A1 (en) Rolling back database transaction
US11675931B2 (en) Creating vendor-neutral data protection operations for vendors' application resources
US11520668B2 (en) Vendor-neutral models of vendors' application resources
Ravi Kumar et al. Troubleshooting and Conducting Health Checks for High Availability

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right