R12.2——adop 数据库 Edition-Based Redefinition (EBR)

In the database, there is also a run edition and patch edition, but they do not swap roles back and forth as in the file system: the patch edition only comes into existence during apatching cycle, and becomes the new run edition at the end of the cycle. The former database run edition (the old edition) and the obsolete objects it contains are discarded at the end of an online patching cycle, and the space reclaimed during the cleanup phase.

关于EBR,转载一篇文章:http://www.itpub.net/thread-1230250-1-1.html

 在11gR1之前,当业务系统需要升级的时候,我们常常需要停下,从而保证版本的一直性和访问的连续性,对于一些APP变更频繁但又不允许经常停应用的IT系统,这实在是一个很头大的问题,那么现在好了,从11gR2开始,Oracle引入了一个edition(版本)的概念,借助这个特性,我们可以实现app的online upgrade.同时该特性允许pre-upgrade application and the post-upgrade application并存,等我们确认post-upgrade app没问题的时候再把pre-upgrade app切换下来,在这期间整个APP的访问是不受影响的.从而可以最大程度的减少application down time.
 
    实际上这个特性,在11gR1中已经提供了,只不过需要通过一个隐藏参数来控制
    _edition_based_redefinition 11gR1中该参数默认是false.
    11gR2中,该参数已经被废弃!
   
    关于的edition-based redefinition的一些特性
    1)一个database至少有一个缺省的edition
       SQL> SELECT * FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME = 'DEFAULT_EDITION';
       PROPERTY_NAME     PROPERTY_VALUE   DESCRIPTION
       ----------------- ---------------- ------------------------------------
       DEFAULT_EDITION   ORA$BASE          Name of the database default edition
       SQL> 
    2)设置数据库的缺省edition
       alter database DEFAULT EDITION = edition_name;
 
    3)与edition相关的系统权限有
       SQL> select name from system_privilege_map where name like '%EDITION%';
       NAME
       ------------------
       ALTER ANY EDITION
       DROP ANY EDITION
       CREATE ANY EDITION
       SQL>
       这些系统权限都默认授予了DBA角色,也就是说任何具有DBA role的用户都可以执行与Edition-Based Redefinition相关的任务。
       这些任务包括
       Grant or revoke privileges to create, alter, and drop editions
       Enable editions for a schema 
       Set the database default edition
    4)与edition相关的数据字典
       *_editions    -->列出了当前数据库中的所有的EDITIONS,缺省情况下ORA$BASE
       SQL> select * from dba_editions;
       EDITION_NAME   PARENT_EDITION_NAME  USABLE
       -------------- -------------------- ------
       ORA$BASE                            YES
       *_objects      -->描述当前版本下对应的objects的可见性(是实际对象还是继承对象)
       SQL> select owner,object_name,edition_name from dba_objects;
       *_objects_ae    -->描述当前数据库中每个真实的objects(所有版本)
       SQL> select owner,object_name,edition_name from dba_objects_ae;

    5)通过不同的edition连接数据库
       从11gR2开始,SQL*Plus这样的工具也有对edition的连接支持
       <logon> is: {<username>[/<password>][@<connect_identifier>] | / }
                   [AS {SYSDBA | SYSOPER | SYSASM}] [EDITION=value]
       默认情况下EDTION=DEFAULT_EDITION,也就是对应当前数据库的缺省版本
    6)11gR2中editions支持的objects type有
              ■ Synonym
              ■ View
              ■ Function
              ■ Procedure
              ■ Package (specification and body)
              ■ Type (specification and body)
              ■ Library
              ■ Trigger
    7)用户要想使用edition,必须先Enable editions for a schema。
       注意:这是一个不可逆的动作,一旦enable了就不能disable了
       比如
       conn /as sysdba
       alter user study enable editions;
       通过如下语句可以查看某个schema是否enable editions.
       select username,editions_enabled from dba_users;       
       注:这里有一个隐藏参数来控制是否对所有的用户enable editions,默认是false,需要按照上面的方法去enable.

           _enable_editions_for_users FALSE enable editions for all users

通过查询R12.2系统中用户,可以发现,所有产品用户,APPS用户都支持EBR功能:

     

我们可以对比下,在R12.1的环境中,查询,发现所有用户都没有开启EBR功能:

logical view:

EBR自动管理对象的版本信息。但是,并不是所有的对象都是有版本信息的,比如一些交易(事务)数据。

所以,R12.2中,引入了一个新的概念,叫数据模型的logical view(逻辑视图),

这个的实现,是通过synonyms(同义词)和 editioning views 版本视图。 logical view (逻辑视图)实现了  把补丁引进的数据模型 和 正在运行的应用分开的功能。

数据模型的改变不会对当前运行的应用程序有任何的影响。数据模型的改变被实现为表中创建新的列,这些列在应用的patch edition中,通过editioning view展示在patch edition中。补丁新建的表,也会根据这种规则实现版本的屏蔽。

Cross-Edition Triggers:

一种新的对象:交叉版本触发器,被用来同步在线补丁的数据。这种触发器,提供了一种同步和转换run edition和patch edition表列的逻辑机制。

特别地,交叉版本触发器允许run edition发出信号:现在需要进行数据更新。在 insert into, delete from, or update of, FND_TABLE的时候,这个触发器被触发。举个栗子:有个patch想要更新一列:DESCRIPTION,从upper case更新成mixed case。edition view 就映射出同一个表的不同的视图(run and patch edition),这个时候,当前运行的应用程序仍会看到的是原先的upper case。但是patched application就会看到这个列的数据是mixed case。这个更新的列就是被cross-edition trigger管理的。In summary, cross-edition triggers are used to upgrade both existing data and ongoing changes that occur while the run edition remains in use.

