Like what you see? Have a play with our trial version.

Overview

In the event of a hardware failure or software corruption, there are several paths for restoring a Yellowfin instance depending on the nature of the failure. In all cases, it's important that a recent snapshot of the Yellowfin database exists.

All Yellowfin content resides within the Yellowfin database. The application server is essentially a static filesystem that boots off a particular database. The web.xml file in Yellowfin/appserver/webapps/ROOT/WEB-INF, contains the reference to the Yellowfin database that the application will attempt to boot off when tomcat is started.

Application Server Failure

In the event of the application server failing (tomcat and the Yellowfin web application), it can easily be restored if the build version of the Yellowfin instance is known. This will ensure schema compatibility with the Yellowfin database. If the last Yellowfin patch applied was the 27th of April 2012, then the Yellowfin database is matched to this patch.

Depending on the nature of your application server backups, there are several options for restoring the application server to working order.

No Application Server Backups

If no backup process exists for the application server, it can be restored by reinstalling Yellowfin. Again, make sure the version of Yellowfin installed matches the Yellowfin version of the database backup that is to be restored.

This process will create a new Yellowfin database. Once the Yellowfin install has completed the Yellowfin instance should be started and then shutdown, as the ROOT directory will not be extracted until this have been completed. Once this is done, the newly created Yellowfin database can be removed.

The Yellowfin instance can be pointed at the existing Yellowfin database by modifying the Yellowfin/appserver/webapps/ROOT/WEB-INF/web.xml file. There is a servlet defined in the web.xml file called "InitConnectionPool", which determines where the Yellowfin application looks for the Yellowfin database. This can be changed to point to the database of the failed Yellowfin instance.

Once this has been updated, Yellowfin should boot off the existing database and all existing Yellowfin content should be accessible. There may be a need to reapply custom styles and custom functions if they have been modified from the Yellowfin defaults.

Application Server Directory Backups

If a process exists to backup the Application Server directory on a scheduled basis, then in the event of a failure, this can be restored to reinstate the Yellowfin application server. No other modifications should be required, as long as the backup is restored in the same location. Again, the version of the application server backup must match the version of the Yellowfin database being restored.

Virtual Machine Snapshot

In the case of the Yellowfin application being run from a virtual machine, and a process exists to take scheduled snapshots of the virtual machine, then this can be used to restore a Yellowfin instance.

Restoring the snapshot should be the only step required to reinstate the Yellowfin instance. The application server snapshot must match the version of the Yellowfin database that is being restored.

Database Server Failure

In the event of a database failure, the recovery steps will depend on the nature of the backup process implemented.

Scheduled Database Backups

If scheduled database backups are taken, then a Yellowfin instance can be restored to the point in time of the backup. If the database backup is a patch version prior to the current application server, then the instance will have to be rolled back to match. Once the instance has been successfully restored, it can be repatched to the current version.

Transaction Logs

If the Yellowfin database has full transaction logs, it may be possible to reconstruct the database to a point it time by replaying transactions. This is a job for a database administrator to perform.

The point in time version of the Yellowfin database must match the Yellowfin application server. If it does not, an application rollback may be required in order to restore correctly.