workspace manager架构数据库中可以存在一个workspace manager架构。例如:一个workspace能够是一个或多个workspace的父亲。在缺
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');
更多oracle相关信息见oracle 专题页面 ?tid=12