IP Library Granted Patent US 7,464,113
Granted Patent B1
US 7,464,113 · App. 09/852,008 · Granted Dec 9, 2008

Disaster recovery with bounded data loss

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,464,113
App. No.
09/852,008
Granted
Dec 9, 2008
Kind
B1
Abstract

A data recovery methodology with bound transaction data loss is described in which a database operator is allowed to set a bound that limits the number of transactions that can be lost. Transactions are placed in a buffer to be sent asynchronously to the standby system and synchronized based on the predetermined bound and on the number of transactions currently in the buffer.

Claims (56)

1. A method for replicating data of a primary database system, comprising the steps of:

maintaining a queue of information associated with transactions to be sent to a standby database system;

storing a counter indicating a number of the transactions having information in the queue;

storing a predetermined bound of transactions having information in the queue;

executing a log writer process to:

record a transaction in a redo log,

compare the counter and the predetermined bound,

if the counter is not less than the predetermined bound, then block a commit of the transaction until the counter is less than the predetermined bound, and

if the counter is less than the predetermined bound, then increment the counter and acknowledge the commit of the transaction; and

executing a net server process to:

transmit the information associated with a transaction over a network connection to the standby database system,

receive an acknowledgement that a redo record based on the information associated with the transaction has been written to a standby log at the standby database system, and

in response to the acknowledgement, remove the information associated with the transaction from the queue and decrement the counter.

2. A method according to claim 1 , wherein the step of synchronizing includes the step of:

blocking a commit of the transaction until the number of transactions in the buffers is in a predetermined numerical relationship with the predetermined number of transactions.

3. A method according to claim 2 , wherein:

said blocking the commit of the transaction until the number of transactions in the buffers is in the predetermined numerical relationship with the predetermined number of transactions including blocking the commit of the transaction until the number of transactions in the buffers is less than the predetermined number of transactions.

4. A method according to claim 1 , wherein:

the log writer process performs the step of synchronizing.

5. A method according to claim 1 , wherein:

a database application process performs the step of synchronizing before submitting the transaction to the log writer process.

6. A method according to claim 1 , further comprising the steps of:

receiving input from an operator indicating a transaction loss bound; and

setting the predetermined number of transactions based on the transaction loss bound.

7. A computer-readable medium bearing instructions for causing one or more processors to perform the steps of the method according to claim 1 .

8. A method for replicating data in a primary database system having multiple database servers operating in parallel and accessing a common database on a shared disk, said method comprising the steps of:

setting a bound for each of the multiple database servers;

for each of the multiple database servers, performing the steps of:

maintaining a buffer of transactions to be sent to a standby database system; and

synchronizing a transaction performed on the primary database system based on a number of transactions in the buffer and the corresponding bound;

storing a counter indicating a number of the transactions in the queue;

storing a predetermined bound of transactions,

executing a log writer process to:

record the transaction in a redo log,

compare the counter and the predetermined bound,

if the counter is not less than the predetermined bound, then block a commit of the transaction until the counter is less than the predetermined bound, and

if the counter is less than the predetermined bound, then increment the counter and acknowledge the commit of the transaction; and

executing a net server process to:

transmit the transaction over a network connection to the standby database system, receive an acknowledgement that a redo record for the transaction has been written to a standby log at the standby database system, and

in response to the acknowledgement, remove the transaction from the queue and decrement the counter.

9. The method according to claim 8 , wherein the step of synchronizing includes the step of blocking a commit of the transaction until the number of transactions in the buffers is in a predetermined numerical relationship with the predetermined number of transactions.

10. The method according to claim 8 , wherein said blocking the commit the transaction until the number of transactions in the buffer is in the predetermined numerical relationship with the predetermined number of transaction including blocking the commit of the transaction until the number of transactions in the buffer is less than the predetermined number of transactions.

11. The method according to claim 8 , wherein the log writer process performs the step of synchronizing.

12. The method according to claim 8 , wherein a database application process performs the step of synchronizing before submitting the transaction to the log writer process.

13. The method according to claim 8 , further comprising the steps of:

receiving input from an operator indicating a transaction loss bound, and

setting the predetermined number of transactions based on the transaction loss bound.

14. A computer-readable medium bearing instructions for causing one or more processors to perform the steps of the method according to claim 8 .

15. A method for replicating data of a first database system, comprising the steps of:

allowing transactions on the first database system to commit while a number of committed transactions on the first database system for which an acknowledgement that information relating to each transaction of the committed transactions has been stored at a second database system has not been received is less than a predetermined bound; and

blocking transactions on the first database system from committing while the number of committed transactions on the first database system for which an acknowledgement that information relating to each transaction of the committed transactions has been stored at the second database system has not been received is not less than the predetermined bound.

16. The method of claim 15 , wherein the information relating to each transaction includes redo information relating to the transaction.

17. The method of claim 16 , wherein the information relating to each transaction is stored at the second database system by writing the redo information to a redo log.

18. The method of claim 15 , further comprising:

sending information relating to each transaction of the committed transactions to second database system to be stored; and

receiving an acknowledgement that information relating to at least some of the committed transactions has been stored at the second database system.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2003
From: ORACLE CORPORATION
To: ORACLE INTERNATIONAL CORPORATION (OIC)
Reel/Frame 014725/0372 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2001
From: GIRKAR, MAHESH; ANDERSON, RICHARD J.; LEE, STEVE; KUNDU, JOYDIP
To: ORACLE CORPORATION
Reel/Frame 011791/0156 →