ORACLE WORKSPACE MANAGER 介绍
1 Workspace Manager介绍Oracle Workspace Manager提供了为不同表建立不同版本的架构。版本管理(Workspace manager)是Oracle 11g的新特性,它内嵌于oracle数据库,允许开发人员和DBA在同一个数据库中对数据的多版本进行管理。它使用作为虚拟环境的工作区组织管理产品数据,保留数据的多个版本。相对于传统的数据版本管理方式,能更加节约时间、资金投入和人员投入。
Workspace Manager能够帮助你对数据库中的多个表进行版本控制。当用户表被起用了版本控制之后,表中的所有行都支持多版本存储。版本的架构对于最终用户来说完全是透明的,应用在起用版本控制的数据库中执行查询、插入、更新和删除数据像平常没有起用版本功能一样。
当数据库中的表起用了版本控制,用户将能查询到他想查询表中某个记录的某一版本数据。如果你不想再对表起用版本控制,你能让版本化的表取消版本控制。
1.1 Workspace Manager架构数据库中可以存在一个Workspace Manager架构。例如:一个Workspace能够是一个或多个Workspace的父亲。在缺省状态下,当一个Workspace建立,总是从最顶层数据库WORKSPACE开始,即新建立的一个Worspace是LIVE Workspace的儿子。Workspace名字是区分大小写的、Workspace名字长度不能超过30个字符并且Workspace的层级不能超过30。
图一展示了一个Workspace架构。Workspace1和Workspace4是LIVE Workspace的儿子,Workspace2和Workspace3组成了Workspace1,Workspace5单独组成了Workspace4。
下面演示几个例子:
l 查看现在所处的Workspace
SQL> select dbms_wm.getworkspace from dual;
GETWORKSPACE
--------------------------------------------------------------------------------
LIVE
l 建立WORKSPACE1
SQL> exec dbms_wm.createworkspace(workspace => 'WORKSPACE1');
PL/SQL procedure successfully completed
l 查询Workspace架构信息
SQL> select workspace,parent_workspace,owner from user_workspaces;
WORKSPACE PARENT_WORKSPACE OWNER
------------------------------ ------------------------------ ------------------------------
WORKSPACE1 LIVE SS
l 进入Workspace1
SQL> exec dbms_wm.gotoworkspace(workspace => 'WORKSPACE1');
l 查询现在所处的Workspace
PL/SQL procedure successfully completed
SQL> select dbms_wm.getworkspace from dual;
GETWORKSPACE
--------------------------------------------------------------------------------
WORKSPACE1
l 对Workspace中的TEST表使用版本控制功能
SQL> exec dbms_wm.enableversioning(table_name => 'TEST',hist => 'VIEW_WO_OVERWRITE');
PL/SQL procedure successfully completed
l 对TEST表取消版本控制功能
exec dbms_wm.disableversioning(table_name => 'TEST');