Oracle OLAP 组件 重建 说明

 

一. Oracle OLAP 组件 说明

有关Oracle 的所有组件的说明,参考:

Oracle8i/9i/10g/11g 组件(Components) 说明

http://blog.csdn.net/tianlesoftware/article/details/5937382

联机分析处理OLAP(On-Line Analytical Processing), 也称DSS决策支持系统。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

OLAP是Oracle数据库企业版的一个多维分析引擎,采用oracle数据库来存储OLAP数据和元数据。

在OLAP中,语句的执行量不是考核标准,因为一条语句的执行时间可能会非常长,读取的数据也非常多。所以,在这样的系统中,考核的标准往往是磁盘子系统的吞吐量(带宽),如能达到多少MB/s的流量。

 

更多内容参考:

OracleOLAP 与 OLTP 介绍

http://blog.csdn.net/tianlesoftware/article/details/5794844

 

在添加OLAP 组件的情况下,如果我们做32到64位的DB迁移,都会需要重建OLAP 组件,否则就会导致大量的无效对象的存在。 而这个重建工作又需要近40分钟,所以是个很耗时间的过程。

 

Oracle OLAP是Oracle企业版的一个可选件,由于将OLAP引擎完全集成进了Oracle数据库,所以,所有数据和元数据都是从Oracle数据库内部进行存储和管理的,以提供高度可伸缩性、强健的管理环境及工业级可用性和安全性。

 

1.1 OLAP 组件

可以使用如下SQL 查看OLAP组件的状态和版本信息:

SQL> column comp_name format a35

SQL> col version for a15

SQL> set wrap off

--Oracle11g:

SQL> select comp_name, version, statusfrom dba_registry where comp_name like '%OLAP%';

 

COMP_NAME                           VERSION         STATUS

-------------------------------------------------- ----------------------

OLAP Analytic Workspace             11.2.0.3.0      INVALID

Oracle OLAP API                     11.2.0.3.0      VALID

OLAP Catalog                        11.2.0.3.0      VALID

 

--Oracle 10g:

SYS@ wangou > select comp_name, version,status from dba_registry where comp_name like '%OLAP%';

 

COMP_NAME                           VERSION         STATUS

-------------------------------------------------- ----------------------

OLAP Analytic Workspace             10.2.0.5.0      VALID

Oracle OLAP API                     10.2.0.5.0      VALID

OLAP Catalog                        10.2.0.5.0      VALID

 

 

Oracle OLAP主要包括以下组件:

(1)OLAP Analytic Engine

Oracle的OLAP分析引擎是一个基于多维模型的MOLAP引擎,运行在Oracle内核中,因此拥有良好的性能。

(2)Analytic Workspace

分析工作区中实际存储多维模型的数据。一个Analytic Workspace存储为一个关系表,分析工作区中的不同对象存储为表中的一行(LOB格式)。分析工作区甚至可以存储在分区表中,以提供更好的并发性能。

(3)OLAP DML

OLAP DML是Analytic Workspace的原始操作语言,包括关于Analytic Workspace的数据定义语言(DDL)和数据操作语言(DML)。对于Analytic Workspace的所有操作方式,比如GUI工具,java和SQL等方式,最终都要转化为Oracle DML语言。

(4)SQL Interface to OLAP

提供使用SQL操作AnalyticWorkspace的接口,该接口使用PL/SQL实现。

(5)Analytic Workspace Java API

提供使用Java操作AnalyticWorkspace的接口。在GUI工具Analytic Workspace Manager中使用的就是该接口。

(6)OLAP API

Oracle OLAP的一个Java编程接口,支持OracleBI Bean。

 

1.2 Oracle OLAP的两个客户端工具:

(1)Analytic Workspace Manager

这是Oracle提供的一个操作AnalyticWorkspace的一个图形工具。使用该工具可以快速的完成诸如定义数据的逻辑多维模型、创建多维数据到关系数据的映射、装载和聚合数据等任务。

(2)OLAP Worksheet

OLAP Worksheet提供了操作Analytic Workspace的一个交互式环境。有点类似于Oracle数据库的SQLPLUS工具。

 

1.3 Active Catalog View(活动目录视图)

Active CatalogView,活动目录视图,是Oracle为OLAP用户提供的一系列动态视图,用于提供分析工作区(Analytic Workspace)中的对象信息。Analytic workspace是用户session和Oracle OLAP引擎交互所必须的接口,也是dimension,cube的对象的容器。

 

在Oracle OLAP中,Analytic workspace的概念有点类似与数据库中的schema,也是一组相关对象的集合。但是Analytic workspace会使用一个名为aw$name的table来实际的存储analyticworkspace中的对象(dimension,cube,level,attribute等)。有时候,我们可能需要将一个analytic workspace从一个系统迁移到另外一个系统,也可能需要将一个analytic workspace的内容迁移到另外一个analytic workspace中,利用Analytic Workspace Manager可以在图形界面下完成该任务,首先将一个aw导出为EIF文件,然后将EIF导入到另外一个aw即可。

 

