Essbase Perl MaxL Backup Tool

На ресурсе http://code.google.com/p/essbase-perl-maxl-backup/downloads/list, находятся утилита по комплексному резервному копированию приложений Hyperion, в частности, с очень хорошей реализацией резервного копирования Essbase, так как использует библиотеку интеграции Maxl и Perl.

Для того что бы ей воспользоваться нужно

1) Поставить perl

2) Если у Вас Unix, то скомпилировать MAxl модуль – для Windows готовые бинарные файлы я прилагаю.

3) Подключить этот и другие модули к Perl

4) Отредактировать файл _config.ini для указания специфики в частности

  • указываем куда перекладываем результат резервной копии

PlaceToOtherStorage=true
PathOtherStorage=U:\prod\SInsur

  • Здесь указываюься блоки которые будут разбираться для резервного копирования

WhatBackup <<EOT
Ess;
Oracle;
EOT

  • Для Essbase – указываем раздел с MAxl командами и БД над которой будет трудится Maxl

EssApplications <<EOT
BSO,EssBakupSetingsCORE,SInsur,Insuranc;
EOT

  • Все просто – здесь строка подключения

Admin=admin
Pass=password
Server=localhost

  • Перечисляем по порядку блоки с коммандами которые будут выполнятся для комплексного бэкапа

WayToExecuteBackupBases <<EOT
MaxlAllBackupAction;
SYSTCopyBackupFilesActionWindows;
SYSTDeleteTemporyFilesWindows;
MaxlAllPostBackupAction;
EOT

  • Эти блоки есть как на уровне базы данных, так и на уровне приложения и сервера БД

WayToExecuteBackupApp <<EOT
SYSTCopyBackupFilesAppWindows;
MaxlAllPostBackupActionApp;
SYSTExpOracleDatabases;
EOT

WayToExecuteBackupServer < SYSTCopyArborFilesWindows;
EOT

  • Блоки различаются как MAxl и как Sys , т.е. который выполняют команды Maxl и OS

SYSTCopyBackupFilesActionWindows <<EOT
xcopy $ArborPath\app\$CurrApp\$CurrBase\*.otl $BackupFolder\ess\$CurrApp\$CurrBase\*.* /Y /I;
xcopy $ArborPath\app\$CurrApp\$CurrBase\*.rul $BackupFolder\ess\$CurrApp\$CurrBase\*.* /Y /I;
xcopy $ArborPath\app\$CurrApp\$CurrBase\*.txt $BackupFolder\ess\$CurrApp\$CurrBase\*.* /Y /I;
xcopy $ArborPath\app\$CurrApp\$CurrBase\*.csc $BackupFolder\ess\$CurrApp\$CurrBase\*.* /Y /I;
xcopy $ArborPath\app\$CurrApp\$CurrBase\*.db $BackupFolder\ess\$CurrApp\$CurrBase\*.* /Y /I;
xcopy D:\Hyperion\AnalyticServices\app\$CurrApp\$CurrBase\*.ind $BackupFolder\ess\$CurrApp\$CurrBase\*.* /Y /I;
xcopy D:\Hyperion\AnalyticServices\app\$CurrApp\$CurrBase\*.pag $BackupFolder\ess\$CurrApp\$CurrBase\*.* /Y /I;
xcopy $ArborPath\app\$CurrApp\$CurrBase\*.esm $BackupFolder\ess\$CurrApp\$CurrBase\*.* /Y /I;
xcopy $ArborPath\app\$CurrApp\$CurrBase\*.tct $BackupFolder\ess\$CurrApp\$CurrBase\*.* /Y /I;
EOT

  • Это Maxl пример

MaxlAllBackupAction <<EOT
drop lock on system all;
alter application $CurrApp disable connects;
alter system logout session on application $CurrApp force;
alter database $CurrApp.$CurrBase unlock all objects;
export database $CurrApp.$CurrBase data to data_file “$CurrApp\$CurrBase\$CurrBase_export.txt” ;
alter application $CurrApp unload database $CurrBase;
EOT