test
Oracle Workspace Manager 是什么? Oracle Workspace Manager 是 Oracle9i 的一个新特性,它使应用程序不必对应用程序的 SQL (DML)进行任何更改,便可将相关内容透明安全地保存在适当位置,而且允许同时对同一生产数据进行读写访问。Workspace Manager 还支持 Oracle8i 和 Oracle Spatial,并得到 Oracle9i Enterprise Manager 的支持。 应用程序使用工作区(Workspaces)可做什么?
什么类型的应用程序可从 Workspace Manager 受益?工程和 Web 设计,以及地理信息系统(GIS)都是需要管理复杂的、长时间的数据库事务的应用程序示例,这种事务可能需要数天、数星期或数月才能完成。传统的并发控制技术通常是不够完善的,因为它们通常将所有被更改的记录均锁定直至该事务完成。 Workspace Manager 为应用程序提供了什么好处?Workspace Manager 为应用程序提供了三个主要好处。首先,工作区改善了对数据库中数据访问的并发性。它们允许在一个或多个工作区中对生产数据进行版本标记,同时允许同时访问该生产数据。其次,工作区版本标记和保存点创建了审计线索,支持回滚或查看特定时间点存在的数据的更改历史。最后,工作区可更方便地创建多个数据场景。每个场景可在不同的工作区中进行管理以进行“假设”分析。 Workspace Manager 能为开发人员和 DBA 提供了什么好处?Workspace Manager 能为开发人员和 DBA 带来了一些好处。Workspace Manager PL/SQL API 包括完整的工作区语义集,其目的是:对具有或不具有历史数据的表启用版本标记;创建、刷新、合并、回滚以及删除工作区;设置、转至以及压缩保存点;管理工作区特定权限、访问模式和锁定;比较工作区和保存点;以及解决工作区之间的冲突。通过仅对发生更改的行进行版本标记并将新版本放置到相同的表空间,使存储扩展和行扩展最小化。 Workspaces Manager 紧密集成到 Oracle9i 中,包括对引用完整性、锁定、触发器、导入和导出等的支持。通过 Oracle Enterprise Manager 可以很方便地管理工作区,也可使用 Java API 通过 Web 访问工作区。 Workspace Manager 是 Oracle9 i、Oracle Spatial、Oracle8i 的特性吗?Workspace Manager 是 Oracle9i 的新特性。长期事务处理(工作区)功能是一个非常强大和独特的特性。其它通用的 DBMS 还不具有这个特性。 Workspace Manager 也支持 Oracle8i、Oracle Spatial 版本 8.1.7,并受 Oracle9i Enterprise Manager 支持。 Workspace Manager API 包括哪些功能?
工作区 操作 可从父工作区刷新数据,与父工作区合并数据以及将数据回滚到以前的保存点等。 保存点标记了一个时间点,工作区中的操作可回滚到该时间点。显式保存点由用户创建。一个保存点将导致在下一次更新某行时创建该行的一个新版本。可回滚自某个显式保存点以来对该行进行的更改。隐式保存点由 Workspace Manager 在创建新的子工作区时创建,子工作区可看到在该子工作区创建时数据库当时的一致性视图。子工作区中的用户在子工作区中执行一个刷新操作前,无法看到在父工作区中创建的新版本。 历史跟踪所有版本的时间和日期,用户可看到数据库在某个时间点的情况。 工作区权限使用户可访问、创建、删除、回滚及合并工作区。授予 DBA 的 WM_ADMIN_ROLE 的权限可以启用所有操作。这种权限可以是整个系统范围的,也可以是特定工作区范围的。Workspace Manager 权限集成在 Security Manager 中。 差异可存在于任何两个工作区 或指定工作区内的两个保存点之间。 行状态可能是以下之一:未更改、已更新、已删除、已插入或不存在。“不存在”表示特定主键的行在该工作区或基础工作区(共同祖先)中不存在,但已插入到别的工作区,所以它在这个工作区不存在。 冲突在两个工作区更改相同的行时就会出现。在子工作区与父工作区合并时必须解决这些冲突。可以采取表(批处理模式)方式,也可以逐个解决冲突的方式。批处理模式选项可通过选择父工作区、子工作区、公共祖先工作区(对父工作区和子工作区而言,称为基础工作区)或 None 中的值来解决所有的差异。None 表示不解决冲突。如果对每个冲突都从这些方法中进行选择并指定某一个值,则对每个冲突都会提示一次。 Workspace Manager 是如何工作的?Workspace Manager API 是作为 PL/SQL 程序包实现的,并随 Oracle9i 自动安装。使用 API 或 Oracle Enterprise Manager 中的 Version Enabled Tables(版本化表)文件夹,可以有选择地对现有数据库或新建数据库中某些表或所有表启用版本标记。在该数据库中有一个工作区层次结构。默认情况下,当创建一个工作区时,将从最顶层的数据库工作区或从 活动 数据库工作区创建。 工作区中发生的所有更改都是由传统的短事务进行的。创建显式保存点将导致在下次更新某行的时候创建该行的一个新版本。 在一个或多个工作区中对同一生产数据进行的更改将自动捕获为该数据的新版本。通过仅对发生更改的行进行版本标记并将新版本放置到相同表空间,可使存储扩展和行扩展最小化。 在将更改合并到 活动 工作区时将自动检测冲突,这可由 Oracle Enterprise Manager 的用户或通过 API 编程来解决。 Workspace Manager 如何启用表的版本标记?ENABLEVERSIONING 过程用于启用表的版本标记。它执行以下任务:
应用程序用户如何进入工作区?在登录时,用户位于活动工作区。GOTOWORKSPACE 过程可将当前用户会话转至目的工作区。用户对数据进行的所有后续修改均发生在目的工作区的最新版本上。 新版本存储在工作区中吗?不是。 工作区不是一个存储机制。新的版本存放在启用版本标记的表及其关联的表空间中。工作区则能够方便地将一组更改(新的行版本)组合在一起,并使这些更改对工作区外的其它用户不可见,直至更改与生产数据合并。 Workspace Manager 可禁止某个表的版本标记吗?DISABLEVERSIONING 过程可用于抵消 ENABLEVERSIONING 过程的效果。它删除用于行版本标记的 Workspace Manager 基础结构,且不会影响 活动 工作区中任何的用户数据。该工作区的层次结构和任何保存点仍然存在,但所有行均与 活动 工作区相同。 如果在禁止版本标记的表中某行有多个版本,则只保留该行最近的版本。 Workspace Manager 在工作区中提供了哪些安全性?Workspace Manager 在标准的 Oracle 数据库权限之外还实现了一组权限。它们是:ACCESS(访问)、CREATE(创建)、REMOVE(删除)、MERGE(连接) 以及 ROLLBACK(回滚)。这些权限可分为两类:
每个权限都可以使用或不使用授权选项来授权。授权选项使被授予该权限的用户可以将该权限再授予其它用户。 Workspace Manager 提供了哪些补充的锁定功能?除了支持传统的 Oracle 短事务所提供的锁定,Workspace Manager 还提供了两种类型的版本锁定来帮助消除父工作区和子工作区之间的行冲突。
锁定是一个独立于会话所在工作区的会话属性或工作区的属性。 如果是对某个会话启用锁定,则将对其参与的所有工作区内的行进行锁定。在两种锁定模式中,*其它*工作区内的用户,而不是发生锁定(某行)的工作区内的用户*无法*更改该行。也可将默认的锁定模式设置为适用于整个工作区。 锁定动作包括:
什么是保存点?保存点就是一个时间戳,一个可将操作回滚到该点的工作区时间点。通过创建保存点,可以防止在该保存点创建之前工作区中所创建的内容被损坏。创建保存点将导致在下一次更新某行时创建该行的一个新版本。 保存点有两种类型:
如何进行合并或刷新操作,及如何解决工作区之间的冲突?工作区合并就是将该工作区内进行的更改应用到其父工作区,并可选择是否删除该工作区。在合并过程中子工作区被冻结为 NO_ACCESS 模式,而父工作区则冻结为 READ_ONLY 模式。 在子工作区和父工作区或在两个对等工作区中发生更改的行可能导致数据冲突。冲突是在合并或刷新操作期间发现的:
冲突将以冲突视图的方式告诉用户,每个表有一个冲突视图。该冲突视图列出了发生冲突的行的主键,以及两个表空间中形成冲突的行的各列值。冲突可通过使用 ResolveConflicts 过程来解决。在这个过程期间,用户可从基础表、子表或父表中选择该行的值。如果在父工作区和子工作区之间没有冲突,则这两个工作区内的数据可进行合并。在执行 MergeWorkspace 或 RefreshWorkspace 操作前必须解决冲突。 工作区环境是如何管理的?Database Workspace Manager 与 Oracle Enterprise Manager (OEM) 控制台集成在一起。Workspace Manager 也可以创建和维护元数据视图,存放有助于管理工作区环境和故障诊断的信息。这些视图对用户而言是只读的。 |
热门下载 | ||