Skip to main content
Delphix

FAQ: Virtual Database (VDB) (KBA1018)

 

 

If we have a virtual database (VDB) with a 30-day retention, and it was provisioned from a dSource with a 7-day retention, can you rewind the VDB to a point up to 30 days in the past? 

Yes. Note that the retention on the VDB will be 30 days, and the retention on the dSource will be 7 days. If you need to go back 30 days on the VDB, you have that capability as it does not require the same policy setting on the dSource as it has its own timeflow. They are independent, so you can go back up to 30 days using the VDB, regardless of your dSource retention policy. 

Is there a way to shutdown/startup a VDB from the CLI? 

Yes.

ssh delphhix_admin@yourengine
delphix > source
delphix source > ls
delphix source > select <vdb name>
delphix source "vdb" *> stop or start as needed

Does Delphix add VDB information to the oratab file on the target system? 

No. Delphix does not add information about the VDBs to the oratab file.

Which Oracle init parameters are carried over from dSource to VDB? 

Delphix Engine copies most of the configuration values from the dSource, but some parameters are deleted and some are modified. 

For a full list of these values please see Customizing VDB Configuration Settings.

Can the modified Oracle init parameters be stored as templates on the Delphix Engine? 

Yes. The administrator can save any changes to the list of database parameters to modify various characteristics of a VDB. The result can be saved as a named template for use in provisioning other VDBs.

How many temp tablespaces are created on a VDB? And of what size? 

The number and the size of temp tablespaces is same as that on the dSource.

Does the VDB register with the Oracle listener on the target host automatically? 

During provisioning, you can select the listener(s) to which you can register. If no listener is selected the default LISTENER is used.

How to start up VDB from Delphix GUI? 

A VDB can be started up from the VDB card in the GUI. Sample screenshot is:

vdb-start.jpg

On the same note, VDB can be shutdown from the Delphix GUI from VDB card.

Where is the alert log located for a VDB? 

This is no different from a physical database. The directory where it is found can be determined by the background_dump_dest initialization parameter.

The default location of the alert log differs between Oracle 10g and Oracle 11g. For Oracle 11g the location is under the ADR_BASE directory controlled by the DIAGNOSTIC_DEST initialization parameter. If DIAGNOSTIC_DEST is not set, then it defaults to the value of the ORACLE_BASE environment variable if set and ORACLE_HOME/log otherwise.  The alert log will be found in <ADR_BASE>/diag/rdbms/ora11g/<instance_id>/trace.

In Oracle 10g, the location of the alert log is controlled by the BACKGROUND_DUMP_DEST initialization parameter. If this parameter is not set, the default location is $ORACLE_HOME/rdbms/trace.

Can I change the VDB's PFILE init<sid>.ora file? 

No. A VDB will use the init<sid>.ora file as a pointer to an spfile.ora stored on the Delphix File System. Any changes to this must be performed via "alter system" commands. Any changes made via "alter system" will not persist through Delphix Engine rewind or refresh operations.It is recommended to store any parameter changes as VDB config templates so that they can be reused for provisioning other VDB's.

Does the VDB automatically start if the target host is rebooted? 

Delphix Engine version 5.1 and above VDBs may be configured with the "Auto VDB Restart" option, this will allow VDBs to automatically restart after a target host reboot. Prior versions require the VDB to be manually started.

What happens to a VDB that is running when Delphix Engine is rebooted? 

This depends on how Oracle is handled when the storage goes missing. If the instance goes down during the Delphix Engine reboot, then the instance has to be brought up (either from the Delphix GUI or from the target server) after the reboot.

Oracle can crash with errors like the following in the alert log:

ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 2793'

Can I use the automounter to mount the VDB's database directories? 

No.  The mounts are done either when the VDB is started from Delphix GUI or when the VDB is started manually from the target server.

Can I use fstab or such to mount the VDB's directories during host boot? 

No. The mounts are done either when the VDB is started from Delphix GUI or when the VDB is started manually from the target server.

Can I see VDB status in the GUI? 

Yes. Open VDB card in the GUI. 

VDB_Status.png

Can VDB snapshots be automated? What about the snapshot retention? 

Yes. This can be automated using "VDB Snapshot" policy. This is configured from the Delphix GUI > Manage > Policies. On the same note, "Retention" policy can be applied for how long the snapshots and associated redo logs should be retained for. Sample screenshot is:

VDB_Manage_Policies.png

Can a VDB snapshot be taken outside of the policy? 

Yes. Adhoc SnapShots can be taken from the VDB card in the GUI. 

 vdb_manual_snapshot.png

Can a VDB be refreshed to the latest copy of the source? 

Yes. This is done by opening the VDB card in the GUI. 

Can a VDB refresh be automated? 

Yes. This is done using "VDB Refresh" policy. From the Delphix GUI, use Delphix GUI > Manage > Policies.

 VDB_Manage_Policies.png

Can Oracle Home be upgraded for a VDB? 

Yes. Please refer to "Upgrading dSources and VDBs after Oracle Upgrade" section of Delphix Engine Requirements, Installation, and Tuning document.

My VDB startup fails with error showing that control file cannot be locked. How can you resolve this? 

The database startup fails like this:

JobError.png

First check if the NFS Lock service is enabled and running on the target host. If the service is up and running, contact Delphix Support for the resolution.

Q: Does starting and stopping a VDB from the GUI overwrite the custom init.ora file? 

Every time we startup a VDB, we overwrite the init<SID>.ora file in the database default dir with a pfile that points to the spfile located in the VDB mount point directory. If there are customizations in this file, they will be lost on startup. If you have customizations that were included in a VDB config template that got written to the spfile located in the VDB mountpoint directory, then those customizations will be preserved across starts. Please see Customizing VDB Configuration Settings for more information about what settings can be customized in a VDB. The local_listener parameter cannot be set through a VDB config template and is actively reset every time the VDB starts.

Can the Oracle DBID on a VDB be changed after a refresh? 

You can change the DBID on a VDB just like any other Oracle database but beware that the same ramifications apply please see the Oracle DBNEWID Utility documentation. Instances where you may want to change the DBID include when you want to preserve AWR data from your VDB and then import that data back into the VDB after a refresh and find that the VDB has the same DBID as the dSource.

Is Delphix able to refresh a target database at a schema level? 

When a VDB is refreshed, it is updated to have the same contents (including the schema) as the parent VDB or dSource at a point in the parent's timeflow. (The specific point in time can be selected as part of the refresh operation.) It is not possible to use the Delphix Engine to modify or restore specific parts of the database such as the schema or particular tables or tablespaces. A VDB is just another database, which you can modify just as you would any other database. Any such changes would be lost if the VDB is later refreshed.

Can we change an Oracle VDB provisioned in ARCHIVELOG to NON ARCHIVELOG 

The no archivelog mode can be set on a VDB through the Delphix GUI/CLI only at provision time and not afterwards. Please un-tick the "Archivelog Mode" parameter under the advanced section during provision (see screenshot attached). If you manually edit this setting, it must be reverted to the mode selected during provisioning to allow any snapshots to be taken.