OLAP多维模型中的一些主要对象,如dimension(维度),measure(度量),cube(数据立方体),hierarchy(层次),level(层),attribute(属性)等,都有对应的活动目录视图,根据视图的名字基本可以判断该视图中的内容,Oracle10g所有的活动目录视图都以ALL_OLAP2_AW开头:

(1)    ALL_OLAP2_AWS

(2)    ALL_OLAP2_AW_ATTRIBUTES

(3)    ALL_OLAP2_AW_CATALOGS

(4)    ALL_OLAP2_AW_CATALOG_MEASURES

(5)    ALL_OLAP2_AW_CUBES

(6)    ALL_OLAP2_AW_CUBE_AGG_LVL

(7)    ALL_OLAP2_AW_CUBE_AGG_MEAS

(8)    ALL_OLAP2_AW_AGG_OP

(9)    ALL_OLAP2_AW_CUBE_AGG_SPECS

(10) ALL_OLAP2_AW_CUBE_DIM_USES

(11) ALL_OLAP2_AW_CUBE_MEASURES

(12) ALL_OLAP2_AW_DIMENSIONS

(13) ALL_OLAP2_AW_DIM_HIER_LVL_ORD

(14) ALL_OLAP2_AW_DIM_LEVELS

(15) ALL_OLAP2_AW_PHYS_OBJ

(16) ALL_OLAP2_AW_PHYS_OBJ_PROP

 

 

除了活动目录视图,Oracle也提供了几个动态性能视图,用于展示OLAP对象的一些统计信息,这些DynamicPerformance View都以V$AW开头:

(1)    v$aw_aggregate_op

(2)    v$aw_allocate_op

(3)    v$aw_calc

(4)    v$aw_longops

(5)    v$aw_olap

(6)    v$aw_session_info

 

以上理论知识转自ningoo的blog:

http://www.ningoo.net/html/2007/introduction_of_oracle_olap_component.html

 

二. 添加删除OLAP 组件

MOS: How To Remove Or To Reinstall TheOLAPOption To 10g And 11g [ID 332351.1]

 

这里提供了2种解决方法:

 

2.1 在ORACLE_HOME 级别重建

2.1.1 删除OLAP

       备份DB和oraInventory,在关闭ORACLE_HOME上的所有Instance,使用Universal Installer (OUI) 移除ORACLE_HOME的OLAP 选项。在OUI 中选择升级已经存在的db,在selectoptions 选项可以控制是否启用OLAP。如下图:


Oracle OLAP 组件 重建 说明_第1张图片 


在Unix 和Linux 平台上,也可以直接relink olap_off 的方式来删除,这样就避免使用OUI。

 cd $ORACLE_HOME/rdbms/lib

 make -f ins_rdbms.mk olap_off
 make -f ins_rdbms.mk ioracle

 

       非注册的OLAP将不在db 的banner 中限制,同时v$option  也会显示为FALSE.

 

2.1.2 重新安装OLAP

1)在OUI中添加OLAP 组件,参考上图。

2)添加完毕之后执行如下脚本,在db 级别进行添加。

sqlplus /nolog
SQL> conn /as sysdba
SQL> spool add_olap.log
SQL> @?/olap/admin/olap.sql SYSAUX TEMP;
SQL> @?/rdbms/admin/utlrp.sql
SQL> spool off

 

2.2 在Database 级别重建

2.2.1 删除OLAP

--在dbserver 上开一个session,设定相关的变量,并用sys 用户执行如下脚本:

ORACLE_HOME=your_oracle_home
ORACLE_SID=your_db_sid
PATH=$ORACLE_HOME/bin:$PATH
sqlplus /nolog
SQL> conn / as sysdba


----> Remove OLAP Catalog
SQL> @?/olap/admin/catnoamd.sql


----> Remove OLAP API
SQL> @?/olap/admin/olapidrp.plb
SQL> @?/olap/admin/catnoxoq.sql


----> Deinstall APS - OLAP AW component
SQL> @?/olap/admin/catnoaps.sql
SQL> @?/olap/admin/cwm2drop.sql


----> Recompile invalids
SQL> @?/rdbms/admin/utlrp.sql

 

catnoamd.sqlusedabove will drop the OLAPSYS schema (which is completely OLAP specific).

       --catnoamd.sql 脚本用来drop OLAPSYS 用户。

 

cwm2drop.sqlneedsto be run only in 11g. In 10g, catnoamd.sql already calls it.

       --cwm2drop.sql 只需要在11g中执行。在10g中,catnoamd.sql脚本中已经包含了该脚本,所以不用执行。

 

       If you connectto the database in SQLPLUS, the banner still shows the OLAPoption,this happensbecause the Oracle executable is still aware of OLAP, it islinked with OLAP, andalso the OLAP files are still present in the ORACLE_HOME.

 

Once runningthedeinstall scripts, the utlrp.sql could report invalid objects with SYSandPUBLIC owners. If so, the following SQL can be used to report more detailsonthat:

