IP Library › Granted Patent US 8,433,680
Granted Patent B2
US 8,433,680 · App. 12/166,272 · Granted Apr 30, 2013

Capturing and restoring database session state

Inventors: Chao Ling (Fremont, CA); Feng Cao (Belmont, CA); Rajendra Pingte (Foster City, CA)
Assignee: Oracle International Corporation
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 8,433,680
App. No.
12/166,272
Granted
Apr 30, 2013
Kind
B2
Abstract

Techniques are described herein for capturing and restoring database session state. Production database server components save the session state of each of a plurality of database sessions. The components store workload units that are processed in these sessions. The components store updated session states in response to certain events. Thus, the components may capture multiple session states, pertaining to various different points in time, for each session. The captured session states and the captured workload are moved to a test database server. A user selects, from among the time points represented by the session states, a point in time at which the user would like workload replay to begin. Sessions are re-created on the test database server. Session states of these sessions are set to reflect the session states as they existed at the user-selected time point. Workload units are replayed in the sessions relative to the test database server.

Claims (44)

1. A computer-implemented method comprising:

capturing a session state of a database session in a first database server as the database session exists at a point in time after a specified time point;

recreating, based on the session state, the database session in a second database server that is separate from the first database server;

receiving, from a user, a selection of two or more database sessions in the first database server;

for each particular database session of the two or more database sessions, suspending said each particular database session; and

after all of the two or more database sessions are suspended, capturing and storing a separate database session state for each particular database session of the two or more database sessions.

2. A computer-implemented method comprising:

capturing a session state of a database session in a first database server as the database session exists at a point in time after a specified time point;

recreating, based on the session state, the database session in a second database server that is separate from the first database server;

receiving, from a user, a selection of two or more database sessions that exist in the first database server;

for each particular database session of the two or more database sessions:

capturing and storing a session state of said each particular database session,

after capturing and storing the session state of said each particular database session, suspending said each particular database session, and

after all of the two or more database sessions are suspended, resuming each particular database session of the two or more database sessions.

3. A computer-implemented method comprising:

capturing a session state of a database session in a first database server as the database session exists at a point in time after a specified time point; and

recreating, based on the session state, the database session in a second database server that is separate from the first database server;

wherein capturing the session state of the database session in a first database server at the database session exists at the point in time after the specified time point comprises storing, on a non-volatile computer-readable storage medium, one or more variables that are contained in volatile memory of a first computer on which the first database server executes, along with one or more values of those one or more variables;

wherein recreating, based on the session state, the database session in the second database server comprises loading, from the non-volatile computer-readable storage medium, and into a volatile memory of a second computer on which the second database server executes, the one or more variables along with the one or more values of those one or more variables;

wherein the first computer is separate from the second computer; and

wherein the first database server does not execute concurrently with the second database server.

4. A volatile or non-volatile computer-readable storage medium storing instructions, the instructions including instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of comprising:

capturing a session state of a database session in a first database server as the database session exists at a point in time after a specified time point;

recreating, based on the session state, the database session in a second database server that is separate from the first database server;

receiving, from a user, a selection of two or more database sessions that exist in the first database server;

for each particular database session of the two or more database sessions:

capturing and storing the session state of said each particular database session,

after capturing and storing the session state of said each particular database session, suspending the particular database session, and

after all of the two or more database sessions are suspended, resuming each particular database session of the two or more database sessions.

5. A volatile or non-volatile computer-readable storage medium storing instructions, the instructions including instructions which, when executed by one or more processors, cause the one or more processors to perform the steps comprising:

capturing a session state of a database session in a first database server as the database session exists at a point in time after a specified time point;

recreating, based on the session state, the database session in a second database server that is separate from the first database server;

receiving, from a user, a selection of two or more database sessions that exist in the first database server;

for each particular database session of the two or more database sessions:

capturing and storing a session state of said each particular database session,

after capturing and storing the session state of said each particular database session, suspending said each particular database session, and

after all of the two or more database sessions are suspended, resuming each particular database session of the two or more database sessions.

6. A volatile or non-volatile computer-readable storage medium storing instructions, the instructions including instructions which, when executed by one or more processors, cause the one or more processors to perform the steps comprising:

capturing a session state of a database session in a first database server as the database session exists at a point in time after a specified time point; and

recreating, based on the session state, the database session in a second database server that is separate from the first database server;

wherein capturing the session state of the database session in a first database server as the database session exists at the point in time after the specified time point comprises storing, on a non-volatile computer-readable storage medium, one or more variables that are contained in volatile memory of a first computer on which the first database server executes, along with one or more values of those one or more variables;

wherein recreating, based on the session state, the database session in the second database server comprises loading, from the non-volatile computer-readable storage medium, and into a volatile memory of a second computer on which the second database server executes, the one or more variables along with the one or more values of those one or more variables;

wherein the first computer is separate from the second computer; and

wherein the first database server does not execute concurrently with the second database server.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2008
From: LIANG, CHAO; CAO, FENG; PINGTE, RAJENDRA
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 021248/0254 →
Continuity (1)
Related Publication 20100005097A1 · Jan 7, 2010