所谓的版本视图,可以被看做是一个cover layer或者数据的逻辑表示层。所有的代码(包括(Oracle E-Business Suite, custom, or third-party)必须通过这个cover layer去访问Oracle E-Business Suite的数据。

关于数据库中的seed data:


In terms of editions and seed data, the run edition:
• Always operates on a private copy of the seed data
• Is never modified by patch application
In contrast, the patch edition:4-18    Oracle E-Business Suite Concepts
• Runs the seed data loader
• Prepares the relevant table for patching
• Copies all table rows
• Loads seed data changes into the (patch) copy
Updates to seed data in the run edition are automatically propagated to the patch 
edition by the use of cross-edition triggers

时间: 2024-10-24 15:22:41

R12.2——adop 数据库 Edition-Based Redefinition (EBR)的相关文章

r12.2——adop cycle 详解

prepare: prepare阶段要做的东西是根据上下文环境决定的,比如你是在这个系统上第一次运行prepare:再比如你是上次的apply 阶段失败后abort了,在运行的:再比如你是在cutover之后运行的... Important:在运行prepare阶段之前,你必须保证满足如下条件(mgP77):如下空间必须满足:• SYSTEM tablespace has a minimum of 25 GB of free space• APPS_TS_SEED tablespace has

ORACLE R12.2 ADOP ERRORS

ORACLE R12.2 ADOP ERRORS adop errors at fsclone Stage. Error :  1. Error occurred while executing <perl /sid/applmgr/fs2/EBSapps/appl/ad/12.0.0/patch/115/bin/txkADOPPreparePhaseSynchronize.pl2. Error occurred while CONFIG_CLONE Patch File System from

r12.2——adop简介

机制: 安装补丁时,你既可以让adop提示信息指导你安装,也可以直接输入需要的信息而不需要adop提示. --读取patch元数据,获取补丁的dependencies和requirements. --如果这个补丁可以安装,从之前的补丁session里上传补丁信息到数据库. --读取并验证补丁drivers文件,读取产品drivers文件 --从产品库和已经存在的文件的版本信息中,和这个补丁,对比对象模式的版本号. --备份所有将要被此补丁改变的文件. --拷贝文件.(详细信息见下文) --归档l

ebs系统架构简介2——三层结构和Environment file下篇

整理自:http://www.itpub.net/thread-1409361-1-1.html Database Tier:我们看R12的后台数据库. Oracle Applications 充分使用 Oracle 数据库提供的各种数据类型:select object_type, count(*) from dba_objects where owner not like '%SYS%' group by object_type order by 1; OBJECT_TYPE         

Vinux 3.2.1发布 基于Ubuntu的发行版

Vinux3.2.1现在可供下载.这与最近发布Vinux 3.2的主要区别是pulseaudio"用户"模式运行,而不是"系统"模式,而默认情况下它引导 pulseaudio,可以防止在少数的声卡启动崩溃,但它意味着查阅speakup不是从Live CD或安装后立即进行.不过,现在有两个简单的命令,在重新启动机器一起切换pulseaudio的从用户到系统模式.此版本也包含UNetbootin访问Zenity前端,http://www.aliyun.com/zixun

Red Gate系列之二 SQL Source Control 3.0.13.4214 Edition 数据库版本控制器 完全破解+使用教程

原文:Red Gate系列之二 SQL Source Control 3.0.13.4214 Edition 数据库版本控制器 完全破解+使用教程 Red Gate系列之二 SQL Source Control 3.0.13.4214 Edition 数据库版本控制器 完全破解+使用教程 Red Gate系列文章: Red Gate系列之一 SQL Compare 10.2.0.1337 Edition 数据库比较工具 完全破解+使用教程 Red Gate系列之二 SQL Source Cont

Red Gate系列之一 SQL Compare 10.4.8.87 Edition 数据库比较工具 完全破解+使用教程

原文:Red Gate系列之一 SQL Compare 10.4.8.87 Edition 数据库比较工具 完全破解+使用教程 Red Gate系列之一 SQL Compare 10.4.8.87 Edition 数据库比较工具 完全破解+使用教程 Red Gate系列文章: Red Gate系列之一 SQL Compare 10.4.8.87 Edition 数据库比较工具 完全破解+使用教程 Red Gate系列之二 SQL Source Control 3.0.13.4214 Editio

时间序列数据库InfluxDB初探(r12笔记第74天)

  性能监控中的很多数据都是根据时间维度来生成的,就算是很少的几台服务器,如果设置了大量的监控项,每天的数据量也是很客观的,再加上是成千上万的服务器,这个量级就很大了.   时间序列在自动化运维/智能运维的技术会场中经常能听过,而自己在QCon上对于宇辰分享的时间序列相关的主题很感兴趣.里面有非常多的门道和空间,其实等我意识到的时候,外面都不知道火了多久了.   所以今天就抽空看了下这方面的东西,不对的地方还希望多多指正.   时间序列(Time Series)数据库目前的使用情况如何,可以通过

Oracle数据库重启后密码失效的问题(r12笔记第91天)

  前几天,我和系统运维的同事处理一个看似诡异的问题,他找到我说应用服务器启动的时候报了DB的Error,但是错误信息有限,他也没法完全定位到错误的原因,所以就希望我来帮忙看看这个问题是怎么回事,怎么解决.    从应用服务启动的日志来看,错误信息是连接池的地方有了问题. Error: 2017-06-09 10:04:59 init connpool:one or more conn open error. Error: 2017-06-09 10:12:50 init connpool:on