--删除之后,可能导致一些无效的对象,可以使用如下SQL 来查看具体信息:

 

SQL> select owner,object_name,object_type, status from dba_objects where status='INVALID';

 

       You could getsome invalid objects under SYS and PUBLIC owner, and they are the oldduplicate OLAPSYS objects copied under these schemas when Olap has beeninstalledpreviously.

       Generally,the Olap objects are named with context like %OLAP%, %AWM%, or other Olap wordkeys intheir "object_name" field, however, if it needs a help torecognizethem, then please contact Oracle  Support and create a ServiceRequest toget assistance for this question.

 

       Notethat catnoadm.sql could fail from 10.1.0.5 to 11.1.0.7 release. 

 

       Due to the fact that it refers to three scripts which don't get shipped until 11.2this scriptwill fail.

       Besides that it will error on 7 non-existing synonyms to drop.

 

Prior 11.2, execute thesethree drop synonym statements:

--在11.2 之前,需要执行如下脚本:

SQL> drop public synonym OlapFactView;
SQL> drop public synonym OlapDimView;
SQL> drop public synonym DBMS_ODM;

 

If therearefurther invalid OLAP specific objects after the above removal steps,pleaseconsult Note1060023.1Note565773.1 

       If you do notwant to install OLAP into a newly created database, then in theDatabaseConfiguration Assistant (dbca), select a custom database template anduncheckOracle OLAP in the Database Components wizard step.

 

2.2.2 添加OLAP

Assuming that youcreated your database manually or via DBCA, add the OLAP option to anexistingEnterprise Edition Database.

--假设我们在ORACLE_HOME级别添加了OLAP。

 

Then openaterminal session on the database server machine, set ORACLE_HOME,ORACLE_SIDenvironment variables, and execute some script as user SYS AS SYSDBA,detailsbelow:

--在dbserver 端用SYS 用户执行如下脚本,来创建olap。

 

ORACLE_HOME=your_oracle_home
ORACLE_SID=your_db_sid
PATH=$ORACLE_HOME/bin:$PATH
sqlplus /nolog
SQL> conn /as sysdba
SQL> @?/olap/admin/olap.sql SYSAUX TEMP;

--这个脚本需要30+分钟

 

三. 验证无效对象和组件状态

 

SQL> select count(*) from dba_invalid_objects;

 

 COUNT(*)

----------

       67

 

如果有无效对象,使用如下脚本编译:

SQL> @?/rdbms/admin/utlrp.sql

 

SQL> col comp_id for a15

SQL> col version for a15

SQL> col comp_name for a30

SQL> select comp_id,comp_name,version,status from dba_registry;

 

COMP_ID         COMP_NAME                      VERSION         STATUS

--------------------------------------------- --------------- -----------------

EM              Oracle Enterprise Manager      11.2.0.3.0      VALID

AMD             OLAP Catalog                   11.2.0.3.0      VALID

SDO             Spatial                        11.2.0.3.0      VALID

ORDIM           Oracle Multimedia              11.2.0.3.0      INVALID

XDB             Oracle XML Database            11.2.0.3.0      INVALID

CONTEXT         Oracle Text                    11.2.0.3.0      VALID

ODM            Oracle Data Mining             11.2.0.3.0      VALID

EXF             Oracle Expression Filter       11.2.0.3.0      VALID

RUL             Oracle Rules Manager           11.2.0.3.0      VALID

OWM             Oracle Workspace Manager       11.2.0.3.0      VALID

CATALOG         Oracle Database Catalog Views  11.2.0.3.0      VALID

 

COMP_ID         COMP_NAME                      VERSION         STATUS

--------------------------------------------- --------------- -----------------

CATPROC         Oracle Database Packages and T11.2.0.3.0      INVALID

JAVAVM          JServer JAVA Virtual Machine   11.2.0.3.0      VALID

XML             Oracle XDK                     11.2.0.3.0      VALID

CATJAVA         Oracle Database Java Packages  11.2.0.3.0      VALID

APS             OLAP Analytic Workspace        11.2.0.3.0      INVALID

XOQ             Oracle OLAP API                11.2.0.3.0      VALID

 

17 rows selected.

 

 

相关文档:

DBA_REGISTRY Shows Oracle OLAP Componentsin Status REMOVED [ID 1064322.1]

 

 

 

-------------------------------------------------------------------------------------------------------

版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

Skype: tianlesoftware

Email:   [email protected]

Blog:     http://www.tianlesoftware.com

Weibo: http://weibo.com/tianlesoftware

Twitter: http://twitter.com/tianlesoftware

Facebook: http://www.facebook.com/tianlesoftware

Linkedin: http://cn.linkedin.com/in/tianlesoftware

 

 

-------加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请----

DBA1 群:62697716(满);   DBA2 群:62697977(满)  DBA3 群:62697850(满)  

DBA 超级群:63306533(满);  DBA4 群:83829929   DBA5群: 142216823

DBA6 群:158654907    DBA7 群:172855474   DBA总群:104207940

你可能感兴趣的:(oracle)