1. Field of the Invention
The present invention relates to database installation and in particular to reconfiguring a database installation to operate or run in an environment that is not the original installation environment.
2. Brief Description of Related Developments
A specific installation of a database, such as for example, an Oracles database, often includes multiple steps other than the basic installation of the database from the shipped media. Some of these steps include applying patchsets, applying one-off patches, and manual tweaking of the software's configuration to enable the installation to operate properly in the home environment.
Administrators often face the task of “copying” a specific installation from the home environment to another or different environment. A “home” environment is generally considered the system context in which a product runs. This could be due to any number of reasons including for example, a hardware upgrade, scaling-up the database to add more capacity, adding a node to a grid or supporting new customers for a hosting service.
Performing the task of copying an installation (an operation referred to herein as “cloning”) has been so far performed by customers each in their own way and generally encompasses some type of reverse engineering. For example, the process can comprise steps such as:
The above process suffers from a number of problems. For example, the process is error prone since there is no unified and well-documented set of steps to be followed through the copying process. Customers are usually faced with the task of reverse engineering the product in order to get it to work in the new environment. The process may also be incomplete. Some of the components of database installations cannot be simply copied or cloned. The customer will have to skip those components on the target home and “make do” without them. These types of copying processes are also hard to support. Due to the ad-hoc nature of the copying process, attempts to replicate databases tend to generate lots of support calls, to for example, Oracle™ support.
Furthermore, in order to clone a specific product, the customer needs to know many of the internal details of the product. This is required because the customer needs to know which files/parameters need to be updated to fit the software into the new target environment. Add to that the fact that these steps will differ based on variables such as the version of the product, the patchsets applied, and the products installed in a specific home (server only, server and client, server and companion CD), and the process becomes even more complex. Thus, each copying or cloning process is very product, product version and environment specific and labor intensive.
A database home can comprise any number of different components. Each component has its own set of operating logic. The operating logic for each component needs to be configured at the time of the installation to the machine's operating system. A user needs to know exactly what is installed in a database home and how it is configured to be able to clone it.
It would be advantageous to be able to automatically clone a database home without the need to manually reconfigure a copied installation in the new environment in order to apply the needed version updates, patchsets, or other configuration changes or modifications to the database home.
The present invention is directed to a method of cloning a system from a source environment to a target environment. In one embodiment the method comprises storing installation scripts used to install a home in the source environment in the home. The home can be copied to the target environment. The installation scripts stored in the home are also copied to the target environment and located inside the home in the target environment. The installation scripts are then executed in the target environment together with any updates or modifications to complete the cloning of the system in the target environment.
In one aspect, the present invention is directed to a method of facilitating adding a node to a computer grid. In one embodiment, the method comprises locating installation scripts from a home copied to at least one target environment. The installation scripts are those original installation scripts used to install the home together with any updates or modifications thereto. The installation scripts are executed inside the target environment to automatically install the home in the target environment.
In another aspect the present invention is directed to a computer program product. In one embodiment the computer program product comprises a computer useable medium having computer readable code means embodied therein for causing a computer to automatically replicate a clonable system in a target environment that is different from a home environment. The computer readable code means in the computer program product comprises computer readable program code means for causing a computer to store original installation scripts used during the installation of the home, and any updates or modifications to the home, in the home environment. The computer readable code means also comprises computer readable program code means for causing a computer to locate the original installations scripts and any updates or modifications in the target environment after the home is copied from the home environment to the target environment. The original installation scripts and any updates or modifications are generally transferred to the target environment when the home is copied to the target environment. The computer readable program code means also comprises computer readable program code means for causing a computer to execute the original installation scripts and any updates or modification in the target environment to complete cloning of the home in the target environment.
In a further aspect the present invention is directed to an article of manufacture. In one embodiment the article of manufacture comprises a computer useable medium having computer readable program code means embodied therein for causing a computer to replicate a clonable system from a home environment in a target environment. The computer readable code means in the article of manufacture comprises computer readable program code means for causing a computer to store, in the home environment, original installation scripts used during the installation of the system, and any updates or modifications to the home, locate in the target environment, the original installations scripts and any updates or modifications. The original installation scripts and any updates or modifications are generally copied from the home environment to the target environment. The computer readable program code means also comprises computer readable program code means for causing a computer to execute in the target environment, the original installation scripts and any updates or modifications to replicate the system in the target environment.
The foregoing aspects and other features of the present invention are explained in the following description, taken in connection with the accompanying drawings, wherein:
Referring to
The present invention makes cloning, or the ability to copy a software or program installation or application, from a source environment to a target environment, an integral part of the original installation process of the application. Generally, the installation scripts, code directly executable by a program that understands the language in which the script is written, for an application, such as for a database application, are designed to operate and execute in a source environment. To “copy” or “clone” the application to another environment requires knowledge of the installation scripts of the application, including any updates, corrections, fixes, patchsets or configuration changes, for example. Features of the present invention provide for storage of the original installation scripts and the updating thereof, so that when a need or desire for cloning occurs, the very same original installation scripts, together with any updates or modifications thereof, can be executed in the new, target environment automatically. Although the “cloning” process described herein will generally be described in terms of a database home/software, it will be understood that the present invention can be applied to any software product or system that is capable of being cloned.
As shown in
When a user desires to “clone” the original database home 104 to a target location 120, the user can activate a “clone mode” 110 on the computer system 102 in order to execute the installation scripts 106 from the home location at the target location 120 to create a “clone” of the original database home 104 without the need for manual configuration updates. Copying of the database home 104 to the target location 120 generally occurs, with the installation scripts 106 being transferred or copied from the home location 104 to the target location 120. Since the copied installation scripts include all patch sets and modifications that might have been required in the home location 104, once cloning occurs, the target location 120 is essentially a replica of the home location 104.
In one embodiment, the user may utilize a product such as the Oracle® Universal Installer (“OUI”) to clone the database installation from the home location to the target location. The OUI can include a “clone” feature, that when activated automatically executes the copied and stored installation scripts in the target location.
Referring to
In one embodiment, referring to
Referring to
The desired home 310 is at some point copied 404 to at least one target location 320. Previously, during the original installation of the home 310 in the source location, the installation scripts were stored in the home 310. These installation scripts are now copied to the target location 320 when the home 310 is copied 404. The clone mode is activated 406 and the installation scripts are then located 408 at the target location 320 and are played or executed 410 in the target location 320. Thus, a new home at the target location 320 is created 412 that replicates the original home installation 310. Since the home 310 is likely to have been configured and tested, the operator can easily add known configuration nodes to the grid 300 with a degree of confidence and without the need for manual configuration of the software installation scripts.
In one embodiment, the original home installation could be cloned to another environment 330 or 340. Alternatively, after the original home 310 is cloned in target home 320, the target home 320 can be modified as desired and then the modified target home 320 cloned to target home 330.
Since the original installation scripts are saved in the home, all a user needs to know is the command used for cloning. The command for cloning can be irrespective of the contents of the home, which contrasts with present approaches that require a user to know exactly what is installed in a home, how it is configured and how it has been modified to be able to clone it. Present practices for “cloning” a database installation require reverse engineering the database installation, and each such process is installation or version specific. The present invention can be applied more generically and is not installation or product specific. Since the installation scripts are stored in original home at the time of the original installation from the installation media and copied to the new home, execution of the install scripts in the new home upon activation of the clone function replicates the original, and modified or updated if applicable, home in the new environment. Thus, in the present invention, there is no need to reverse engineer the original product or installation.
In one embodiment, the clone command could be for example an icon on a display screen that is activated to initiate or execute the cloning of an application.
The clone mode installation replicates the original installation except that the software for the application is already present. The application software has been patched, configured and modified if needed, and the process can be fully automated. Any extra steps of locating installation scripts, configuring the scripts for the target environment, upgrading or modifying the scripts are eliminated.
By essentially replicating an existing application, a known configuration can be easily and automatically cloned for developmental testing, without affecting the known or original application.
For example, in one embodiment it is possible to use the present invention to clone an application from an original or prior installation to a development station in order to test a configuration change or modification, without disturbing the original or prior database home. Once the application or original home is cloned, a patch, or configuration change in the new environment can be applied and tested. This allows the patch to be tested on a known configuration without the need to have to manually go in and examine what files would need to be transferred and changed.
By integrating cloning with the installation of an application, the present invention generally provides a uniform well defined approach that allows all Oracle™ products to be clonable out of the box. All the user needs to know to clone a home is the command used for cloning irrespective of the contents of the home. This is in contrast with the very involved old approach where the user needs to know exactly what is installed in a home and how it is configured to be able to clone it.
In an embodiment of the present invention where cloning is performed using Oracle® Universal Installer, the Oracle® Universal Installer inventory gets properly updated in the target home. This means that the cloned product can eventually be patched, upgraded, deinstalled, or queried by other applications that access the OUI inventory.
Significantly, the cloning operation of a database home reduces the amount of support calls since the cloning process is now built in the product. Customers do not need to hack into the product to get it to work in the target environment.
The status of the cloned home is known and pre-defined since the cloning always happens through the same process. This is in contrast with the old approach where each customer has a different set of cloning scripts and processes, resulting in a different cloned home.
The present invention may also include software and computer programs incorporating the process steps and instructions described above that are executed in different computers. In the preferred embodiment, the computers are connected to the Internet.
Computer systems 502 and 504 may also include a microprocessor for executing stored programs. Computer 502 may include a data storage device 508 on its program storage device for the storage of information and data. The computer program or software incorporating the processes and method steps incorporating features of the present invention may be stored in one or more computers 502 and 504 on an otherwise conventional program storage device. In one embodiment, computers 502 and 504 may include a user interface 510, and a display interface 512 from which features of the present invention can be accessed. The user interface 508 and the display interface 512 can be adapted to allow the input of queries and commands to the system, as well as present the results of the commands and queries.
It should be understood that the foregoing description is only illustrative of the invention. Various alternatives and modifications can be devised by those skilled in the art without departing from the invention. Accordingly, the present invention is intended to embrace all such alternatives, modifications and variances which fall within the scope of the appended claims.