IP Library Granted Patent US 12,373,422
Granted Patent B2
US 12,373,422 · App. 18/409,351 · Granted Jul 29, 2025

System and method for patching database as a service with minimal downtime

Inventor: Alalaa N. Tashkandi (Dhahran, SA)
Assignee: SAUDI ARABIAN OIL COMPANY
G06F16/2365G06F11/1448G06F2201/80
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 12,373,422
App. No.
18/409,351
Granted
Jul 29, 2025
Kind
B2
Abstract

A method and system are disclosed for preparing and providing database patching as a service. At least one computing device generates a model for implementing steps for database patching. The model includes steps for uptime processes and downtime processes. The computing device(s) determine a new patch to be applied to a respective database and clones the model. Further, the computing device(s) customize the cloned model as a function of parameters associated with the respective database and generates a clone of the respective database. Additionally, the computing device(s) execute, via the model, pre-patching steps on the clone of the respective database, patching steps on the clone of the respective database, and post-patching steps on the clone of the respective database. The computing device(s) determine whether a rollback is indicated, and implements a rollback process where the rollback is indicated or does not implement a rollback process if not indicated.

Claims (61)

1. A computer-implemented method for preparing and providing database patching as a service, the method comprising:

accessing database patch information by at least one computing device, configured by executing instructions stored on non-transitory processor readable media, to provide database patching as a service to a plurality of computing devices in a distributed computer environment, wherein the database patch information represents a respective new database patch for a respective database system;

downloading, by the at least one computing device, at least one package comprising the respective new database patch;

accessing, by the at least one computing device, a model usable for implementing database patching for a plurality of different database systems, wherein each of the plurality of different database systems has a plurality of respective releases and each respective release has respective database patching requirements;

determining, by the at least one computing device, a current release of the respective database system configured with at least one of the plurality of computing devices in the distributed computer environment;

determining, by the at least one computing device, patching requirements for implementing the respective new database patch to the current release of the respective database system;

customizing, by the at least one computing device, the model as a function of: the database patch information; the current release of the respective database system; and the patching requirements for implementing the respective new patch to the current release of the respective database system;

generating, by the at least one computing device, in a test lab that includes access to respective base levels of a plurality of different database systems, a clone of the respective database;

executing in the test lab, by the at least one computing device using the model, pre-patching steps for the new database patch on the clone of the respective database;

executing in the test lab, by the at least one computing device using the model, patching steps for the new database patch on the clone of the respective database; and

executing in the test lab, by the at least one computing device using the model, post-patching steps for the new database patch on the clone of the respective database;

where the pre-patching steps, patching steps, and post-patching steps complete successfully, implementing, on the clone of the respective database, a rollback process and

implementing the respective new database patch, by the at least one computing device for the at least one of the plurality of computing devices in the distributed computer environment configured with the current release of the respective database system, as a function of the pre-patching steps, the patching steps, and the post-patching steps performed on the respective database system.

2. The computer-implemented method of claim 1 , further comprising:

determining, by the at least one computing device, a failed process; and

generating and transmitting, by the at least one computing device, a notification associated with the failed process.

3. The computer-implemented method of claim 2 , wherein the failed process includes at least one of an invalid database object, a failed patching process, and a failed rollback process.

4. The computer-implemented method of claim 1 , wherein the model can be configured by parameters representing network configuration information, database configuration information, and standby database configuration information.

5. The computer-implemented method of claim 1 , wherein the model includes a plurality of submodels.

6. The computer-implemented method of claim 5 , wherein the plurality of submodels include operations for pre-patch logical fixes, patching database objects, post-patch logical fixes, recompiling patched database objects, and hardening database security.

7. The computer-implemented method of claim 1 , further comprising creating, by the at least one computing device, a database restore point prior to executing the pre-patching steps and the post-patching steps and removing the restore point after patching, by the at least one computing device using the model, the respective database.

8. The computer-implemented method of claim 1 , where the rollback process on the clone of the respective database is unsuccessful:

generating, by the at least one computing device, a first notification representing the failed rollback process; and

transmitting, by the at least one computing device, the first notification to at least one other computing device.

9. The computer-implemented method of claim 1 , where at least one of the pre-patching steps, the patching steps, and the post-patching steps are unsuccessfully implemented on the clone of the respective database:

generating, by the at least one computing device, a second notification representing the at least one of the pre-patching steps, the patching steps, and the post-patching steps; and

