KR20190069201A - Data base management method - Google Patents

Data base management method Download PDF

Info

Publication number
KR20190069201A
KR20190069201A KR1020170169671A KR20170169671A KR20190069201A KR 20190069201 A KR20190069201 A KR 20190069201A KR 1020170169671 A KR1020170169671 A KR 1020170169671A KR 20170169671 A KR20170169671 A KR 20170169671A KR 20190069201 A KR20190069201 A KR 20190069201A
Authority
KR
South Korea
Prior art keywords
transaction
redo log
page
stored
node
Prior art date
Application number
KR1020170169671A
Other languages
Korean (ko)
Other versions
KR102019565B1 (en
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 KR1020170169671A priority Critical patent/KR102019565B1/en
Publication of KR20190069201A publication Critical patent/KR20190069201A/en
Application granted granted Critical
Publication of KR102019565B1 publication Critical patent/KR102019565B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Provided is a database management method which transmits a redo log and a page corresponding to the same to a standby node. The database management method according to one embodiment of the present invention comprises: a step of, when a transaction occurs, storing a redo log corresponding to the transaction in a redo log buffer of an active node; a step of reading a page corresponding to the transaction among database previously stored in a shared disk to a buffer of the active node; a step of transmitting the redo log stored in the redo log buffer of the active node and the page read in the buffer of the active node to a standby node; and a step of applying the transaction to the received page in the standby node based on the received redo log.

Description

데이터 베이스 관리 방법{DATA BASE MANAGEMENT METHOD}{DATA BASE MANAGEMENT METHOD}

데이터 베이스를 복구하는 데이터 베이스 관리 방법에 관한 것이다.And a database management method for restoring a database.

데이터 베이스 관리 시스템 (Data Base Management System, 이하 DBMS)은 데이터 베이스에 데이터를 저장하고, 저장된 데이터에 접근하거나, 저장된 데이터를 변경할 수 있는 데이터 베이스의 관리 체계를 의미한다.A database management system (DBMS) is a database management system that stores data in a database, accesses stored data, and changes stored data.

이와 같은 DBMS에서는 정해진 방법에 따라 시스템이 동작하지 않는 장애가 발생한 경우, 데이터 베이스를 장애가 발생하기 이전의 상태로 복구하는 것이 매우 중요하다. 따라서, 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질을 뜻하는 고가용성(High Availability, HA)은 DBMS의 성능을 판단하는데 중요한 요소이다.In such a DBMS, it is very important to recover the database to a state before the failure when a failure occurs in which the system does not operate according to a predetermined method. Therefore, High Availability (HA), which means a property that can be continuously operated for a long period of time, is an important factor for judging the performance of a DBMS.

고가용성을 구현하기 위해, DBMS는 데이터 베이스를 복제하여 장애 발생 시를 대비할 수 있다. 구체적으로, DBMS는 데이터 베이스 및 로그를 복제하는 물리적 방법 또는 데이터 베이스의 일부만을 복제하는 논리적 방법을 이용할 수 있다.To achieve high availability, the DBMS can replicate the database to prepare for failures. Specifically, the DBMS can use a physical method of duplicating the database and the log, or a logical method of duplicating only a part of the database.

개시된 발명의 일 측면은 스탠바이 노드(Standby Node)에 리두 로그(Redo Log) 및 이에 대응되는 페이지를 함께 전송하는 데이터 베이스 관리 방법을 제공한다.One aspect of the disclosed invention provides a database management method for transmitting a redo log and a corresponding page to a standby node.

개시된 발명의 일 실시 예에 따른 데이터 베이스 관리 방법은, 트랜잭션(Transaction)이 발생되면, 상기 트랜잭션에 대응되는 리두 로그(Redo Log)를 액티브 노드(Active Node)의 리두 로그 버퍼에 저장하는 단계; 공유 디스크에 미리 저장된 데이터 베이스 중 상기 트랜잭션에 대응되는 페이지를 상기 액티브 노드의 버퍼로 읽어오는 단계; 상기 액티브 노드의 상기 리두 로그 버퍼에 저장된 상기 리두 로그 및 상기 액티브 노드의 상기 버퍼로 읽혀진 상기 페이지를 스탠바이 노드(Standby Node)로 전송하는 단계; 및 상기 수신된 리두 로그에 기초하여 상기 스탠바이 노드에서 상기 트랜잭션을 상기 수신된 페이지에 적용하는 단계; 를 포함할 수 있다.According to another aspect of the present invention, there is provided a database management method comprising: storing a redo log corresponding to a transaction in a redo log buffer of an active node when a transaction occurs; Reading a page corresponding to the transaction among a database stored in advance in a shared disk into a buffer of the active node; Transmitting the redo log stored in the redo log buffer of the active node and the page read by the buffer of the active node to a standby node; And applying the transaction to the received page at the standby node based on the received redo log; . ≪ / RTI >

또한, 상기 액티브 노드의 상기 리두 로그 버퍼에 저장된 상기 리두 로그를 상기 공유 디스크의 리두 로그 파일에 저장하는 단계; 및 상기 액티브 노드가 비정상으로 판단되면, 상기 공유 디스크에 저장된 상기 리두 로그 파일에 대응되는 트랜잭션을 상기 스탠바이 노드의 상기 버퍼에 저장된 페이지에 적용하는 단계; 를 더 포함할 수 있다.Storing the redo log stored in the redo log buffer of the active node in a redo log file of the shared disk; And applying a transaction corresponding to the redo log file stored on the shared disk to a page stored in the buffer of the standby node if the active node is determined to be abnormal; As shown in FIG.

또한, 상기 리두 로그 파일에 대응되는 트랜잭션을 상기 스탠바이 노드의 상기 버퍼에 저장된 페이지에 적용하는 단계는, 상기 리두 로그 파일에 저장된 상기 리두 로그와 상기 스탠바이 노드에 수신된 리두 로그를 비교하여 상기 스탠바이 노드의 상기 버퍼에 저장된 페이지에 적용할 트랜잭션을 결정할 수 있다.The step of applying the transaction corresponding to the redo log file to the page stored in the buffer of the standby node may include comparing the redo log stored in the redo log file with the redo log received by the standby node, The transaction to be applied to the page stored in the buffer.

또한, 상기 리두 로그 파일에 대응되는 트랜잭션을 상기 스탠바이 노드의 상기 버퍼에 저장된 페이지에 적용한 후 새로운 트랜잭션이 발생되면, 상기 새로운 트랜잭션에 대응되는 페이지를 상기 스탠바이 노드의 버퍼로 읽어오는 단계; 및 상기 스탠바이 노드의 상기 버퍼로 읽혀진 상기 페이지에 상기 새로운 트랜잭션을 적용하는 단계; 를 더 포함할 수 있다.Reading a page corresponding to the new transaction into a buffer of the standby node when a new transaction is generated after applying a transaction corresponding to the redo log file to a page stored in the buffer of the standby node; And applying the new transaction to the page read by the buffer of the standby node; As shown in FIG.

또한, 상기 스탠바이 노드에서 상기 트랜잭션을 상기 수신된 페이지에 적용하는 단계는, 상기 수신된 페이지를 상기 스탠바이 노드의 버퍼에 저장하는 단계; 및 상기 액티브 노드의 상기 버퍼에 저장된 상기 페이지와 상기 스탠바이 노드의 상기 버퍼에 저장된 상기 페이지를 일치시키도록, 상기 트랜잭션을 상기 스탠바이 노드의 상기 버퍼에 저장된 상기 페이지에 적용하는 단계; 를 포함할 수 있다.The step of applying the transaction to the received page at the standby node further comprises: storing the received page in a buffer of the standby node; And applying the transaction to the page stored in the buffer of the standby node to match the page stored in the buffer of the active node with the page stored in the buffer of the standby node. . ≪ / RTI >

개시된 발명의 다른 실시 예에 따른 데이터 베이스 관리 방법은, 트랜잭션(Transaction)이 발생되면, 상기 트랜잭션에 대응되는 리두 로그(Redo Log)를 액티브 노드(Active Node)의 리두 로그 버퍼에 저장하는 단계; 상기 액티브 노드에 미리 저장된 데이터 베이스 중 상기 트랜잭션에 대응되는 페이지에 상기 트랜잭션을 적용하는 단계; 스탠바이 노드(Standby Node)에 미리 저장된 데이터 베이스 중 상기 트랜잭션에 대응되는 페이지에 상기 트랜잭션을 적용하는 단계; 및 상기 액티브 노드에서 상기 트랜잭션이 적용된 상기 페이지를 공유 디스크에 미리 저장된 복수의 데이터 베이스 파일 중 적어도 하나에 저장하는 단계; 를 포함할 수 있다.According to another aspect of the present invention, there is provided a database management method comprising: storing a redo log corresponding to a transaction in a redo log buffer of an active node when a transaction occurs; Applying the transaction to a page corresponding to the transaction among a database previously stored in the active node; Applying the transaction to a page corresponding to the transaction among a database stored in a standby node in advance; And storing the page to which the transaction is applied in the active node in at least one of a plurality of database files stored in advance in a shared disk; . ≪ / RTI >

또한, 상기 액티브 노드에서 상기 트랜잭션을 적용하기에 앞서, 상기 액티브 노드의 상기 리두 로그 버퍼에 저장된 상기 리두 로그를 상기 공유 디스크의 리두 로그 파일에 저장하는 단계; 및 상기 액티브 노드가 비정상으로 판단되면, 상기 공유 디스크에 저장된 상기 리두 로그 파일에 대응되는 트랜잭션을 상기 스탠바이 노드의 상기 데이터 베이스에 적용하는 단계; 를 더 포함할 수 있다.Storing the redo log stored in the redo log buffer of the active node in the redo log file of the shared disk before applying the transaction at the active node; And applying a transaction corresponding to the redo log file stored on the shared disk to the database of the standby node if the active node is determined to be abnormal; As shown in FIG.

또한, 상기 리두 로그 파일에 대응되는 트랜잭션을 상기 스탠바이 노드의 상기 데이터 베이스에 적용한 후, 상기 트랜잭션이 적용된 상기 데이터 베이스의 페이지를 상기 공유 디스크에 미리 저장된 상기 복수의 데이터 베이스 파일 중 적어도 하나에 저장하는 단계; 를 더 포함할 수 있다.In addition, after applying a transaction corresponding to the redo log file to the database of the standby node, the page of the database to which the transaction is applied is stored in at least one of the plurality of database files stored in advance in the shared disk step; As shown in FIG.

또한, 상기 리두 로그 파일에 대응되는 트랜잭션을 상기 스탠바이 노드의 상기 데이터 베이스에 적용한 후 새로운 트랜잭션이 발생되면, 상기 스탠바이 노드에 저장된 상기 데이터 베이스 중 상기 새로운 트랜잭션에 대응되는 페이지에 상기 새로운 트랜잭션을 적용하는 단계; 를 더 포함할 수 있다.When a new transaction is generated after applying a transaction corresponding to the redo log file to the database of the standby node, the new transaction is applied to a page corresponding to the new transaction among the databases stored in the standby node step; As shown in FIG.

또한, 상기 스탠바이 노드에 저장된 데이터 베이스 중 상기 트랜잭션에 대응되는 페이지에 상기 트랜잭션을 적용하는 단계는, 상기 액티브 노드에 저장된 데이터 베이스와 상기 스탠바이 노드에 저장된 데이터 베이스를 일치시키도록, 상기 스탠바이 노드에 저장된 데이터 베이스 중 상기 트랜잭션에 대응되는 페이지에 상기 트랜잭션을 적용할 수 있다.The step of applying the transaction to a page corresponding to the transaction among the databases stored in the standby node comprises the steps of storing the database in the active node and the database stored in the standby node, The transaction can be applied to a page corresponding to the transaction in the database.

개시된 발명의 일 실시 예에 따른 데이터 베이스 관리 방법에 따르면, 리두 로그 뿐만 아니라 이에 대응되는 페이지를 스탠바이 노드에 함께 전송함으로써, 공유 디스크의 공간 효율성을 높일 수 있다. 구체적으로, 고가용성을 제공하기 위해 데이터 베이스를 물리적 복제할 필요가 없으므로, 공유 디스크의 사용량을 최소로 할 수 있고, 비용 효율을 높일 수 있다. 나아가, 네트워크 파일 시스템 등을 이용하여 개시된 발명을 구현해 낼 수 있다.According to the database management method of the present invention, space efficiency of the shared disk can be improved by transmitting not only the redo log but also the corresponding page to the standby node. In particular, since there is no need to physically duplicate the database to provide high availability, the amount of shared disk usage can be minimized and cost efficiency can be increased. Further, the disclosed invention can be implemented using a network file system or the like.

도 1은 개시된 발명의 일 실시 예에 따른 데이터 베이스 관리 시스템의 개략적인 제어 블록도이다.
도 2는 개시된 발명의 일 실시 예에 따른 데이터 베이스 관리 시스템의 구체적인 제어 블록도이다.
도 3은 개시된 발명의 일 실시 예에 따른 데이터 베이스 관리 시스템이 정상 상태일 때의 동작을 설명하기 위한 도면이다.
도 4는 개시된 발명의 일 실시 예에 따른 데이터 베이스 관리 시스템에 장애 발생 시의 동작을 설명하기 위한 도면이다.
도 5는 다른 실시 예에 따른 데이터 베이스 관리 시스템이 정상 상태일 때의 동작을 설명하기 위한 도면이다.
도 6은 다른 실시 예에 따른 데이터 베이스 관리 시스템에 장애 발생 시의 동작을 설명하기 위한 도면이다.
도 7은 개시된 발명의 일 실시 예에 따른 데이터 베이스 관리 방법의 흐름도이다.
도 8은 개시된 발명의 다른 실시 예에 따른 데이터 베이스 관리 방법의 흐름도이다.
1 is a schematic control block diagram of a database management system according to an embodiment of the disclosed invention.
2 is a specific control block diagram of a database management system according to an embodiment of the present invention.
3 is a view for explaining operations when the database management system according to an embodiment of the disclosed invention is in a normal state.
FIG. 4 is a diagram for explaining operations when a failure occurs in a database management system according to an embodiment of the present invention. Referring to FIG.
5 is a diagram for explaining operations when the database management system according to another embodiment is in a normal state.
FIG. 6 is a diagram for explaining operations when a failure occurs in the database management system according to another embodiment.
7 is a flowchart of a database management method according to an embodiment of the disclosed invention.
8 is a flowchart of a database management method according to another embodiment of the disclosed invention.

본 명세서에 기재된 실시 예와 도면에 도시된 구성은 개시된 발명의 바람직한 일 예에 불과할 뿐이며, 본 출원의 출원시점에 있어서 본 명세서의 실시 예와 도면을 대체할 수 있는 다양한 변형 예들이 있을 수 있다.It is to be understood that both the foregoing general description and the following detailed description of the present invention are exemplary and explanatory only and are not restrictive of the invention, as claimed, and it is to be understood that the invention is not limited to the disclosed embodiments.

본 명세서에서 사용한 용어는 실시 예를 설명하기 위해 사용된 것으로, 개시된 발명을 제한 및/또는 한정하려는 의도가 아니다. The terminology used herein is for the purpose of describing the embodiments only and is not intended to limit and / or to limit the disclosed invention.

예를 들어, 본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다.For example, the phrase "a" or "an" in this specification may include a plurality of terms, unless the context clearly dictates otherwise.

또한, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들의 조합이 존재함을 표현하고자 하는 것이며, 하나 또는 그 이상의 다른 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들의 조합의 추가적인 존재 또는 부가 가능성을 배제하지 않는다.It is also to be understood that the terms " comprises "or" having "are intended to indicate that there are features, numbers, steps, operations, elements, But do not preclude the presence or addition of a number, a step, an operation, an element, a component, or a combination thereof.

또한, "제1", "제2" 등과 같이 서수를 포함하는 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위하여 사용되며, 상기 하나의 구성요소들을 한정하지 않는다.Also, terms including ordinal numbers such as " first ", "second ", and the like are used to distinguish one element from another, and do not limit the one element.

또한, "~부", "~기", "~블록", "~부재", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미할 수 있다. 예를 들어, 상기 용어들은 FPGA (field-programmable gate array)/ ASIC (application specific integrated circuit) 등 적어도 하나의 하드웨어, 메모리에 저장된 적어도 하나의 소프트웨어 또는 프로세서에 의하여 처리되는 적어도 하나의 프로세스를 의미할 수 있다.In addition, terms such as "to part "," to ", "to block "," to absent ", "module ", and the like may denote a unit for processing at least one function or operation. For example, the terms may refer to at least one hardware, such as a field-programmable gate array (FPGA) / application specific integrated circuit (ASIC), at least one software stored in memory, have.

이하에서는 첨부한 도면을 참조하여 개시된 발명의 일 실시 예를 상세하게 설명한다. 첨부된 도면에서 제시된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낼 수 있다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings. Like reference numbers or designations in the accompanying drawings may denote parts or components performing substantially the same function.

도 1은 개시된 발명의 일 실시 예에 따른 데이터 베이스 관리 시스템의 개략적인 제어 블록도이고, 도 2는 개시된 발명의 일 실시 예에 따른 데이터 베이스 관리 시스템의 구체적인 제어 블록도이고, 도 3은 개시된 발명의 일 실시 예에 따른 데이터 베이스 관리 시스템이 정상 상태일 때의 동작을 설명하기 위한 도면이고, 도 4는 개시된 발명의 일 실시 예에 따른 데이터 베이스 관리 시스템에 장애 발생 시의 동작을 설명하기 위한 도면이다.FIG. 1 is a schematic control block diagram of a database management system according to an embodiment of the disclosed invention. FIG. 2 is a specific control block diagram of a database management system according to an embodiment of the disclosed invention. FIG. 4 is a view for explaining an operation when a failure occurs in a database management system according to an embodiment of the present invention. FIG. to be.

도 1을 참조하면, 개시된 발명의 일 실시 예에 따른 데이터 베이스 관리 시스템은, 클라이언트와 통신하는 액티브 노드(100); 액티브 노드(100)와 통신하는 스탠바이 노드(200); 및 액티브 노드(100) 및 스탠바이 노드(200)가 공유하는 데이터 베이스가 저장되는 공유 디스크(D); 를 포함할 수 있다.Referring to FIG. 1, a database management system according to an embodiment of the present invention includes: an active node 100 communicating with a client; A standby node (200) in communication with the active node (100); And a shared disk (D) storing a database shared by the active node (100) and the standby node (200); . ≪ / RTI >

공유 디스크(D)는 액티브 노드(100)와 스탠바이 노드(200) 모두에 연결되어, 미리 저장된 데이터 베이스를 양자에 제공할 수 있다. 데이터 베이스 관리 시스템의 고가용성을 위해, 공유 디스크(D)에 액티브 노드(100)에 대한 데이터 베이스와 스탠바이 노드(200)에 대한 데이터 베이스가 모두 저장될 수 있다. The shared disk D may be connected to both the active node 100 and the standby node 200 to provide a pre-stored database to both. For high availability of the database management system, both the database for the active node 100 and the database for the standby node 200 may be stored on the shared disk D.

이를 통해, 액티브 노드(100)가 정상 상태일 때, 스탠바이 노드(200)는 액티브 노드(100)로부터 리두 로그를 수신하여, 이를 스탠바이 노드(200)에 대한 데이터 베이스에 지속적으로 반영할 수 있다. 그 결과, 액티브 노드(100)가 비정상으로 판단되면, 스탠바이 노드(200)는 공유 디스크(D)에 저장된 스탠바이 노드(200)에 대한 데이터 베이스를 통해 데이터 베이스 관리 서비스를 안정적으로 제공할 수 있다. Accordingly, when the active node 100 is in a normal state, the standby node 200 can receive the redo log from the active node 100 and continuously reflect the redo log in the database for the standby node 200. As a result, if the active node 100 is determined to be abnormal, the standby node 200 can stably provide the database management service through the database for the standby node 200 stored in the shared disk D.

그러나, 상술한 서비스를 제공하기 위해, 데이터 베이스 관리 시스템은 동일한 데이터 베이스를 복제하여 저장하여야 하므로, 공유 디스크(D)의 공간 효율성이 낮아질 수 있다. However, in order to provide the above-described service, the database management system must replicate and store the same database, so that the space efficiency of the shared disk D may be lowered.

이를 해결하기 위해, 개시된 발명은 공유 디스크(D)에 복제된 데이터 베이스를 저장할 필요가 없는 데이터 베이스 관리 방법을 제공한다.In order to solve this problem, the disclosed invention provides a database management method that does not need to store a duplicated database on the shared disk D.

다시 도 1 을 참조하면, 액티브 노드(100)(Active Node)는 클라이언트와 통신을 수행하여, 클라이언트의 명령을 처리하는 서버를 의미할 수 있다. 정상 상태의 액티브 노드(100)는 데이터 베이스 관리 서비스를 수행하는 메인 서버로서, 클라이언트로부터 수신한 명령에 따라 데이터 베이스에 대한 동작을 수행할 수 있다.Referring again to FIG. 1, the active node 100 may mean a server that performs communication with a client and processes a command of the client. The active node 100 in a normal state is a main server that performs a database management service, and can perform an operation on a database according to a command received from a client.

구체적으로, 개시된 발명의 일 실시 예에 따른 액티브 노드(100)는, 통신 인터페이스(110); 메모리(150) 로깅부(120); 복제부(130); 페이지 요청부(140); 메모리(150); 트랜잭션 적용부(160); 디스크 저장부(170); 페이지 리딩부(180); 및 공유 디스크 인터페이스(190); 를 포함할 수 있다.Specifically, the active node 100 according to an embodiment of the disclosed invention comprises: a communication interface 110; A memory 150 logging unit 120; A replication unit 130; A page request unit 140; A memory 150; A transaction applying unit 160; A disk storage unit 170; A page leading unit 180; And a shared disk interface 190; . ≪ / RTI >

트랜잭션(Transaction)이 발생되면, 메모리(150) 로깅부(120)는 메모리(150) 중 리두 로그 버퍼(Redo Log Buffer)에 트랜잭션에 대응되는 리두 로그(Redo Log)를 로깅(Logging)할 수 있다. 여기서, 트랜잭션이란 하나의 논리적 작업 단위를 구성하는 일련의 연산들의 집합을 뜻하고, 리두 로그란 시스템 오류로 인해 연산의 결과가 반영되지 않았을 경우 이를 다시 반영 시키기 위해, 트랜잭션의 각 변경 연산에 대하여 변경 후의 값을 포함하는 로그를 의미하고, 로깅이란 로그를 메모리(150)에 기록하는 것을 의미할 수 있다.When a transaction occurs, the memory 150 logging unit 120 may log a redo log corresponding to the transaction to the redo log buffer of the memory 150 . Here, a transaction refers to a set of operations constituting one logical unit of work, and a redo log is a table in which a change is made to each change operation of a transaction in order to reflect the operation result when the operation result is not reflected due to a system error Quot ;, and " logging " may mean recording the log into the memory 150. [

디스크 저장부(170)는 리두 로그 버퍼에 저장된 리두 로그를 공유 디스크 인터페이스(190)를 통해 주기적으로 공유 디스크(D)에 저장할 수 있다. 이 때, 디스크 저장부(170)는 공유 디스크(D)의 리두 로그 파일에 리두 로그를 저장할 수 있다.The disk storage unit 170 may periodically store the redo log stored in the redo log buffer in the shared disk D through the shared disk interface 190. [ At this time, the disk storage unit 170 may store the redo log in the redo log file of the shared disk D.

특히, 디스크 저장부(170)는 트랜잭션이 부분 완료(Partially Committed) 상태에서 완료(Committed) 상태로 들어가기 전에 리두 로그 버퍼에 저장된 모든 리두 로그를 공유 디스크(D)의 리두 로그 파일에 저장할 수 있다.In particular, the disk storage unit 170 may store all the redo logs stored in the redo log buffer in the redo log file of the shared disk D before the transaction enters the committed state from Partially Committed state.

페이지 요청부(140)는 트랜잭션에 대응되는 페이지를 공유 디스크 인터페이스(190)를 통해 공유 디스크(D)에 요청하고, 페이지 리딩부(180)는 트랜잭션에 대응되는 페이지를 메모리(150) 중 버퍼로 읽어올 수 있다. 트랜잭션 적용부(160)는 버퍼로 읽혀진 페이지에 트랜잭션을 적용할 수 있고, 상술한 디스크 저장부(170)는 주기적으로 적용된 버퍼 상의 페이지를 공유 디스크(D)의 데이터 베이스에 저장할 수 있다.The page request unit 140 requests a page corresponding to the transaction to the shared disk D through the shared disk interface 190. The page leading unit 180 reads the page corresponding to the transaction from the memory 150 You can read it. The transaction applying unit 160 may apply a transaction to a page read by the buffer and the disk storage unit 170 may store a page on the buffer periodically applied to the database of the shared disk D.

복제부(130)는 메모리(150) 로깅부(120)에 의해 리두 로그 버퍼에 저장된 리두 로그와 버퍼로 읽혀진 페이지를 스탠바이 노드(200)로 복제할 수 있다. 구체적으로, 복제부(130)는 리두 로그 및 페이지를 복제한 후, 통신 인터페이스(110)를 통해 스탠바이 노드(200)로 전송할 수 있다. 이 때, 복제부(130)는 트랜잭션이 적용되기 전의 페이지를 복제할 수 있다.The copying unit 130 may copy the redo log stored in the redo log buffer and the page read by the buffer to the standby node 200 by the memory 150 logging unit 120. [ Specifically, the replication unit 130 may copy the redo log and the page, and then transmit the copied redo log and the page to the standby node 200 through the communication interface 110. At this time, the copying unit 130 may copy the page before the transaction is applied.

스탠바이 노드(200)는 액티브 노드(100)로부터 리두 로그 및 이에 대응되는 페이지를 수신하여, 데이터 베이스 관리 시스템에 장애 발생 시를 대비할 수 있다. 이를 위해, 스탠바이 노드(200)는 통신 인터페이스(210); 메모리 로깅부(220); 페이지 수신부(230); 페이지 요청부(240); 메모리(250); 트랜잭션 적용부(260); 디스크 저장부(270); 페이지 리딩부(280); 로그 비교부(285); 및 공유 디스크 인터페이스(290); 를 포함할 수 있다.The standby node 200 can receive the redo log and the corresponding page from the active node 100 to prepare for the occurrence of a failure in the database management system. To this end, the standby node 200 comprises a communication interface 210; A memory logging unit 220; A page receiving unit 230; A page request unit 240; A memory 250; A transaction applying unit 260; A disk storage unit 270; A page leading unit 280; A log comparing unit 285; And a shared disk interface 290; . ≪ / RTI >

액티브 노드(100)로부터 통신 인터페이스(210)를 통해 리두 로그가 수신되면, 메모리 로깅부(220)는 메모리 중 리두 로그 버퍼(252)에 수신된 리두 로그를 로깅할 수 있다. 또한, 액티브 노드(100)로부터 통신 인터페이스(210)를 통해 수신된 리두 로그에 대응되는 페이지가 수신되면, 페이지 수신부(230)는 메모리(250) 중 버퍼(251)에 수신된 페이지를 저장할 수 있다. When the redo log is received from the active node 100 via the communication interface 210, the memory logging unit 220 can log the received redo log in the redo log buffer 252 in memory. In addition, when a page corresponding to the redo log received from the active node 100 through the communication interface 210 is received, the page receiving unit 230 may store the received page in the buffer 251 of the memory 250 .

메모리(250) 상에 수신된 리두 로그 및 페이지가 저장되면, 트랜잭션 적용부(260)는 수신된 리두 로그에 대응되는 트랜잭션을 수신된 페이지에 적용할 수 있다.When the redo log and the page received on the memory 250 are stored, the transaction applying unit 260 can apply the transaction corresponding to the received redo log to the received page.

도 3을 참조하면, 공유 디스크(D)에는 하나의 데이터 베이스 DB 및 리두 로그 파일 DL이 저장될 수 있다. 액티브 노드(100)에 페이지 P1에 대한 트랜잭션이 발생되면, 액티브 노드(100)의 리두 로그 버퍼(152)에는 트랜잭션 정보가 기록되고, 액티브 노드(100)의 메모리 중 버퍼(151)는 공유 디스크(D)의 데이터 베이스 DB 중 페이지 P1을 읽어올 수 있다. Referring to FIG. 3, one database DB and a redo log file DL may be stored in the shared disk D. Transaction information is written in the redo log buffer 152 of the active node 100 and the buffer 151 of the active node 100 is stored in the shared disk D of the database DB of the database DB.

페이지 P1이 액티브 노드(100)로 읽혀진 후, 액티브 노드(100)는 페이지 P1을 스탠바이 노드(200)로 전송할 수 있으며, 스탠바이 노드(200)는 메모리 중 버퍼(251) 상에 수신된 페이지 P1을 저장할 수 있다. 또한, 액티브 노드(100)는 저장된 리두 로그를 스탠바이 노드(200)로 전송할 수 있고, 스탠바이 노드(200)는 저장된 페이지 P1에 수신된 리두 로그에 대응되는 트랜잭션을 적용할 수 있다. After the page P1 is read into the active node 100, the active node 100 may transmit the page P1 to the standby node 200 and the standby node 200 may transmit the page P1 received on the buffered buffer 251 Can be stored. The active node 100 may also send a stored redo log to the standby node 200 and the standby node 200 may apply the transaction corresponding to the redo log received on the stored page P1.

그 결과, 스탠바이 노드(200)의 리두 로그 버퍼(252)는 액티브 노드(100)의 리두 로브 버퍼(152)와 동일하고, 스탠바이 노드(200)의 버퍼(251)는 액티브 노드(100)의 버퍼(151)와 동일한 상태를 유지할 수 있다.As a result, the redo log buffer 252 of the standby node 200 is the same as the redo log buffer 152 of the active node 100, and the buffer 251 of the standby node 200 is the same as the redo log buffer 252 of the active node 100 It is possible to maintain the same state as that of the first embodiment.

만약, 데이터 베이스 관리 시스템에 장애가 발생한 경우, 특히 액티브 노드(100)가 비정상 상태인 경우, 스탠바이 노드(200)는 액티브 노드(100)를 대신하여 데이터 베이스에 트랜잭션을 적용할 수 있다. 구체적으로, 액티브 노드(100)가 비정상으로 판단되면, 스탠바이 노드(200)는 공유 디스크(D)에 저장된 리두 로그 파일에 대응되는 트랜잭션을 버퍼에 저장된 페이지에 적용할 수 있다.If a failure occurs in the database management system, especially when the active node 100 is in an abnormal state, the standby node 200 can apply the transaction to the database on behalf of the active node 100. [ Specifically, if the active node 100 is determined to be abnormal, the standby node 200 may apply the transaction corresponding to the redo log file stored in the shared disk D to the page stored in the buffer.

이를 위해, 로그 비교부(285)는 공유 디스크(D)의 리두 로그 파일에 저장된 리두 로그와 리두 로그 버퍼에 저장된 리두 로그를 비교할 수 있다. 이를 통해 스탠바이 노드(200) 상에 아직 반영되지 않은 트랜잭션이 존재하는 경우, 트랜잭션 적용부는 메모리 상의 해당 페이지에 트랜잭션을 적용할 수 있다. 또한, 디스크 저장부는 트랜잭션이 적용된 페이지를 공유 디스크(D) 인터페이스를 통해 공유 디스크(D) 상에 저장할 수 있다.To this end, the log comparator 285 may compare the redo log stored in the redo log file of the shared disk D with the redo log stored in the redo log buffer. If there is a transaction not yet reflected on the standby node 200, the transaction application unit can apply the transaction to the corresponding page in the memory. In addition, the disk storage unit may store the transaction-applied page on the shared disk D via the shared disk (D) interface.

도 4를 참조하면, 액티브 노드(100)가 비정상인 경우, 스탠바이 노드(200)는 공유 디스크(D)의 리두 로그 파일 DL에 저장된 리두 로그를 리두 로그 버퍼(252)에 저장된 리두 로그와 비교할 수 있다. 비교 결과 페이지 P2에 적용되지 않은 트랜잭션이 존재하는 것으로 판단되면, 스탠바이 노드(200)는 공유 디스크(D)의 데이터 베이스 DB 중 페이지 P2를 버퍼(251)에 읽어온 후, 버퍼(251) 상의 페이지 P2에 해당 트랜잭션을 적용할 수 있다. 4, when the active node 100 is abnormal, the standby node 200 can compare the redo log stored in the redo log file DL of the shared disk D with the redo log stored in the redo log buffer 252 have. The standby node 200 reads the page P2 of the database DB of the shared disk D into the buffer 251 and then reads the page P2 on the buffer 251 You can apply the transaction to P2.

리두 로그 파일의 리두 로그와 스탠바이 노드(200)의 리두 로그의 비교 결과에 따라 트랜잭션을 적용한 후 새로운 트랜잭션이 발생되면, 페이지 요청부(240)는 새로운 트랜잭션에 대응되는 페이지를 공유 디스크(D) 인터페이스를 통해 공유 디스크(D)에 요청하고, 페이지 리딩부(280)는 공유 디스크(D) 인터페이스를 통해 공유 디스크(D)로부터 해당 페이지를 읽어와 메모리(250)의 버퍼(251)에 저장할 수 있다. When a new transaction is generated after applying a transaction according to a result of comparison between the redo log of the redo log file and the redo log of the standby node 200, the page request unit 240 requests the page corresponding to the new transaction to the shared disk And the page leading unit 280 reads the corresponding page from the shared disk D via the shared disk D interface and stores the read page in the buffer 251 of the memory 250 .

트랜잭션 적용부(260)는 버퍼(251)로 읽혀진 페이지에 새로운 트랜잭션을 적용하고, 디스크 저장부(270)는 새로운 트랜잭션이 적용된 페이지를 공유 디스크(D) 인터페이스를 통해 공유 디스크(D)에 저장할 수 있다.The transaction applying unit 260 applies a new transaction to the page read by the buffer 251 and the disk storing unit 270 stores the page to which the new transaction is applied on the shared disk D through the shared disk D interface have.

이를 통해, 개시된 발명의 일 실시 예에 따른 데이터 베이스 관리 시스템은 고가용성을 제공하면서도, 공유 디스크(D) 공간 효율성을 높일 수 있다.Thus, the database management system according to an embodiment of the disclosed invention can increase the space efficiency of the shared disk (D) while providing high availability.

지금까지는 디스크 기반 데이터 베이스 관리 시스템에 대하여 설명하였다. 이하에서는 데이터 베이스를 메모리 상에 유지하는 메모리 기반 데이터 베이스 관리 시스템에 대하여 설명한다.The disk-based database management system has been described so far. Hereinafter, a memory-based database management system for holding a database in a memory will be described.

메모리 기반 데이터 베이스 관리 시스템은 데이터 베이스가 액티브 노드(100) 및 스탠바이 노드(200) 각각의 메모리 상에 존재할 수 있다. 이 경우, 공유 디스크(D)에는 복구를 위한 데이터 베이스가 저장될 수 있다. 특히, 트랜잭션과 무관하게 주기적으로 변경 페이지를 공유 디스크(D)에 저장하는 메모리 기반 데이터 베이스 관리 시스템은 트랜잭션과 주기적으로 변경 페이지를 공유 디스크(D)에 저장하는 체크 포인트가 동시에 수행될 수 있다. 체크 포인트 수행 중에는 데이터 베이스의 일관성이 유지되기 어렵기 때문에, 체크 포인트 수행 중 시스템 장애가 발생하면 디스크 상의 데이터 베이스를 복구에 이용할 수 없다.A memory-based database management system may have a database on the memory of each of the active node 100 and the standby node 200. In this case, a database for recovery may be stored in the shared disk D. In particular, a memory-based database management system that periodically stores change pages on the shared disk D irrespective of transactions can be performed concurrently with transactions and checkpoints that store the changed pages on the shared disk D periodically. Because database consistency is not maintained during checkpointing, if a system failure occurs during checkpointing, the database on disk can not be used for recovery.

이를 해결하기 위해, 메모리 기반 데이터 베이스는 공유 디스크(D)에 복수, 예를 들어 두 개, 의 데이터 베이스를 구축하고, 교대로 체크 포인트를 수행하는 Ping-Pong Checkpoint(Dali, "A High Performance Main Memory Storage Manager", Proceedings of the 20th VLDB Conference Santiago, Chile, 1994)를 채용할 수 있다. 이 경우, 액티브 노드(100)와 스탠바이 노드(200) 각각이 공유 디스크(D) 상에 데이터 베이스를 구축하는 경우, 동일 데이터 베이스가 공유 디스크(D)에 4개 저장되어, 공간 효율성이 낮아질 수 있다.In order to solve this problem, the memory-based database includes a plurality of, for example, two, databases in the shared disk D, and a ping-pong checkpoint (Dali, the Memory Storage Manager ", Proceedings of the 20 th VLDB Conference Santiago, Chile, 1994) can be adopted. In this case, when each of the active node 100 and the standby node 200 constructs a database on the shared disk D, four databases of the same database are stored in the shared disk D, have.

이를 해결하기 위해, 다른 실시 예에 따른 데이터 베이스 관리 시스템은 정상 상태에서는 스탠바이 노드(200)에서 Ping-Pong Checkpoint를 수행하지 않을 수 있다. 이하에서는 도 5 및 6을 참조하여, 다른 실시 예에 따른 데이터 베이스 관리 시스템의 동작을 설명한다.To solve this problem, the database management system according to another embodiment may not perform a ping-pong checkpoint in the standby node 200 in a normal state. Hereinafter, operations of the database management system according to another embodiment will be described with reference to FIGS.

도 5는 다른 실시 예에 따른 데이터 베이스 관리 시스템이 정상 상태일 때의 동작을 설명하기 위한 도면이고, 도 6은 다른 실시 예에 따른 데이터 베이스 관리 시스템에 장애 발생 시의 동작을 설명하기 위한 도면이다.FIG. 5 is a view for explaining an operation when the database management system according to another embodiment is in a normal state, and FIG. 6 is a view for explaining an operation when a failure occurs in the database management system according to another embodiment .

도 5를 참조하면, Ping-Pong Checkpoint에 따라 공유 디스크(D)에 두 개의 데이터 베이스 DB A1, 및 DB A2와 로그 파일이 저장될 수 있다.Referring to FIG. 5, two database DBs A1 and DB2 and a log file may be stored in the shared disk D according to a ping-pong checkpoint.

트랜잭션이 발생되면, 액티브 노드(100)는 트랜잭션에 대응되는 리두 로그를 리두 로그 버퍼(152)에 저장할 수 있다. 또한, 액티브 노드(100)는 리두 로그 버퍼(152)에 저장된 리두 로그를 주기적으로 공유 디스크(D)에 저장할 수 있다. 이 때, 디스크 저장부는 공유 디스크(D)의 리두 로그 파일에 리두 로그를 저장할 수 있다.When a transaction occurs, the active node 100 may store the redo log corresponding to the transaction in the redo log buffer 152. In addition, the active node 100 may periodically store the redo log stored in the redo log buffer 152 in the shared disk D. [ At this time, the disk storage unit may store the redo log in the redo log file of the shared disk D.

나아가, 액티브 노드(100)는 메모리(150) 상에 미리 저장된 데이터 베이스 중 발생된 트랜잭션에 대응되는 페이지 P1에 트랜잭션을 적용할 수 있다. 페이지 P1에 트랜잭션이 적용된 후, 액티브 노드(100)는 Ping-Pong Checkpoint에 따라 데이터 베이스 DB A1, 및 DB A2 중 적어도 하나에 페이지 P1을 저장할 수 있다.Furthermore, the active node 100 may apply the transaction to the page P1 corresponding to the generated transaction among the databases stored in advance in the memory 150. [ After the transaction is applied to the page P1, the active node 100 may store the page P1 in at least one of the database DB A1 and DB A2 according to the Ping-Pong checkpoint.

또한, 스탠바이 노드(200)는 액티브 노드(100)의 리두 로그 버퍼(152)에 저장된 리두 로그에 기초하여 스탠바이 노드(200)의 메모리(250) 상에 미리 저장된 데이터 베이스 중 페이지 P1에 트랜잭션을 적용할 수 있다. 이를 통해, 스탠바이 노드(200)의 메모리(250) 상의 데이터 베이스는 액티브 노드(100)의 메모리(150) 상의 데이터 베이스와 동일한 상태를 유지할 수 있다.The standby node 200 also applies a transaction to the page P1 of the database stored in the memory 250 of the standby node 200 based on the redo log stored in the redo log buffer 152 of the active node 100 can do. In this way, the database on the memory 250 of the standby node 200 can remain in the same state as the database on the memory 150 of the active node 100.

다만, 스탠바이 노드(200)는 Ping-Pong Checkpoint를 수행하지는 않는다.However, the standby node 200 does not perform a ping-pong checkpoint.

도 6을 참조하면, 액티브 노드(100)가 비정상인 경우, 스탠바이 노드(200)는 공유 디스크(D)의 리두 로그 파일 DL에 대응되는 트랜잭션을 메모리(250) 상의 데이터 베이스에 적용할 수 있다. 구체적으로, 스탠바이 노드(200)는 공유 디스크(D)의 리두 로그 파일 DL에 저장된 로그 파일을 참조하여 메모리(250) 상의 데이터 베이스에 적용되지 않은 트랜잭션을 확인하고, 확인된 트랜잭션을 이에 대응되는 페이지에 적용할 수 있다. Referring to FIG. 6, if the active node 100 is abnormal, the standby node 200 may apply the transaction corresponding to the redo log file DL of the shared disk D to the database on the memory 250. Specifically, the standby node 200 refers to the log file stored in the redo log file DL of the shared disk D to check a transaction that is not applied to the database on the memory 250, .

트랜잭션 적용 후, 스탠바이 노드(200)는 Ping-Pong Checkpoint에 따라 데이터 베이스 DB A1, 및 DB A2 중 적어도 하나에 변경된 페이지를 저장할 수 있다.After the transaction is applied, the standby node 200 may store the changed page in at least one of the database DB A1 and the DB A2 according to the ping-pong checkpoint.

또한, 트랜잭션 적용 후 새로운 트랜잭션이 발생되면, 스탠바이 노드(200)는 새로운 트랜잭션에 대응되는 페이지에 새로운 트랜잭션을 적용하고, 새로운 트랜잭션이 적용된 페이지를 Ping-Pong Checkpoint에 따라 공유 디스크(D)에 저장할 수 있다.When a new transaction is generated after the transaction is applied, the standby node 200 applies a new transaction to the page corresponding to the new transaction and stores the page to which the new transaction is applied in the shared disk D according to the ping-pong checkpoint have.

이를 통해, 개시된 발명의 일 실시 예에 따른 데이터 베이스 관리 시스템은 고가용성을 제공하면서도, 공유 디스크(D) 공간 효율성을 높일 수 있다.Thus, the database management system according to an embodiment of the disclosed invention can increase the space efficiency of the shared disk (D) while providing high availability.

도 7은 개시된 발명의 일 실시 예에 따른 데이터 베이스 관리 방법의 흐름도이다. 구체적으로, 도 7은 정상 상태에서의 데이터 베이스 관리 방법의 흐름도이다.7 is a flowchart of a database management method according to an embodiment of the disclosed invention. Specifically, Fig. 7 is a flowchart of a database management method in a steady state.

먼저, 데이터 베이스 관리 시스템은 리두 로그를 액티브 노드(100)의 리두 로그 버퍼에 저장할 수 있다.(800) 그 다음, 데이터 베이스 관리 시스템은 공유 디스크(D)에 저장된 데이터 베이스 중 트랜잭션에 대응되는 페이지를 액티브 노드(100)로 읽어올 수 있다.(810) 페이지를 읽어온 후, 데이터 베이스 관리 시스템은 액티브 노드(100)로부터 리두 로그 및 페이지를 스탠바이 노드(200)로 전송할 수 있다.(820) 마지막으로, 데이터 베이스 관리 시스템은 스탠바이 노드(200)에 의해 수신된 리두 로그에 따라 수신된 페이지에 트랜잭션을 적용할 수 있다.(830) First, the database management system can store the redo log in the redo log buffer of the active node 100. (800) Then, the database management system reads the page corresponding to the transaction among the databases stored in the shared disk (D) (810) After reading the page, the database management system may transmit the redo log and the page from the active node 100 to the standby node 200. (820) Finally, the database management system may apply the transaction to the received page according to the redo log received by the standby node 200. 830,

이를 통해, 데이터 베이스 관리 시스템은 스탠바이 노드(200)와 액티브 노드(100)에 저장된 리두 로그 및 페이지를 일치시킬 수 있다.In this way, the database management system can match the redo log and page stored in the active node 100 with the standby node 200.

도 8은 개시된 발명의 다른 실시 예에 따른 데이터 베이스 관리 방법의 흐름도이다. 구체적으로, 도 8은 비정상 상태에서의 데이터 베이스 관리 방법의 흐름도이다.8 is a flowchart of a database management method according to another embodiment of the disclosed invention. Specifically, FIG. 8 is a flowchart of a database management method in an abnormal state.

먼저, 데이터 베이스 관리 시스템은 액티브 노드(100)가 정상 상태인지 확인할 수 있다.(900) 정상 상태라면, 반복하여 데이터 베이스 관리 시스템은 반복하여 이를 확인할 수 있다. 반면, 액티브 노드(100)가 비정상 상태라면, 데이터 베이스 관리 시스템은 공유 디스크(D)에 저장된 리두 로그와 스탠바이 노드(200)에 수신된 리두 로그를 비교하여 스탠바이 노드(200)에 적용할 트랜잭션을 결정할 수 있다.(910) 마지막으로, 데이터 베이스 관리 시스템은 결정된 트랜잭션을 스탠바이 노드(200)의 버퍼에 저장된 페이지에 적용할 수 있다.(920)First, the database management system can check if the active node 100 is in a normal state. (900) If the node is in a normal state, the database management system can repeatedly check the state. On the other hand, if the active node 100 is in an abnormal state, the database management system compares the redo log stored in the shared disk D with the redo log received in the standby node 200 to determine a transaction to be applied to the standby node 200 (910) Finally, the database management system may apply the determined transaction to the page stored in the buffer of the standby node 200 (920)

이를 통해, 개시된 발명의 일 실시 예에 따른 데이터 베이스 관리 시스템은 고가용성을 제공하면서도, 공유 디스크(D) 공간 효율성을 높일 수 있다.Thus, the database management system according to an embodiment of the disclosed invention can increase the space efficiency of the shared disk (D) while providing high availability.

100: 액티브 노드
200: 스탠바이 노드
D: 공유 디스크
C: 클라이언트
100: active node
200: standby node
D: Shared disk
C: Client

Claims (10)

트랜잭션(Transaction)이 발생되면, 상기 트랜잭션에 대응되는 리두 로그(Redo Log)를 액티브 노드(Active Node)의 리두 로그 버퍼에 저장하는 단계;
공유 디스크에 미리 저장된 데이터 베이스 중 상기 트랜잭션에 대응되는 페이지를 상기 액티브 노드의 버퍼로 읽어오는 단계;
상기 액티브 노드의 상기 리두 로그 버퍼에 저장된 상기 리두 로그 및 상기 액티브 노드의 상기 버퍼로 읽혀진 상기 페이지를 스탠바이 노드(Standby Node)로 전송하는 단계; 및
상기 수신된 리두 로그에 기초하여 상기 스탠바이 노드에서 상기 트랜잭션을 상기 수신된 페이지에 적용하는 단계; 를 포함하는 데이터 베이스 관리 방법.
Storing a redo log corresponding to the transaction in a redo log buffer of an active node when a transaction occurs;
Reading a page corresponding to the transaction among a database stored in advance in a shared disk into a buffer of the active node;
Transmitting the redo log stored in the redo log buffer of the active node and the page read by the buffer of the active node to a standby node; And
Applying the transaction to the received page at the standby node based on the received redo log; The database management method comprising:
제 1 항에 있어서,
상기 액티브 노드의 상기 리두 로그 버퍼에 저장된 상기 리두 로그를 상기 공유 디스크의 리두 로그 파일에 저장하는 단계; 및
상기 액티브 노드가 비정상으로 판단되면, 상기 공유 디스크에 저장된 상기 리두 로그 파일에 대응되는 트랜잭션을 상기 스탠바이 노드의 상기 버퍼에 저장된 페이지에 적용하는 단계; 를 더 포함하는 데이터 베이스 관리 방법.
The method according to claim 1,
Storing the redo log stored in the redo log buffer of the active node in a redo log file of the shared disk; And
Applying a transaction corresponding to the redo log file stored on the shared disk to a page stored in the buffer of the standby node if the active node is determined to be abnormal; Further comprising the steps of:
제 2 항에 있어서,
상기 리두 로그 파일에 대응되는 트랜잭션을 상기 스탠바이 노드의 상기 버퍼에 저장된 페이지에 적용하는 단계는,
상기 리두 로그 파일에 저장된 상기 리두 로그와 상기 스탠바이 노드에 수신된 리두 로그를 비교하여 상기 스탠바이 노드의 상기 버퍼에 저장된 페이지에 적용할 트랜잭션을 결정하는 데이터 베이스 관리 방법.
3. The method of claim 2,
Wherein applying the transaction corresponding to the redo log file to a page stored in the buffer of the standby node comprises:
And comparing the redo log stored in the redo log file with the redo log received in the standby node to determine a transaction to be applied to the page stored in the buffer of the standby node.
제 2 항에 있어서,
상기 리두 로그 파일에 대응되는 트랜잭션을 상기 스탠바이 노드의 상기 버퍼에 저장된 페이지에 적용한 후 새로운 트랜잭션이 발생되면, 상기 새로운 트랜잭션에 대응되는 페이지를 상기 스탠바이 노드의 버퍼로 읽어오는 단계; 및
상기 스탠바이 노드의 상기 버퍼로 읽혀진 상기 페이지에 상기 새로운 트랜잭션을 적용하는 단계; 를 더 포함하는 데이터 베이스 관리 방법.
3. The method of claim 2,
Reading a page corresponding to the new transaction into a buffer of the standby node when a new transaction is generated after applying a transaction corresponding to the redo log file to a page stored in the buffer of the standby node; And
Applying the new transaction to the page read by the buffer of the standby node; Further comprising the steps of:
제 1 항에 있어서,
상기 스탠바이 노드에서 상기 트랜잭션을 상기 수신된 페이지에 적용하는 단계는,
상기 수신된 페이지를 상기 스탠바이 노드의 버퍼에 저장하는 단계; 및
상기 액티브 노드의 상기 버퍼에 저장된 상기 페이지와 상기 스탠바이 노드의 상기 버퍼에 저장된 상기 페이지를 일치시키도록, 상기 트랜잭션을 상기 스탠바이 노드의 상기 버퍼에 저장된 상기 페이지에 적용하는 단계; 를 포함하는 데이터 베이스 관리 방법.
The method according to claim 1,
Wherein applying the transaction to the received page at the standby node comprises:
Storing the received page in a buffer of the standby node; And
Applying the transaction to the page stored in the buffer of the standby node to match the page stored in the buffer of the active node with the page stored in the buffer of the standby node; The database management method comprising:
트랜잭션(Transaction)이 발생되면, 상기 트랜잭션에 대응되는 리두 로그(Redo Log)를 액티브 노드(Active Node)의 리두 로그 버퍼에 저장하는 단계;
상기 액티브 노드에 미리 저장된 데이터 베이스 중 상기 트랜잭션에 대응되는 페이지에 상기 트랜잭션을 적용하는 단계;
스탠바이 노드(Standby Node)에 미리 저장된 데이터 베이스 중 상기 트랜잭션에 대응되는 페이지에 상기 트랜잭션을 적용하는 단계; 및
상기 액티브 노드에서 상기 트랜잭션이 적용된 상기 페이지를 공유 디스크에 미리 저장된 복수의 데이터 베이스 파일 중 적어도 하나에 저장하는 단계; 를 포함하는 데이터 베이스 관리 방법.
Storing a redo log corresponding to the transaction in a redo log buffer of an active node when a transaction occurs;
Applying the transaction to a page corresponding to the transaction among a database previously stored in the active node;
Applying the transaction to a page corresponding to the transaction among a database stored in a standby node in advance; And
Storing the page to which the transaction is applied in the active node in at least one of a plurality of database files stored in advance in a shared disk; The database management method comprising:
제 6 항에 있어서,
상기 액티브 노드에서 상기 트랜잭션을 적용하기에 앞서, 상기 액티브 노드의 상기 리두 로그 버퍼에 저장된 상기 리두 로그를 상기 공유 디스크의 리두 로그 파일에 저장하는 단계; 및
상기 액티브 노드가 비정상으로 판단되면, 상기 공유 디스크에 저장된 상기 리두 로그 파일에 대응되는 트랜잭션을 상기 스탠바이 노드의 상기 데이터 베이스에 적용하는 단계; 를 더 포함하는 데이터 베이스 관리 방법.
The method according to claim 6,
Storing the redo log stored in the redo log buffer of the active node in the redo log file of the shared disk prior to applying the transaction at the active node; And
Applying a transaction corresponding to the redo log file stored on the shared disk to the database of the standby node if the active node is determined to be abnormal; Further comprising the steps of:
제 7 항에 있어서,
상기 리두 로그 파일에 대응되는 트랜잭션을 상기 스탠바이 노드의 상기 데이터 베이스에 적용한 후, 상기 트랜잭션이 적용된 상기 데이터 베이스의 페이지를 상기 공유 디스크에 미리 저장된 상기 복수의 데이터 베이스 파일 중 적어도 하나에 저장하는 단계; 를 더 포함하는 데이터 베이스 관리 방법.
8. The method of claim 7,
Applying a transaction corresponding to the redo log file to the database of the standby node and storing the page of the database to which the transaction is applied in at least one of the plurality of database files stored in advance in the shared disk; Further comprising the steps of:
제 7 항에 있어서,
상기 리두 로그 파일에 대응되는 트랜잭션을 상기 스탠바이 노드의 상기 데이터 베이스에 적용한 후 새로운 트랜잭션이 발생되면, 상기 스탠바이 노드에 저장된 상기 데이터 베이스 중 상기 새로운 트랜잭션에 대응되는 페이지에 상기 새로운 트랜잭션을 적용하는 단계; 를 더 포함하는 데이터 베이스 관리 방법.
8. The method of claim 7,
Applying a transaction corresponding to the redo log file to the database of the standby node and applying the new transaction to a page corresponding to the new transaction among the databases stored in the standby node when a new transaction occurs; Further comprising the steps of:
제 6 항에 있어서,
상기 스탠바이 노드에 저장된 데이터 베이스 중 상기 트랜잭션에 대응되는 페이지에 상기 트랜잭션을 적용하는 단계는,
상기 액티브 노드에 저장된 데이터 베이스와 상기 스탠바이 노드에 저장된 데이터 베이스를 일치시키도록, 상기 스탠바이 노드에 저장된 데이터 베이스 중 상기 트랜잭션에 대응되는 페이지에 상기 트랜잭션을 적용하는 데이터 베이스 관리 방법.
The method according to claim 6,
Wherein the applying the transaction to a page corresponding to the transaction among the databases stored in the standby node comprises:
Wherein the transaction is applied to a page corresponding to the transaction among the databases stored in the standby node to match the database stored in the active node with the database stored in the standby node.
KR1020170169671A 2017-12-11 2017-12-11 Data base management method KR102019565B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170169671A KR102019565B1 (en) 2017-12-11 2017-12-11 Data base management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170169671A KR102019565B1 (en) 2017-12-11 2017-12-11 Data base management method

Publications (2)

Publication Number Publication Date
KR20190069201A true KR20190069201A (en) 2019-06-19
KR102019565B1 KR102019565B1 (en) 2019-11-04

Family

ID=67104627

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170169671A KR102019565B1 (en) 2017-12-11 2017-12-11 Data base management method

Country Status (1)

Country Link
KR (1) KR102019565B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102428587B1 (en) * 2022-04-13 2022-08-03 주식회사 비투엔 Apparatus and method for handling transaction availability and performance guarantee based on micro service architecture

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030061537A1 (en) * 2001-07-16 2003-03-27 Cha Sang K. Parallelized redo-only logging and recovery for highly available main memory database systems
KR20130065338A (en) 2011-12-09 2013-06-19 주식회사 알티베이스 Apparatus and method for database management in active and standby nodes of main memory database management system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030061537A1 (en) * 2001-07-16 2003-03-27 Cha Sang K. Parallelized redo-only logging and recovery for highly available main memory database systems
KR20130065338A (en) 2011-12-09 2013-06-19 주식회사 알티베이스 Apparatus and method for database management in active and standby nodes of main memory database management system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102428587B1 (en) * 2022-04-13 2022-08-03 주식회사 비투엔 Apparatus and method for handling transaction availability and performance guarantee based on micro service architecture

Also Published As

Publication number Publication date
KR102019565B1 (en) 2019-11-04

Similar Documents

Publication Publication Date Title
US10872076B2 (en) Transaction ordering
CN101243446B (en) Online page restore from a database mirror
US7788453B2 (en) Redirection of storage access requests based on determining whether write caching is enabled
US7539703B2 (en) Setup method for disaster recovery system
US6745305B2 (en) Zeroed block optimization in disk mirroring applications
US7200626B1 (en) System and method for verification of a quiesced database copy
US6389459B1 (en) Virtualized storage devices for network disk mirroring applications
US7933872B2 (en) Database backup, refresh and cloning system and method
US7627775B2 (en) Managing failures in mirrored systems
US20110099148A1 (en) Verification Of Remote Copies Of Data
US8560886B1 (en) Method and system for rapid failback of a computer system in a disaster recovery environment
US10719407B1 (en) Backing up availability group databases configured on multi-node virtual servers
US20060075004A1 (en) Method, system, and program for replicating a file
KR20150070134A (en) Retrieving point-in-time copies of a source database for creating virtual databases
KR100450400B1 (en) A High Avaliability Structure of MMDBMS for Diskless Environment and data synchronization control method thereof
CN104813276A (en) Streaming restore of a database from a backup system
US7809898B1 (en) Detecting and repairing inconsistencies in storage mirrors
US20100169289A1 (en) Two Phase Commit With Grid Elements
CN115858236A (en) Data backup method and database cluster
RU2711348C1 (en) Method and system for processing requests in a distributed database
US20040254962A1 (en) Data replication for enterprise applications
KR102019565B1 (en) Data base management method
KR102049417B1 (en) Data storing and restoring method based on In-memory database using NVDIMM
US11693844B2 (en) Processing delete requests based on change feed of updates
US11461192B1 (en) Automatic recovery from detected data errors in database systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant