This topic describes how provisioning virtual databases (VDBs) works, and the benefits they provide.
Virtual Databases
A virtual database is created within the Delphix Engine from the Timeflow of another database (dSource or VDB). Virtual databases are provisioned to a particular installation contained within a host or cluster, and the Delphix Engine handles the configuration and management of the externally visible database. Virtual databases have the following attributes:
- Lightweight - Virtual databases take up very little storage space. The amount of space consumed is directly proportional to the amount of data changed, either through executing DML queries against the database, or through replaying the logs required to reach the requested provision point.
- Flexible - VDBs support a variety of operations that are cumbersome with physical databases, such as taking snapshots, provisioning copies of VDBs, refreshing the data within a VDB, or migration to a physical repository
- Simple - Management of VDBs is controlled via the Delphix Engine. While the database can be managed through the use of native database tools, the Delphix Engine will handle provisioning, teardown, start and stop, migration to a different host, and more, through the Delphix Engine Management application.
Provisioning
When a VDB is provisioned, the user selects a point along the timeflow of the parent database and a target environment in which to create the database instance. The Delphix Engine will:
- Create a writeable copy of the physical storage in a time and space efficient manner
- Export the physical storage to the target server over the appropriate protocol (e.g. NFS)
- Configure a database instance in the target environment according to the settings provided by the administrator
- Use the instance to take the database through recovery and replay (if necessary)
- Take a consistent snapshot of the resulting storage
- Make the database available to end users
The time it takes to provision is dependent on the point chosen in the parent timeflow and the type of database. As a general rule, provisioning from a snapshot will be faster than provisioning from a point between snapshots. The time to provision from a snapshot is roughly proportional to the time it took to run the SnapSync operation (if a dSource), or constant time if the snapshot is from a VDB. When provisioning between snapshots, the time to provision is roughly proportional to the amount of change incurred within the source database between the last snapshot and the provision point.
Refresh
The contents of a VDB can be refreshed without affecting the external identity of the database instance. During refresh, the Delphix Engine will:
- Shut down the external database instance
- Create a writeable copy of the physical storage in a time and space efficient manner
- Export the physical storage to the target server over the appropriate protocol (e.g. NFS)
- Use the instance to take the database through recovery and replay (if necessary)
- Make the database available to end users
During this process, the logical configuration of the database instance does not change, so end users see only a brief downtime, followed by the contents of the database being updated to the latest version.
See the topics Managing Policies: An Overview and Refreshing a VDB for more information.
Virtual to Physical
While VDBs offer a great deal of flexibility in terms of management, there are times when creating a physical copy, where the storage is not within the Delphix Engine and the database instance is not managed by the engine, is required. Examples might be physical copies for rigorous performance testing, or for restoring a physical copy in the event of a disaster or logical data corruption. During the V2P operation, the Delphix Engine will:
- Configure a database instance in the target environment according to the settings provided by the administrator
- Copy the physical data from the Delphix Engine to the target environment
- Use the instance to take the database through recovery and replay (if necessary)
- Make the database available to end users
Unlike provisioning, the resulting database instance is not managed by Delphix, and Delphix will treat it as any other external database once the V2P operation is complete. Because the full data set must be copied to the remote server, the V2P time is roughly proportional to the logical size of the VDB.
See the topics under Virtual to Physical for more information.