As of Jedox 6.0 SR3, it is possible to use a Jedox Integrator Server Job of type Groovy to execute a backup of all OLAP databases. Such a job can then be scheduled and triggered on a regular basis to produce a backup of each database without the need to shutdown any of the services. For every database, a separate ZIP archive will be produced containing database itself plus System database. A demo script is included in the Integrator Sample project “ETLTasks” in the setup, and looks similar to code below:

/* sample groovy backup script
 * -------------------------------
 */

// path to backup directory - data directory will be used if empty
String backupDirPath = "${BackupDirPath}";

// definition of helper function for backing up single DB
def backupDb(db, backupDirPath){
      // get current date/time
    Date dateNow = new Date();
    String newDate = dateNow.format( 'yyyyMMdd_HHmm' );

    // get suffix for backup file
    String suffix = "_" + newDate + ".zip";
      String dbN = db.getName();
      String fileName = backupDirPath + dbN + suffix;
  
      if (dbN != "System")
      {
        LOG.info("Starting backup of database: '" + dbN + "'.");
        LOG.info("Trying to write filename: '" + fileName + "'.");
        try
        {
              db.backup(fileName );
              LOG.info("Finished backup of database: '" + dbN + "'.");
        }
        catch (pExc)
        {
              LOG.error(pExc);
        }
     }
}
  
IConnection conn = OLAP.getConnection("OlapTarget");
if (conn != null)
{
  LOG.info("_______________________________________________________________________________________________________________________________");
  for(IDatabase db:conn.getDatabases())
  {
    backupDb (db, backupDirPath);
  };
  LOG.info("_______________________________________________________________________________________________________________________________");
}
else
{
  LOG.error("No connection defined.");
}

Within the Integration Manager, the task looks like this:

blog-backup-olap-1

 

It relies on at least the JedoxGlobal connection OlapTarget being properly set. By default, if the backupDirPath variable is not set, the backup job will write a ZIP file in the data directory of Jedox OLAP server; otherwise, the directory specified as value for the backupDirPath variable is used. For this variable, forward slashes must be used as separator between directory names, backslashes are not allowed. The format of the archive name is <DB_NAME>_<DATE_TIME>.zip, e.g.Demo_20160321_1536.zip. Please note that the user running the Jedox Olap Server service / process must have write access to the target directory, to be able to create the output file.

Use zip-backup OLAP parameter to influence the compression level used.

You will receive the notification “completed successfully” as soon as the task has been executed:

blog-backup-olap-3

 

After the job has run, you can find a backup of your data in the data directory (backupDirPath).

blog-backup-olap-4

Author: Vladislav Malicevic