Oracle Essbase BSO 备份&重放(Archive&Replay)--事务日志&交易记录功能
文章来源,已重新编辑
本文将介绍Oracle EPM 11.1.1.0的一种新增功能,这种功能能够在database崩溃的情况下将Essbase恢复至其备份时的状态.一般情况下,刚从备份中恢复的database,其状态只是反映了制作该备份时的database状态,但是当制作完备份之后,database有过类似加载数据之类的事务操作,而这些操作并没有包含在备份文件中。直到Essbase 9.3.1,我们也只能将Essbase恢复至制作备份时的状态.在当前发行的版本中,database的回放功能(Replay)能够恢复这些与数据相关的事务操作.在理解回放功能之前,先了解一下Essbase中有关备份的基本知识。
BSO的Cubes有多种备份方法,最通用的办法就是Database的归档功能,当前版本仅支持BSO下的归档功能.在V9.3.1中,归档功能只在ASO下才有效.此种归档方法分为3步:
1.使用备份开始命令将Database置于只读状态;
2.备份命令会产生一个需要归档的文件列表,在操作系统下手工备份这些文件;
3.使用备份结束命令将Database置于正常状态;
从以上描述的3步来看,v9.3.1下的备份命令并没有真正的实现备份,只是生成一个文件列表,需要人为的手工备份,直到当前版本中Essbase才实现了使用命令的自动备份.下面让我们来学习一下传统的Maxl命令的备份方法。
alter system logout session on application 'Demo';
alter application 'Demo' disable connects;
alter database 'Demo'.'Basic' begin archive to file 'D:\DemoBasicArchive.lst';
alter database 'Demo'.'Basic' end archive;
maxl命令生成的文件列表如下图所示:
一旦生成文件列表,那么列表中的文件就是必须备份的文件,或者备份整个app文件夹.
在当前的版本中,备份是一件比较简单的事情,maxl命令如下:
alter database 'Demo'.'Basic' archive to file 'D:\DemoBasicArchive.arc';
当然,你也可以在EAS的图形界面下去做,如下图所示:
恢复Database的命令也很简单,命令如下:
alter database 'Demo'.'Basic' restore from file 'D:\DemoBasicArchive.arcfile';
现在让我们来看一下如何备份/恢复Database.首先,看一下回放功能.要启动回放功能,必须启动Database的事务日志,在essbase.cfg中添加如下参数即可.
TRANSACTIONLOGDATALOADARCHIVE Demo Basic SERVER_CLIENT
TRANSACTIONLOGLOCATION Demo Basic D:\EssbaseReplay NATIVE ENABLE
如图所示:
[essdev@essdev bin]$cat essbase.cfg
TRANSACTIONLOGDATALOADARCHIVE GHACBGTU Plan1 SERVER_CLIENT
TRANSACTIONLOGLOCATION GHACBGTU Plan1 /u01/backup/trlog/GHACBGTU/Plan1 NATIVE ENABLE
[essdev@essdev bin]$
以上的操作设定了database备份之后发生的事务操作的存储目录,类似Oracle Database中的Flashback功能.下面按照一个简单的顺序测试一下回放功能.
1.备份Database;
2.使用Excel Add-in更新Essbase中的数据;
3.恢复Datbase;
4.启用回放功能是否得到我们使用Excel Add-in更新的数据.
使用Excel Add-in查看一下备份之前的数据,如下图:
【图片以后再加】
备份Database,如下图:
【图片以后再加】
备份之后,使用Excel Add-in更新Essbase中的数据,如下图:
【图片以后再加】
现在,我们将database恢复至备份状态,操作如下图:
【图片以后再加】
使用Excel Add-in来查看数据,数据是备份时的状态,如图:
【图片以后再加】
启用回放功能,如图:
【图片以后再加】
使用Excel Add-in来查看数据,数据是更新之后的状态了,如图:
【图片以后再加】
回放功能也适用于规则文件的加载和数据文件。