Introducing Oracle 11gR2 Edition Based Redefinition or: On Parallel Application Universes

Lucas Jellema 4

 One of the most spectacular new facilities in Release 2 of the Oracle 11g Database is called Edition Based Redefinition – not a name perhaps that suggests any spectacle. EBR (Edition Based Redefinition) is a mechanism that allows on line application upgrade with no planned downtime. In short, the new release is built up in parallel to the existing one, in the same schema and using the same database objects; only the new (modified) objects live in another dimension and do not impact the existing objects. Once the entire set of new and changed objects has been created and recompiled, the database administrator can start routing new sessions to the new release; existing sessions can continue to run against the original set of objects – and new sessions if so desired can also run against the orginal set.

A set of object versions – mutually consistent and interdependent – which in software engineering terms would be duped a release or stripe and in Oracle Software Configuration Manager (Designer) terms a configuration is called an edition in 11gR2 lingo. An Edition is a combination of new objects, new versions of objects and inherited pre-existing versions that together make up a meaningful set that forms the state of the database for a longer or shorter period of time. Releases of applications will typically target a specific Edition in the database.

I had been invited to present on Edition Based Redefinition during yesterday’s launch event for Oracle 11gR2 in The Netherlands. Being the only non-Oracle staff speaker in the presence of (S)VPs was nice and my subject made it possible to tell one of the more interesting stories of the day – which was nice too. Below you will find the presentation I showed the audience yesterday. I will blog later on about the demo I showed – a simple SQL*Plus based demonstration of the multi-dimension world that EBR invites us into.

If you are interested to learn more –

and get some hands-on feel for this spectacular database facility – then join us next week (Tuesday 29th September) for the AMIS Query on Oracle Database 11gR2 (in Nieuwegein, in Dutch, free!). For details and to register, see: AMIS Query – 29 September 2009 – Introducing 11gR2.


(from slideshare)



Oracle 11gR2 On Line Documentation on Edition Based Redefinition.

4 thoughts on “Introducing Oracle 11gR2 Edition Based Redefinition or: On Parallel Application Universes

  1. Carl,
    Actually, it is a nearly zero downtime. After you did EBR enabled on your apps, then it has the capabilities to apply online patching. And it will have a minute-based downtime to switch the pre-upgrade and post-upgrade sessions. During this phase, you need to bounce the mid-tier.


  2. Hi Kumar,

    Do you mean the JDBC version? Or the Java version that is used for the Aurora VM inside the Oracle Database? (the latter is JDK 5)



  3. Hello Lucas,

    Congratulation for this presentation regarding EBR (Edition-based Redefinition)!!!

    But I don’t see how we can achieve zero downtime.

    Let’s take an example:

    From the pre_upg edition to the post_upg edition we have to convert the data in one table.

    The behavior in the edition triggers and view is based on the state of the data in this table.

    If we want zero downtime, we have to synchronize the commit (that modified the data in the table) with the creation of the edition triggers and views. It’s not possible to have everything set at the same time. Thus we can have glitch…

    Am I clear enought?

    Best regards.


Comments are closed.

Next Post

Starting WebLogic managed servers without providing username and password manually - SOA Suite 11g tip

After installing the Oracle SOA suite 11g, you will notice that you have to enter username and password  for each managed server during startup and shutdown. This in contrary to the administration server where you don’t need to enter username and password at startup. I was wondering if there was […]
%d bloggers like this: