System and method for transaction-selective rollback reconstruction of database objects
First Claim
1. A method of constructing a rollback script used to modify data in a database comprising the steps of:
- choosing at least one selection criterion for use in determining if a transaction in a transaction log should be rolled back;
determining an end of a time range for use in terminating searching of the transaction log, searching the transaction log to find at least one log record that satisfies the at least one selection criterion, wherein the at least one log record contains an operation that is part of a committed transaction;
extracting the at least one log record from the transaction log;
computing a command for use in rolling back the operation contained in the at least one log record; and
writing the command to a rollback script.
8 Assignments
0 Petitions
Accused Products
Abstract
Most commercial database systems provide a recovery mechanism that is used to restore data integrity in the event of a hardware or software failure. Many of these systems restore the database from the most recent backup file by rolling forward all transactions from the most recent undamaged transaction log. The present invention discloses a novel system and method for recovering data from user or application errors. Embodiments of the present invention selectively target and undo only those transactions that caused data corruption. In this way, the present invention is able to recover fine-grained database objects such as a table or a row within a table. The present invention has the further advantage of minimizing the number of transactions that are lost after recovery.
-
Citations
66 Claims
-
1. A method of constructing a rollback script used to modify data in a database comprising the steps of:
-
choosing at least one selection criterion for use in determining if a transaction in a transaction log should be rolled back;
determining an end of a time range for use in terminating searching of the transaction log, searching the transaction log to find at least one log record that satisfies the at least one selection criterion, wherein the at least one log record contains an operation that is part of a committed transaction;
extracting the at least one log record from the transaction log;
computing a command for use in rolling back the operation contained in the at least one log record; and
writing the command to a rollback script. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for determining the contents of a row in a database at any point in time comprising the steps of:
-
determining an LSN for the row;
searching a transaction log using the LSN in order to identify at least one log record that performed a transaction on the row; and
filtering the at least one log record to determine if the transaction was committed. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
-
-
23. Computer-executable process steps stored on a computer-readable medium, the computer-executable process steps to construct a rollback script used to restore data in a database, the computer-executable process steps comprising:
-
code to choose at least one selection criterion for use in determining if a transaction in a transaction log should be rolled back;
code to determine an end of a time range for use in terminating searching of the transaction log, code to search the transaction log to find at least one log record that satisfies the at least one selection criterion, wherein the at least one log record contains an operation that is part of a committed transaction;
code to extract the at least one log record from the transaction log;
code to compute a command for use in rolling back the operation contained in the at least one log record; and
code to write the command to a rollback script. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. Computer-executable process steps stored on a computer-readable medium, the computer-executable process steps to determine the contents of a row in a database at any point in time the computer-executable process steps comprising:
-
code to determine an LSN for the row;
code to search a transaction log using the LSN in order to identify at least one log record that performed a transaction on the row; and
code to filter the at least one log record to determine if the transaction was committed. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44)
-
-
45. An apparatus for configuring a computerized database restoration system wherein the restoration is performed by executing a rollback script, apparatus comprising:
-
memory means which stores one or more computer-executable process steps; and
a processor which executes the process steps so as to;
choose at least one selection criterion for use in determining if a transaction in a transaction log should be rolled back;
determine an end of a time range for use in terminating searching of the transaction log, search the transaction log to find at least one log record that satisfies the at least one selection criterion, wherein the at least one log record contains an operation that is part of a committed transaction;
extract the at least one log record from the transaction log;
compute a command for use in rolling back the operation contained in the at least one log record; and
write the command to a rollback script. - View Dependent Claims (46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58)
-
-
59. An apparatus for determining the contents of a row in a database at any point in time wherein, apparatus comprising:
memory means which stores one or more computer-executable process steps; and
a processor which executes the process steps so as to;
determine an LSN for the row;
search a transaction log using the LSN in order to identify at least one log record that performed a transaction on the row; and
filter the at least one log record to determine if the transaction was committed. - View Dependent Claims (60, 61, 62, 63, 64, 65, 66)
Specification