transmitting, by the at least one computing device, the second notification to at least one other computing device.

10. The computer-implemented method of claim 1 , wherein following the rollback process on the clone of the respective database completed successfully:

destroying, by the at least one computing device, the clone of the respective database.

11. A computer-implemented system for preparing and providing database patching as a service, the system comprising:

at least one computing device, wherein the at least one computing device is configured by executing instructions for providing database patching as a service to a plurality of computing devices in a distributed computer environment, including by:

accessing database patch information representing a respective new database patch for a respective database system;

downloading at least one package comprising the respective new database patch;

accessing a model usable for implementing database patching for a plurality of different database systems, wherein each of the plurality of different database systems has a plurality of respective releases and each respective release has respective database patching requirements;

determining a current release of the respective database system configured with at least one of the plurality of computing devices in the distributed computer environment;

determining patching requirements for implementing the respective new database patch to the current release of the respective database system;

customizing the model as a function of: the database patch information; the current release of respective database system; and the patching requirements for implementing the respective new patch to the current release of the respective database system;

generating in a test lab that includes access to respective base levels of a plurality of different database systems, a clone of the respective database a clone of the respective database;

executing in the test lab, using the model, pre-patching steps for the new database patch on the clone of the respective database;

executing in the test lab, using the model, patching steps for the new database patch on the clone of the respective database; and

executing in the test lab, using the model, post-patching steps for the new database patch on the clone of the respective database;

where the pre-patching steps, patching steps, and post-patching steps complete successfully, implementing, on the clone of the respective database, a rollback process;

where the rollback process on the clone of the respective database completes successfully:

implementing the respective new database patch, for the at least one of the plurality of computing devices in the distributed computer environment configured with the current release of the respective database system, as a function of the pre-patching steps, the patching steps, and the post-patching steps performed on the respective database system.

12. The system of claim 11 , wherein the at least one computing device is configured by executing instructions for:

determining a failed process; and

generating and transmitting a notification associated with the failed process.

13. The system of claim 12 , wherein the failed process includes at least one of an invalid database object, a failed patching process, and a failed rollback process.

14. The system of claim 11 , wherein the model can be configured by parameters representing network configuration information, database configuration information, and standby database configuration information.

15. The system of claim 11 , wherein the model includes a plurality of submodels.

16. The system of claim 15 , wherein the plurality of submodels includes operations for pre-patch logical fixes, patching database objects, post-patch logical fixes, recompiling patched database objects, and hardening database security.

17. The system of claim 11 , wherein the at least one computing device is configured by executing instructions for:

creating a database restore point prior to executing the pre-patching steps and the post-patching steps and removing the restore point after patching, by the at least one computing device using the model, the respective database.

18. The computer-implemented system of claim 11 , where the rollback process on the clone of the respective database is unsuccessful:

generating a first notification representing the failed rollback process; and

transmitting the first notification to at least one other computing device.

19. The computer-implemented system of claim 11 , where at least one of the pre-patching steps, the patching steps, and the post-patching steps are unsuccessfully implemented on the clone of the respective database:

generating, by the at least one computing device, a second notification representing the at least one of the pre-patching steps, the patching steps, and the post-patching steps; and

transmitting the second notification to at least one other computing device.

20. The computer-implemented system of claim 11 , wherein following the rollback process on the clone of the respective database completed successfully:

destroying the clone of the respective database.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2024
From: TASHKANDI, ALALAA N.
To: SAUDI ARABIAN OIL COMPANY
Reel/Frame 066108/0194 →
Continuity (1)
Related Publication 20250225120A1 · Jul 10, 2025
References Cited (11)
US 8407687B2 · Moshir et al. · 2013 [cited by applicant]
US 9720951B2 · Yancey et al. · 2017 [cited by applicant]
US 9886263B2 · Banford et al. · 2018 [cited by applicant]
US 10521312B1 · Nikhil · 2019 [cited by examiner]
US 10620933B2 · Banford et al. · 2020 [cited by applicant]
US 10803078B2 · Jain et al. · 2020 [cited by applicant]
US 10860306B2 · Velusamy · 2020 [cited by examiner]
US 10938849B2 · Blasak da Fonseca et al. · 2021 [cited by applicant]
US 11379434B2 · Sherazi · 2022 [cited by examiner]
US 11892918B2 · Rayaraddi · 2024 [cited by examiner]
EP 3273363B1 · 2019 [cited by applicant]