SlideShare a Scribd company logo
1 of 96
Download to read offline
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Edition-based redefinition:
the key to online application upgrade
Bryn Llewellyn
Distinguished Product Manager
Database Division
Oracle HQ
OakTable Member
twitter: @BrynLite
Summer 2016
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Online Application Upgrade
– the final piece of the HA jigsaw puzzle
High Availability
Survive
Hardware Failure
Planned Software Changes
Change Infrastructure:
Operating System, Oracle Database
Change objects’
physical properties
Change application’s
database objects
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Online Application Upgrade
– the final piece of the HA jigsaw puzzle
High Availability
Survive
Hardware Failure
Planned Software Changes
Change Infrastructure:
Operating System, Oracle Database
Change objects’ meaning: patching
and upgrading
Change objects’
physical properties
Change application’s
database objects
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Agenda
Scope of this presentation
The challenge – and the statement of the solution
Description of case study
Explanation of the edition, the editioning view, and the crossedition trigger
Readying an application for EBR
Implementation of case study as an EBR exercise
EBR task flow
Conclusion / Q&A
1
2
3
4
5
6
7
8
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Scope of this presentation
• This presentation focuses on capabilities, new in Oracle Database 11.2, and
enhanced in 12.1, that support online upgrade of the database tier of an
application
• The online upgrade of other tiers of the application will need their own
specific solutions. These are only sketched in this presentation
• The take-away from this presentation is that Oracle Database offers both
an isolation mechanism to allow pre- and post-upgrade application
backends to co-exist in the same database, and a way for client code to
choose the particular isolated environment that it wants
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Agenda
Scope of this presentation
The challenge – and the statement of the solution
Description of case study
Explanation of the edition, the editioning view, and the crossedition trigger
Readying an application for EBR
Implementation of case study as an EBR exercise
EBR task flow
Conclusion / Q&A
1
2
3
4
5
6
7
8
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Online Application Upgrade
• Supporting online application upgrade means maintaining uninterrupted
availability of the application
• But end-user sessions can last tens of minutes or longer
– Users of the old app don’t want to abandon an ongoing session
– Users wanting to start a session must use the new app, but cannot wait until no-one
is using the old app
• This implies that it must be possible to use the pre-upgrade application and
the post-upgrade application at the same time – a.k.a. hot rollover
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
The challenge
• The installation of the upgrade into the production database must not
perturb live users of the pre-upgrade application
– Many objects must be changed in concert. The changes must be made in privacy
• Transactions done by the users of the pre-upgrade application must by
reflected in the post-upgrade application
• For hot rollover, we also need the reverse of this:
– Transactions done by the users of the post-upgrade application must by reflected in
the pre-upgrade application
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
The solution: edition-based redefinition
• EBR brings these key features: the edition, the editioning view,
and the crossedition trigger
– Code changes are installed in the privacy of a new edition
– Data changes are made safely by writing only to new columns
or new tables not seen by the old edition
– An editioning view exposes a different projection of a table into each edition
to allow each to see just its own columns
– A crossedition trigger propagates data changes made by the old edition into
the new edition’s columns, or (in hot- rollover) vice-versa
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
Edition V1
App V1
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
Edition V1
App V1
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
Edition V1
App V1
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
Edition V1
App V1
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
Edition V1
App V1
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
Edition V1
App V1
Edition V2
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
Edition V1
App V1 App V2
Edition V2
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
Edition V1
App V1 App V2
Edition V2
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
Edition V1
App V1 App V2
Edition V2
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
Edition V1
App V1 App V2
Edition V2
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
Edition V1
App V1 App V2
Edition V2
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
Edition V1
App V1 App V2
Edition V2
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
Edition V1
App V1 App V2
Edition V2
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
Edition V1
App V1 App V2
Edition V2
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
Edition V1
App V1 App V2
Edition V2
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
Edition V1
App V1 App V2
Edition V2
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
Edition V1
App V2
Edition V2
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover across the stack
App V2
Edition V2
Traffic Director
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Agenda
Scope of this presentation
The challenge – and the statement of the solution
Description of case study
Explanation of the edition, the editioning view, and the crossedition trigger
Readying an application for EBR
Implementation of case study as an EBR exercise
EBR task flow
Conclusion / Q&A
1
2
3
4
5
6
7
8
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Description of case study
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Case study
• The HR sample schema, that ships with Oracle Database, represents phone
numbers in a single column:
– Diana Lorentz 590.423.5567
– John Russell 011.44.1344.429268
• Users now need to ring phone numbers from any country in the world
• So we want a uniform representation with two columns:
– Country Code
– Number Within Country
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Case study
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Agenda
Scope of this presentation
The challenge – and the statement of the solution
Description of case study
Explanation of the edition, the editioning view, and the crossedition trigger
Readying an application for EBR
Implementation of case study as an EBR exercise
EBR task flow
Conclusion / Q&A
1
2
3
4
5
6
7
8
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
The edition – setting the stage
• Scenario – for now think only about synonyms, views, and PL/SQL units
– The application has 1,000 mutually dependent code objects
– In general, there’s more than one schema
– They refer to each other by name – in general, by schema- qualified name
– The upgrade needs to change 10 of these
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
The edition – setting the stage
1,000 v1 objects
900 unchanged v1 objects
+
10 changed v2 objects
Pre-upgrade application backend
Post-upgrade application backend
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
The edition – setting the stage
• Of course, you can’t change the 10 objects in place because this would
change the pre-upgrade app
• How can an old and a new occurrence of the “same” object co-exist?
• Before EBR, the only dimensions that determine which object you mean,
when one object refers to another, are its name and its owner
• In short, the naming mechanisms, historically, were not rich enough to
support online application upgrade
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
The edition extends the naming mechanism
• EBR introduces the new nonschema object type, edition – each edition can
have its own private occurrence of “the same” object
• A database must have at least one edition
• You create a new edition as the child of an existing edition – and an edition
can’t have more than one child
• A database session specifies which edition to use
(of course, the database has a default edition)
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
The edition extends the naming mechanism
• Through 11.1, an object is identified by its name and its owner
• From 11.2, an editioned object is identified by its name, its owner,
and the edition where it was created
• However, when you identify it you can mention only its name and owner.
This reference is interpreted in the context of a current edition
– in SQL execution
– in the text of a stored object
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
The semantic model for “create edition”
• When you create a new edition, every editioned object
in the parent edition is copied into the new edition
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
The mental model of the implementation
Object_1
Object_2
Object_3
Object_4
Pre-upgrade edition
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
The mental model of the implementation
Pre-upgrade edition Post-upgrade edition
Object_1
Object_2
Object_3
Object_4
Object_1
Object_2
Object_3
Object_4
is child of
(inherited)
(inherited)
(inherited)
(inherited)
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
The mental model of the implementation
Pre-upgrade edition Post-upgrade edition
Object_1
Object_2
Object_3
Object_4
Object_1*
Object_2*
Object_3
Object_4
is child of
(actual)
(actual)
(inherited)
(inherited)
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
The mental model of the implementation
Pre-upgrade edition Post-upgrade edition
Object_1
Object_2
Object_3
Object_4
Object_1*
Object_2*
Object_3
Object_4
is child of
Pre-upgrade edition
(dropped)
(actual)
(inherited)
(inherited)
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Editions
• If your upgrade needs only to change synonyms, views, or PL/SQL units,
you now have all the tools you need
• Simply run the scripts that you, anyway, have written using a new edition
while the application stays online
• Then change the default edition and let new session start in the new
edition
• No “package state discarded” errors ever again!
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Editionable and noneditionable object types
• Not all object types are editionable
– Synonyms, views, and PL/SQL units of all kinds (including, therefore, triggers
and libraries), and are editionable
– Objects of all other object types – for example tables – are noneditionable
• You version the structure of a table manually
– Instead of changing a column, you add a replacement column
– Then you rely on the fact that a view is editionable
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Editioning views
• An editioning view may only project and rename columns
• You can’t have more than one editioning view for a particular table in a
particular edition
• The EV must be owned by the table’s owner
• Application code should refer only to the logical world
• You can create table-style triggers (before or after statement or each row)
on an editioning view using the “logical” column names
• A SQL optimizer hint can request an index on the physical table by
specifying the “logical” column names
• Like all views, an editioning view can be read-only
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Editioning views – performance
• Any SQL statement that refers to one, or several, EVs will get the same
execution plan as the statement you’d get if you replaced each of those
references, by hand, with a reference to the table that the EV covers
• So using an EV in front of every table brings no performance consequences
• Tests have proved this
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Editioned and noneditioned objects – slight return
• An object whose type is noneditionable is never editioned
• An object whose type is editionable is editioned only when you request it
for that object (requires that the owner is editions-enabled)
– Starting with Version 12.1, you control the editioned state
at the granularity of the single name
• Theorem (the NE-on-E prohibition):
a noneditioned object cannot ordinarily depend on an editioned object
– For example, a table cannot depend on an editioned UDT
– If you want to use a type as the datatype for a column,
that UDT must not be editioned
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Materialized views and indexes on virtual columns
• Starting with Version 12.1, objects of these kinds have metadata
that is explicitly set by the create and alter statements
– the evaluation edition explicitly specifies the name of the edition in which
the resolution of editioned names will be done
• within the closure of the object’s static dependency parents (at compile time)
• and for those objects that are identified dynamically during SQL execution (at run time)
– The usable edition range explicitly specifies the set of adjacent editions
within which the optimizer will consider the object, for query re-write,
when computing the execution plan
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Public synonyms
• A public synonym is just a synonym that happens to be owned by
the Oracle-maintained user called “public”
• In 11.2, “public” cannot be editions enabled, so a public synonym that tried
to denote an editioned object would violate the NE-on-E prohibition
• Starting with Version 12.1, “public” is editions enabled,
but all existing public synonyms are noneditioned at the per-object level
• You can now make your own public synonyms editioned
at the per-object level
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Tables with UDT columns
• An ordinary (as opposed to virtual) column cannot specify
the evaluation edition or the usable edition range metadata
• Therefore, a UDT that defines the datatype for a table column
must remain noneditioned
• In an EBR exercise, if the aim is to redefine the UDT,
then the “classic” replacement column paradigm is used
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
The crossedition trigger
• Of course, DML does not stop during online application upgrade
• If the upgrade needs to change the structure that stores transactional data
– like the orders customers make using an online shopping site – then
the installation of values into the replacement columns must keep pace
with these changes
• Triggers have the ideal properties to do this safely
• Each trigger must fire appropriately to propagate changes made
to pre-upgrade columns into the post- upgrade columns – and vice versa
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
The crossedition trigger
• Crossedition triggers directly access the table
• They have special firing rules
• You create crossedition triggers in the Post_Upgrade edition
– The paradigm is: don’t do any DDLs in the Pre_Upgrade edition
• The firing rules rules assume that
– Pre-upgrade columns are changed – by ordinary application code – only by sessions
using the Pre_Upgrade edition
– Post-upgrade columns are changed only by sessions using the Post_Upgrade edition
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
The crossedition trigger
• A forward crossedition trigger is fired by application DML issued by
sessions using the Pre_Upgrade edition
• A reverse crossedition trigger is fired by application DML issued by
sessions using the Post_Upgrade edition
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Why such a long name?
• DDL stands for data definition language
• “create or replace” and “alter” re-define an existing object
– these bare commands are in-place redefinition
• Online table redefinition (there’s that word again) creates a secret copy,
keeps it in step, and then does the twizzle. Similar for online index rebuild
– this is copy-based redefinition
• Edition-based redefinition lets you redefine many objects in concert
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Agenda
Scope of this presentation
The challenge – and the statement of the solution
Description of case study
Explanation of the edition, the editioning view, and the crossedition trigger
Readying an application for EBR
Implementation of case study as an EBR exercise
EBR task flow
Conclusion / Q&A
1
2
3
4
5
6
7
8
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Readying an application for EBR
– your very last old-fashioned offline upgrade to
buy your entry ticket to the wonderful world
of edition-based redefinition
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
The design before EBR adoption
• Application code accesses tables directly, in the ordinary way
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Readying the application for editions
• Put an editioning view in front of every table
– The EV and the table it covers can’t have the same name
– Rename each table to an obscure but related name (e.g. append an underscore,
or lowercase the name)
– Create an editioning view for each table that has the same name
that the table originally had
• NOTE:
– If a schema has an object, whose type is noneditionable, that depends on an object
whose type is editionable, then the adoption plan must accommodate this
(using new-in-12.1 functionality) by controlling the editioned state of objects
whose type is editionable, at the granularity of the individual object
– Else, the editioned state can be conveniently set for the whole schema
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Readying the application for editions
• Revoke privileges from the tables and grant them to the editioning views
• Move VPD policies to the editioning views
• “Move” triggers to the editioning views
– Just drop the trigger and re-run the original (or mechanically edited)
create trigger statement to recreate it on the editioning view
• Of course
– All indexes on the original Employees table remain valid but User_Ind_Columns
now shows the new values for Table_Name and Column_Name
– All constraints (foreign key and so on) on the original Employees remain in force
for Employees_
• NOTE: this readying work must be done by the developers
of the application that adopts EBR
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Agenda
Scope of this presentation
The challenge – and the statement of the solution
Description of case study
Explanation of the edition, the editioning view, and the crossedition trigger
Readying an application for EBR
Implementation of case study as an EBR exercise
EBR task flow
Conclusion / Q&A
1
2
3
4
5
6
7
8
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Case study
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
PK Phone ...
Employees_
Pre-upgrade
Employees Maintain_Emps
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
PK Phone ...
Employees_
Employees Maintain_Emps
Employees Maintain_Emps
Pre-upgrade
Post-upgrade
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Employees Maintain_Emps
Employees Maintain_Emps
PK Phone #Cntry...
Employees_
Pre-upgrade
Post-upgrade
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Employees Maintain_Emps
PK Phone #Cntry...
Employees_
Employees Maintain_Emps
Pre-upgrade
Post-upgrade
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Employees Maintain_Emps
PK Phone #Cntry...
Employees_
Employees Maintain_Emps
Fwd_Xed
Pre-upgrade
Post-upgrade
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Employees Maintain_Emps
PK Phone #Cntry...
Employees_
Employees Maintain_Emps
Pre-upgrade
Post-upgrade
Fwd_Xed
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Employees Maintain_Emps
PK Phone #Cntry...
Employees_
Employees Maintain_Emps
Fwd_Xed
Rvrs_Xed
Pre-upgrade
Post-upgrade
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Employees Maintain_Emps
PK Phone #Cntry...
Employees_
Employees Maintain_Emps
Fwd_Xed
Rvrs_Xed
Pre-upgrade
Post-upgrade
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Employees Maintain_Emps
PK Phone #Cntry...
Employees_
Employees Maintain_Emps
Pre-upgrade
Post-upgrade
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
PK Phone #Cntry...
Employees_
Employees Maintain_Emps
Pre-upgrade
Post-upgrade
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Retiring the former Run Edition in Oracle Database 12.2
• Sneak preview…
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Rolling back
a failed EBR exercise
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Employees Maintain_Emps
PK Phone #Cntry...
Employees_
Employees Maintain_Emps
Fwd_Xed
Rvrs_Xed
Pre-upgrade
Post-upgrade
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Employees Maintain_Emps
PK Phone #Cntry...
Employees_
Employees Maintain_Emps
Fwd_Xed
Rvrs_Xed
Pre-upgrade
Post-upgrade
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Employees Maintain_Emps
PK Phone #Cntry...
Employees_
Pre-upgrade
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Agenda
Scope of this presentation
The challenge – and the statement of the solution
Description of case study
Explanation of the edition, the editioning view, and the crossedition trigger
Readying an application for EBR
Implementation of case study as an EBR exercise
EBR task flow
Conclusion / Q&A
1
2
3
4
5
6
7
8
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Pre-EBR app in use
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Pre-EBR app in use
EBR-ready Pre_Upgrade app in use
offline:
ready the app for EBR
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
EBR-ready Pre_Upgrade app in use
Pre_Upgrade app still in use,
Post_Upgrade app ready for touch test
create the new edition
do the DDLs
transform the data
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Pre_Upgrade app still in use,
Post_Upgrade app ready for touch test Do the touch test
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
EBR-ready Pre_Upgrade app in use
Pre_Upgrade app still in use,
Post_Upgrade app ready for touch test
Rollback
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
EBR-ready Pre_Upgrade app in use
Pre_Upgrade app still in use,
Post_Upgrade app ready for touch test
create the new edition
do the DDLs
transform the data
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Pre_Upgrade app still in use,
Post_Upgrade app ready for touch test Do the touch test
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Pre_Upgrade app still in use,
Post_Upgrade app ready for touch test
Hot rollover period:
Pre_Upgrade app and
Post_Upgrade app in concurrent use
Open up for
Post_Upgrade DMLs
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Hot rollover period:
Pre_Upgrade app and
Post_Upgrade app in concurrent use
Post_Upgrade app remains in use,
Pre_Upgrade app is retired,
“ground state” is regained
Retire the
Pre_Upgrade app
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Post_Upgrade app remains in use,
Pre_Upgrade app is retired,
“ground state” is regained
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Agenda
Scope of this presentation
The challenge – and the statement of the solution
Description of case study
Explanation of the edition, the editioning view, and the crossedition trigger
Readying an application for EBR
Implementation of case study as an EBR exercise
EBR task flow
Conclusion / Q&A
1
2
3
4
5
6
7
8
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Edition-based redefinition
• EBR brings the edition, the editioning view, and the crossedition trigger
– Code changes are installed in the privacy of a new edition
– Data changes are made safely by writing only to new columns
or new tables not seen by the old edition
– An editioning view exposes a different projection of a table into each edition
to allow each to see just its own columns
– A crossedition trigger propagates data changes made by the old edition into
the new edition’s columns, or (in hot- rollover) vice-versa
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Evolutionary capability improvements
• Some table DDLs that used to fail if another session had outstanding DML
now always succeed
• Others, that cannot succeed while there’s outstanding DML, are now
governed by a timeout parameter
• Online index creation and rebuild now never cause other sessions to wait
• The dependency model is now fine-grained: e.g. adding a new column to a
table, or a new subprogram to a package spec, no longer invalidates the
dependants
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
E-Business Suite Release 12.2
• The GA of E-Business Suite 12.2 was announced in October 2013
• From now on, all patches are done as EBR exercises
• Critical business operations will not be interrupted
• Revenue generating activities will stay on line
• The short downtime required by patching will be predictable
• The units change:
downtime now measured not in days,
not in hours,
but in minutes!
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Nota bene
• Online application upgrade is a high availability subgoal
• Traditionally, HA goals are met by features that the administrator can
choose to use at the site of the deployed application
– independently of the design of the application
– without the knowledge of the application “vendor”
• The features for online application upgrade are used by the application
“vendor”
– when preparing the application for EBR
– when implementing an EBR exercise
• Site administrators, of course, will need to understand the features
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Next steps
• Read the edition-based redefinition chapter in
the Oracle Database Development Guide (12.1)
• Read my whitepaper, published on the OTN page for EBR
oracle.com/ebr
and look at the other collateral listed there
• Internet search for edition-based redefinition
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.

More Related Content

What's hot

OOW16 - Maintenance Strategies for Oracle E-Business Suite [CON6725]
OOW16 - Maintenance Strategies for Oracle E-Business Suite [CON6725]OOW16 - Maintenance Strategies for Oracle E-Business Suite [CON6725]
OOW16 - Maintenance Strategies for Oracle E-Business Suite [CON6725]vasuballa
 
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....vasuballa
 
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2vasuballa
 
What's New in Unifier 16.1
What's New in Unifier 16.1What's New in Unifier 16.1
What's New in Unifier 16.1p6academy
 
Oracle SQL Developer Data Modeler - Version Control Your Designs
Oracle SQL Developer Data Modeler - Version Control Your DesignsOracle SQL Developer Data Modeler - Version Control Your Designs
Oracle SQL Developer Data Modeler - Version Control Your DesignsJeff Smith
 
My Oracle Support
My Oracle SupportMy Oracle Support
My Oracle Supportvasuballa
 
AMIS 25: Moving Integration to the Cloud
AMIS 25: Moving Integration to the CloudAMIS 25: Moving Integration to the Cloud
AMIS 25: Moving Integration to the CloudMatt Wright
 
Apex atp customer_presentation_wwc march 2019
Apex atp customer_presentation_wwc march 2019Apex atp customer_presentation_wwc march 2019
Apex atp customer_presentation_wwc march 2019Oracle Developers
 
Agile Development and DevOps in the Oracle Cloud
Agile Development and DevOps in the Oracle CloudAgile Development and DevOps in the Oracle Cloud
Agile Development and DevOps in the Oracle Cloudjeckels
 
Oracle Cloud에서 애플리케이션을 개발하고 테스트하는 손쉬운 방법
Oracle Cloud에서 애플리케이션을 개발하고 테스트하는 손쉬운 방법Oracle Cloud에서 애플리케이션을 개발하고 테스트하는 손쉬운 방법
Oracle Cloud에서 애플리케이션을 개발하고 테스트하는 손쉬운 방법Mee Nam Lee
 
Developing Oracle Fusion Middleware Applications in the Cloud
Developing Oracle Fusion Middleware Applications in the CloudDeveloping Oracle Fusion Middleware Applications in the Cloud
Developing Oracle Fusion Middleware Applications in the CloudMatt Wright
 
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]vasuballa
 
Oracle APEX 18.1 New Features
Oracle APEX 18.1 New FeaturesOracle APEX 18.1 New Features
Oracle APEX 18.1 New Featuresmsewtz
 
Oracle APEX Social Login
Oracle APEX Social LoginOracle APEX Social Login
Oracle APEX Social Loginmsewtz
 
OOW16 - Oracle E-Business Suite 12 Upgrade Experience for a 14 TB Oracle E-Bu...
OOW16 - Oracle E-Business Suite 12 Upgrade Experience for a 14 TB Oracle E-Bu...OOW16 - Oracle E-Business Suite 12 Upgrade Experience for a 14 TB Oracle E-Bu...
OOW16 - Oracle E-Business Suite 12 Upgrade Experience for a 14 TB Oracle E-Bu...vasuballa
 
Performance Testing in Oracle Apps
Performance Testing in Oracle AppsPerformance Testing in Oracle Apps
Performance Testing in Oracle AppsBiswajit Pratihari
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the CloudShaun Smith
 
HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016Ed Burns
 

What's hot (20)

OOW16 - Maintenance Strategies for Oracle E-Business Suite [CON6725]
OOW16 - Maintenance Strategies for Oracle E-Business Suite [CON6725]OOW16 - Maintenance Strategies for Oracle E-Business Suite [CON6725]
OOW16 - Maintenance Strategies for Oracle E-Business Suite [CON6725]
 
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
 
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2
 
What's New in Unifier 16.1
What's New in Unifier 16.1What's New in Unifier 16.1
What's New in Unifier 16.1
 
Apex day 1.0 fastest route to cloud sept 2015_julian lane
Apex day 1.0 fastest route to cloud sept 2015_julian laneApex day 1.0 fastest route to cloud sept 2015_julian lane
Apex day 1.0 fastest route to cloud sept 2015_julian lane
 
Oracle SQL Developer Data Modeler - Version Control Your Designs
Oracle SQL Developer Data Modeler - Version Control Your DesignsOracle SQL Developer Data Modeler - Version Control Your Designs
Oracle SQL Developer Data Modeler - Version Control Your Designs
 
My Oracle Support
My Oracle SupportMy Oracle Support
My Oracle Support
 
AMIS 25: Moving Integration to the Cloud
AMIS 25: Moving Integration to the CloudAMIS 25: Moving Integration to the Cloud
AMIS 25: Moving Integration to the Cloud
 
Apex atp customer_presentation_wwc march 2019
Apex atp customer_presentation_wwc march 2019Apex atp customer_presentation_wwc march 2019
Apex atp customer_presentation_wwc march 2019
 
Agile Development and DevOps in the Oracle Cloud
Agile Development and DevOps in the Oracle CloudAgile Development and DevOps in the Oracle Cloud
Agile Development and DevOps in the Oracle Cloud
 
DevOps in your Oracle Stack
DevOps in your Oracle StackDevOps in your Oracle Stack
DevOps in your Oracle Stack
 
Oracle Cloud에서 애플리케이션을 개발하고 테스트하는 손쉬운 방법
Oracle Cloud에서 애플리케이션을 개발하고 테스트하는 손쉬운 방법Oracle Cloud에서 애플리케이션을 개발하고 테스트하는 손쉬운 방법
Oracle Cloud에서 애플리케이션을 개발하고 테스트하는 손쉬운 방법
 
Developing Oracle Fusion Middleware Applications in the Cloud
Developing Oracle Fusion Middleware Applications in the CloudDeveloping Oracle Fusion Middleware Applications in the Cloud
Developing Oracle Fusion Middleware Applications in the Cloud
 
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]
 
Oracle APEX 18.1 New Features
Oracle APEX 18.1 New FeaturesOracle APEX 18.1 New Features
Oracle APEX 18.1 New Features
 
Oracle APEX Social Login
Oracle APEX Social LoginOracle APEX Social Login
Oracle APEX Social Login
 
OOW16 - Oracle E-Business Suite 12 Upgrade Experience for a 14 TB Oracle E-Bu...
OOW16 - Oracle E-Business Suite 12 Upgrade Experience for a 14 TB Oracle E-Bu...OOW16 - Oracle E-Business Suite 12 Upgrade Experience for a 14 TB Oracle E-Bu...
OOW16 - Oracle E-Business Suite 12 Upgrade Experience for a 14 TB Oracle E-Bu...
 
Performance Testing in Oracle Apps
Performance Testing in Oracle AppsPerformance Testing in Oracle Apps
Performance Testing in Oracle Apps
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016
 

Similar to Ebr the key_to_online_application_upgrade at amis25

Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessEd Burns
 
OOW15 - Advanced Architectures for Oracle E-Business Suite
OOW15 - Advanced Architectures for Oracle E-Business SuiteOOW15 - Advanced Architectures for Oracle E-Business Suite
OOW15 - Advanced Architectures for Oracle E-Business Suitevasuballa
 
How to Upgrade Hundreds or Thousands of Databases
How to Upgrade Hundreds or Thousands of DatabasesHow to Upgrade Hundreds or Thousands of Databases
How to Upgrade Hundreds or Thousands of DatabasesDLT Solutions
 
How to Upgrade Hundreds or Thousands of Databases
How to Upgrade Hundreds or Thousands of DatabasesHow to Upgrade Hundreds or Thousands of Databases
How to Upgrade Hundreds or Thousands of DatabasesGuatemala User Group
 
Oracle Cloud Platform - Migrer vers la Database 12c
Oracle Cloud Platform - Migrer vers la Database 12cOracle Cloud Platform - Migrer vers la Database 12c
Oracle Cloud Platform - Migrer vers la Database 12cBastien Leblanc
 
Oracle super cluster for oracle e business suite
Oracle super cluster for oracle e business suiteOracle super cluster for oracle e business suite
Oracle super cluster for oracle e business suiteOTN Systems Hub
 
How to Obtain Peak Performance from Your Virtual Environment
How to Obtain Peak Performance from Your Virtual EnvironmentHow to Obtain Peak Performance from Your Virtual Environment
How to Obtain Peak Performance from Your Virtual EnvironmenteG Innovations
 
Oracle Warehouse Builder to Oracle Data Integrator 12c Migration Utility
Oracle Warehouse Builder to Oracle Data Integrator 12c Migration UtilityOracle Warehouse Builder to Oracle Data Integrator 12c Migration Utility
Oracle Warehouse Builder to Oracle Data Integrator 12c Migration UtilityNoel Sidebotham
 
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015Edward Burns
 
Oracle SQL Developer: 3 Features You're Not Using But Should Be
Oracle SQL Developer: 3 Features You're Not Using But Should BeOracle SQL Developer: 3 Features You're Not Using But Should Be
Oracle SQL Developer: 3 Features You're Not Using But Should BeJeff Smith
 
OOW15 - case study: oracle application management suite for oracle e-business...
OOW15 - case study: oracle application management suite for oracle e-business...OOW15 - case study: oracle application management suite for oracle e-business...
OOW15 - case study: oracle application management suite for oracle e-business...vasuballa
 
apex41-new-features-487382.ppt
apex41-new-features-487382.pptapex41-new-features-487382.ppt
apex41-new-features-487382.pptSaadQaisar7
 
apex41-new-features-487382.ppt
apex41-new-features-487382.pptapex41-new-features-487382.ppt
apex41-new-features-487382.pptMohammedJifar1
 
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan WielengaCoding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan WielengaJAXLondon_Conference
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the CloudBruno Borges
 
Suffering from Chronic Patching Pain? Get Relief with Fleet Maintenance [CON6...
Suffering from Chronic Patching Pain? Get Relief with Fleet Maintenance [CON6...Suffering from Chronic Patching Pain? Get Relief with Fleet Maintenance [CON6...
Suffering from Chronic Patching Pain? Get Relief with Fleet Maintenance [CON6...Timothy Schubert
 

Similar to Ebr the key_to_online_application_upgrade at amis25 (20)

Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with Less
 
OOW15 - Advanced Architectures for Oracle E-Business Suite
OOW15 - Advanced Architectures for Oracle E-Business SuiteOOW15 - Advanced Architectures for Oracle E-Business Suite
OOW15 - Advanced Architectures for Oracle E-Business Suite
 
How to Upgrade Hundreds or Thousands of Databases
How to Upgrade Hundreds or Thousands of DatabasesHow to Upgrade Hundreds or Thousands of Databases
How to Upgrade Hundreds or Thousands of Databases
 
How to Upgrade Hundreds or Thousands of Databases
How to Upgrade Hundreds or Thousands of DatabasesHow to Upgrade Hundreds or Thousands of Databases
How to Upgrade Hundreds or Thousands of Databases
 
JDK versions and OpenJDK
JDK versions and OpenJDKJDK versions and OpenJDK
JDK versions and OpenJDK
 
Upgrading Em13c Collaborate 2016
Upgrading Em13c Collaborate 2016Upgrading Em13c Collaborate 2016
Upgrading Em13c Collaborate 2016
 
Oracle Cloud Platform - Migrer vers la Database 12c
Oracle Cloud Platform - Migrer vers la Database 12cOracle Cloud Platform - Migrer vers la Database 12c
Oracle Cloud Platform - Migrer vers la Database 12c
 
Oracle super cluster for oracle e business suite
Oracle super cluster for oracle e business suiteOracle super cluster for oracle e business suite
Oracle super cluster for oracle e business suite
 
How to Obtain Peak Performance from Your Virtual Environment
How to Obtain Peak Performance from Your Virtual EnvironmentHow to Obtain Peak Performance from Your Virtual Environment
How to Obtain Peak Performance from Your Virtual Environment
 
Oracle Warehouse Builder to Oracle Data Integrator 12c Migration Utility
Oracle Warehouse Builder to Oracle Data Integrator 12c Migration UtilityOracle Warehouse Builder to Oracle Data Integrator 12c Migration Utility
Oracle Warehouse Builder to Oracle Data Integrator 12c Migration Utility
 
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
 
Oracle SQL Developer: 3 Features You're Not Using But Should Be
Oracle SQL Developer: 3 Features You're Not Using But Should BeOracle SQL Developer: 3 Features You're Not Using But Should Be
Oracle SQL Developer: 3 Features You're Not Using But Should Be
 
OOW15 - case study: oracle application management suite for oracle e-business...
OOW15 - case study: oracle application management suite for oracle e-business...OOW15 - case study: oracle application management suite for oracle e-business...
OOW15 - case study: oracle application management suite for oracle e-business...
 
apex41-new-features-487382.ppt
apex41-new-features-487382.pptapex41-new-features-487382.ppt
apex41-new-features-487382.ppt
 
apex41-new-features-487382.ppt
apex41-new-features-487382.pptapex41-new-features-487382.ppt
apex41-new-features-487382.ppt
 
Oracle sql.ppt
Oracle sql.pptOracle sql.ppt
Oracle sql.ppt
 
apex41-new-features-487382.ppt
apex41-new-features-487382.pptapex41-new-features-487382.ppt
apex41-new-features-487382.ppt
 
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan WielengaCoding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
Suffering from Chronic Patching Pain? Get Relief with Fleet Maintenance [CON6...
Suffering from Chronic Patching Pain? Get Relief with Fleet Maintenance [CON6...Suffering from Chronic Patching Pain? Get Relief with Fleet Maintenance [CON6...
Suffering from Chronic Patching Pain? Get Relief with Fleet Maintenance [CON6...
 

More from Getting value from IoT, Integration and Data Analytics

More from Getting value from IoT, Integration and Data Analytics (20)

AMIS Oracle OpenWorld en Code One Review 2018 - Blockchain, Integration, Serv...
AMIS Oracle OpenWorld en Code One Review 2018 - Blockchain, Integration, Serv...AMIS Oracle OpenWorld en Code One Review 2018 - Blockchain, Integration, Serv...
AMIS Oracle OpenWorld en Code One Review 2018 - Blockchain, Integration, Serv...
 
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: Custom Application ...
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: Custom Application ...AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: Custom Application ...
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: Custom Application ...
 
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: SaaS
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: SaaSAMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: SaaS
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: SaaS
 
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 1: Data
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 1: DataAMIS Oracle OpenWorld en Code One Review 2018 - Pillar 1: Data
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 1: Data
 
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 1: Cloud Infrastructure
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 1: Cloud Infrastructure AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 1: Cloud Infrastructure
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 1: Cloud Infrastructure
 
10 tips voor verbetering in je Linkedin profiel
10 tips voor verbetering in je Linkedin profiel10 tips voor verbetering in je Linkedin profiel
10 tips voor verbetering in je Linkedin profiel
 
Iot in de zorg the next step - fit for purpose
Iot in de zorg   the next step - fit for purpose Iot in de zorg   the next step - fit for purpose
Iot in de zorg the next step - fit for purpose
 
Iot overview .. Best practices and lessons learned by Conclusion Conenct
Iot overview .. Best practices and lessons learned by Conclusion Conenct Iot overview .. Best practices and lessons learned by Conclusion Conenct
Iot overview .. Best practices and lessons learned by Conclusion Conenct
 
IoT Fit for purpose - how to be successful in IOT Conclusion Connect
IoT Fit for purpose - how to be successful in IOT Conclusion Connect IoT Fit for purpose - how to be successful in IOT Conclusion Connect
IoT Fit for purpose - how to be successful in IOT Conclusion Connect
 
Industry and IOT Overview of protocols and best practices Conclusion Connect
Industry and IOT Overview of protocols and best practices  Conclusion ConnectIndustry and IOT Overview of protocols and best practices  Conclusion Connect
Industry and IOT Overview of protocols and best practices Conclusion Connect
 
IoT practical case using the people counter sensing traffic density build usi...
IoT practical case using the people counter sensing traffic density build usi...IoT practical case using the people counter sensing traffic density build usi...
IoT practical case using the people counter sensing traffic density build usi...
 
R introduction decision_trees
R introduction decision_treesR introduction decision_trees
R introduction decision_trees
 
Introduction overviewmachinelearning sig Door Lucas Jellema
Introduction overviewmachinelearning sig Door Lucas JellemaIntroduction overviewmachinelearning sig Door Lucas Jellema
Introduction overviewmachinelearning sig Door Lucas Jellema
 
IoT and the Future of work
IoT and the Future of work IoT and the Future of work
IoT and the Future of work
 
Oracle OpenWorld 2017 Review (31st October 2017 - 250 slides)
Oracle OpenWorld 2017 Review (31st October 2017 - 250 slides)Oracle OpenWorld 2017 Review (31st October 2017 - 250 slides)
Oracle OpenWorld 2017 Review (31st October 2017 - 250 slides)
 
Ethereum smart contracts - door Peter Reitsma
Ethereum smart contracts - door Peter ReitsmaEthereum smart contracts - door Peter Reitsma
Ethereum smart contracts - door Peter Reitsma
 
Blockchain - Techniek en usecases door Robert van Molken - AMIS - Conclusion
Blockchain - Techniek en usecases door Robert van Molken - AMIS - ConclusionBlockchain - Techniek en usecases door Robert van Molken - AMIS - Conclusion
Blockchain - Techniek en usecases door Robert van Molken - AMIS - Conclusion
 
kennissessie blockchain - Wat is Blockchain en smart contracts @Conclusion
kennissessie blockchain -  Wat is Blockchain en smart contracts @Conclusion kennissessie blockchain -  Wat is Blockchain en smart contracts @Conclusion
kennissessie blockchain - Wat is Blockchain en smart contracts @Conclusion
 
Internet of Things propositie - Enterprise IOT - AMIS - Conclusion
Internet of Things propositie - Enterprise IOT - AMIS - Conclusion Internet of Things propositie - Enterprise IOT - AMIS - Conclusion
Internet of Things propositie - Enterprise IOT - AMIS - Conclusion
 
Omc AMIS evenement 26012017 Dennis van Soest
Omc AMIS evenement 26012017 Dennis van SoestOmc AMIS evenement 26012017 Dennis van Soest
Omc AMIS evenement 26012017 Dennis van Soest
 

Recently uploaded

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 

Recently uploaded (20)

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 

Ebr the key_to_online_application_upgrade at amis25

  • 1.
  • 2. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Edition-based redefinition: the key to online application upgrade Bryn Llewellyn Distinguished Product Manager Database Division Oracle HQ OakTable Member twitter: @BrynLite Summer 2016
  • 3. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
  • 4. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Online Application Upgrade – the final piece of the HA jigsaw puzzle High Availability Survive Hardware Failure Planned Software Changes Change Infrastructure: Operating System, Oracle Database Change objects’ physical properties Change application’s database objects
  • 5. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Online Application Upgrade – the final piece of the HA jigsaw puzzle High Availability Survive Hardware Failure Planned Software Changes Change Infrastructure: Operating System, Oracle Database Change objects’ meaning: patching and upgrading Change objects’ physical properties Change application’s database objects
  • 6. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Agenda Scope of this presentation The challenge – and the statement of the solution Description of case study Explanation of the edition, the editioning view, and the crossedition trigger Readying an application for EBR Implementation of case study as an EBR exercise EBR task flow Conclusion / Q&A 1 2 3 4 5 6 7 8
  • 7. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Scope of this presentation • This presentation focuses on capabilities, new in Oracle Database 11.2, and enhanced in 12.1, that support online upgrade of the database tier of an application • The online upgrade of other tiers of the application will need their own specific solutions. These are only sketched in this presentation • The take-away from this presentation is that Oracle Database offers both an isolation mechanism to allow pre- and post-upgrade application backends to co-exist in the same database, and a way for client code to choose the particular isolated environment that it wants
  • 8. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Agenda Scope of this presentation The challenge – and the statement of the solution Description of case study Explanation of the edition, the editioning view, and the crossedition trigger Readying an application for EBR Implementation of case study as an EBR exercise EBR task flow Conclusion / Q&A 1 2 3 4 5 6 7 8
  • 9. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Online Application Upgrade • Supporting online application upgrade means maintaining uninterrupted availability of the application • But end-user sessions can last tens of minutes or longer – Users of the old app don’t want to abandon an ongoing session – Users wanting to start a session must use the new app, but cannot wait until no-one is using the old app • This implies that it must be possible to use the pre-upgrade application and the post-upgrade application at the same time – a.k.a. hot rollover
  • 10. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. The challenge • The installation of the upgrade into the production database must not perturb live users of the pre-upgrade application – Many objects must be changed in concert. The changes must be made in privacy • Transactions done by the users of the pre-upgrade application must by reflected in the post-upgrade application • For hot rollover, we also need the reverse of this: – Transactions done by the users of the post-upgrade application must by reflected in the pre-upgrade application
  • 11. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. The solution: edition-based redefinition • EBR brings these key features: the edition, the editioning view, and the crossedition trigger – Code changes are installed in the privacy of a new edition – Data changes are made safely by writing only to new columns or new tables not seen by the old edition – An editioning view exposes a different projection of a table into each edition to allow each to see just its own columns – A crossedition trigger propagates data changes made by the old edition into the new edition’s columns, or (in hot- rollover) vice-versa
  • 12. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack Edition V1 App V1 Traffic Director
  • 13. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack Edition V1 App V1 Traffic Director
  • 14. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack Edition V1 App V1 Traffic Director
  • 15. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack Edition V1 App V1 Traffic Director
  • 16. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack Edition V1 App V1 Traffic Director
  • 17. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack Edition V1 App V1 Edition V2 Traffic Director
  • 18. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack Edition V1 App V1 App V2 Edition V2 Traffic Director
  • 19. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack Edition V1 App V1 App V2 Edition V2 Traffic Director
  • 20. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack Edition V1 App V1 App V2 Edition V2 Traffic Director
  • 21. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack Edition V1 App V1 App V2 Edition V2 Traffic Director
  • 22. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack Edition V1 App V1 App V2 Edition V2 Traffic Director
  • 23. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack Edition V1 App V1 App V2 Edition V2 Traffic Director
  • 24. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack Edition V1 App V1 App V2 Edition V2 Traffic Director
  • 25. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack Edition V1 App V1 App V2 Edition V2 Traffic Director
  • 26. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack Edition V1 App V1 App V2 Edition V2 Traffic Director
  • 27. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack Edition V1 App V1 App V2 Edition V2 Traffic Director
  • 28. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack Edition V1 App V2 Edition V2 Traffic Director
  • 29. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover across the stack App V2 Edition V2 Traffic Director
  • 30. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Agenda Scope of this presentation The challenge – and the statement of the solution Description of case study Explanation of the edition, the editioning view, and the crossedition trigger Readying an application for EBR Implementation of case study as an EBR exercise EBR task flow Conclusion / Q&A 1 2 3 4 5 6 7 8
  • 31. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Description of case study
  • 32. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Case study • The HR sample schema, that ships with Oracle Database, represents phone numbers in a single column: – Diana Lorentz 590.423.5567 – John Russell 011.44.1344.429268 • Users now need to ring phone numbers from any country in the world • So we want a uniform representation with two columns: – Country Code – Number Within Country
  • 33. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Case study
  • 34. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Agenda Scope of this presentation The challenge – and the statement of the solution Description of case study Explanation of the edition, the editioning view, and the crossedition trigger Readying an application for EBR Implementation of case study as an EBR exercise EBR task flow Conclusion / Q&A 1 2 3 4 5 6 7 8
  • 35. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. The edition – setting the stage • Scenario – for now think only about synonyms, views, and PL/SQL units – The application has 1,000 mutually dependent code objects – In general, there’s more than one schema – They refer to each other by name – in general, by schema- qualified name – The upgrade needs to change 10 of these
  • 36. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. The edition – setting the stage 1,000 v1 objects 900 unchanged v1 objects + 10 changed v2 objects Pre-upgrade application backend Post-upgrade application backend
  • 37. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. The edition – setting the stage • Of course, you can’t change the 10 objects in place because this would change the pre-upgrade app • How can an old and a new occurrence of the “same” object co-exist? • Before EBR, the only dimensions that determine which object you mean, when one object refers to another, are its name and its owner • In short, the naming mechanisms, historically, were not rich enough to support online application upgrade
  • 38. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. The edition extends the naming mechanism • EBR introduces the new nonschema object type, edition – each edition can have its own private occurrence of “the same” object • A database must have at least one edition • You create a new edition as the child of an existing edition – and an edition can’t have more than one child • A database session specifies which edition to use (of course, the database has a default edition)
  • 39. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. The edition extends the naming mechanism • Through 11.1, an object is identified by its name and its owner • From 11.2, an editioned object is identified by its name, its owner, and the edition where it was created • However, when you identify it you can mention only its name and owner. This reference is interpreted in the context of a current edition – in SQL execution – in the text of a stored object
  • 40. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. The semantic model for “create edition” • When you create a new edition, every editioned object in the parent edition is copied into the new edition
  • 41. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. The mental model of the implementation Object_1 Object_2 Object_3 Object_4 Pre-upgrade edition
  • 42. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. The mental model of the implementation Pre-upgrade edition Post-upgrade edition Object_1 Object_2 Object_3 Object_4 Object_1 Object_2 Object_3 Object_4 is child of (inherited) (inherited) (inherited) (inherited)
  • 43. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. The mental model of the implementation Pre-upgrade edition Post-upgrade edition Object_1 Object_2 Object_3 Object_4 Object_1* Object_2* Object_3 Object_4 is child of (actual) (actual) (inherited) (inherited)
  • 44. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. The mental model of the implementation Pre-upgrade edition Post-upgrade edition Object_1 Object_2 Object_3 Object_4 Object_1* Object_2* Object_3 Object_4 is child of Pre-upgrade edition (dropped) (actual) (inherited) (inherited)
  • 45. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Editions • If your upgrade needs only to change synonyms, views, or PL/SQL units, you now have all the tools you need • Simply run the scripts that you, anyway, have written using a new edition while the application stays online • Then change the default edition and let new session start in the new edition • No “package state discarded” errors ever again!
  • 46. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Editionable and noneditionable object types • Not all object types are editionable – Synonyms, views, and PL/SQL units of all kinds (including, therefore, triggers and libraries), and are editionable – Objects of all other object types – for example tables – are noneditionable • You version the structure of a table manually – Instead of changing a column, you add a replacement column – Then you rely on the fact that a view is editionable
  • 47. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Editioning views • An editioning view may only project and rename columns • You can’t have more than one editioning view for a particular table in a particular edition • The EV must be owned by the table’s owner • Application code should refer only to the logical world • You can create table-style triggers (before or after statement or each row) on an editioning view using the “logical” column names • A SQL optimizer hint can request an index on the physical table by specifying the “logical” column names • Like all views, an editioning view can be read-only
  • 48. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Editioning views – performance • Any SQL statement that refers to one, or several, EVs will get the same execution plan as the statement you’d get if you replaced each of those references, by hand, with a reference to the table that the EV covers • So using an EV in front of every table brings no performance consequences • Tests have proved this
  • 49. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Editioned and noneditioned objects – slight return • An object whose type is noneditionable is never editioned • An object whose type is editionable is editioned only when you request it for that object (requires that the owner is editions-enabled) – Starting with Version 12.1, you control the editioned state at the granularity of the single name • Theorem (the NE-on-E prohibition): a noneditioned object cannot ordinarily depend on an editioned object – For example, a table cannot depend on an editioned UDT – If you want to use a type as the datatype for a column, that UDT must not be editioned
  • 50. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Materialized views and indexes on virtual columns • Starting with Version 12.1, objects of these kinds have metadata that is explicitly set by the create and alter statements – the evaluation edition explicitly specifies the name of the edition in which the resolution of editioned names will be done • within the closure of the object’s static dependency parents (at compile time) • and for those objects that are identified dynamically during SQL execution (at run time) – The usable edition range explicitly specifies the set of adjacent editions within which the optimizer will consider the object, for query re-write, when computing the execution plan
  • 51. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Public synonyms • A public synonym is just a synonym that happens to be owned by the Oracle-maintained user called “public” • In 11.2, “public” cannot be editions enabled, so a public synonym that tried to denote an editioned object would violate the NE-on-E prohibition • Starting with Version 12.1, “public” is editions enabled, but all existing public synonyms are noneditioned at the per-object level • You can now make your own public synonyms editioned at the per-object level
  • 52. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Tables with UDT columns • An ordinary (as opposed to virtual) column cannot specify the evaluation edition or the usable edition range metadata • Therefore, a UDT that defines the datatype for a table column must remain noneditioned • In an EBR exercise, if the aim is to redefine the UDT, then the “classic” replacement column paradigm is used
  • 53. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. The crossedition trigger • Of course, DML does not stop during online application upgrade • If the upgrade needs to change the structure that stores transactional data – like the orders customers make using an online shopping site – then the installation of values into the replacement columns must keep pace with these changes • Triggers have the ideal properties to do this safely • Each trigger must fire appropriately to propagate changes made to pre-upgrade columns into the post- upgrade columns – and vice versa
  • 54. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. The crossedition trigger • Crossedition triggers directly access the table • They have special firing rules • You create crossedition triggers in the Post_Upgrade edition – The paradigm is: don’t do any DDLs in the Pre_Upgrade edition • The firing rules rules assume that – Pre-upgrade columns are changed – by ordinary application code – only by sessions using the Pre_Upgrade edition – Post-upgrade columns are changed only by sessions using the Post_Upgrade edition
  • 55. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. The crossedition trigger • A forward crossedition trigger is fired by application DML issued by sessions using the Pre_Upgrade edition • A reverse crossedition trigger is fired by application DML issued by sessions using the Post_Upgrade edition
  • 56. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Why such a long name? • DDL stands for data definition language • “create or replace” and “alter” re-define an existing object – these bare commands are in-place redefinition • Online table redefinition (there’s that word again) creates a secret copy, keeps it in step, and then does the twizzle. Similar for online index rebuild – this is copy-based redefinition • Edition-based redefinition lets you redefine many objects in concert
  • 57. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Agenda Scope of this presentation The challenge – and the statement of the solution Description of case study Explanation of the edition, the editioning view, and the crossedition trigger Readying an application for EBR Implementation of case study as an EBR exercise EBR task flow Conclusion / Q&A 1 2 3 4 5 6 7 8
  • 58. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Readying an application for EBR – your very last old-fashioned offline upgrade to buy your entry ticket to the wonderful world of edition-based redefinition
  • 59. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. The design before EBR adoption • Application code accesses tables directly, in the ordinary way
  • 60. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Readying the application for editions • Put an editioning view in front of every table – The EV and the table it covers can’t have the same name – Rename each table to an obscure but related name (e.g. append an underscore, or lowercase the name) – Create an editioning view for each table that has the same name that the table originally had • NOTE: – If a schema has an object, whose type is noneditionable, that depends on an object whose type is editionable, then the adoption plan must accommodate this (using new-in-12.1 functionality) by controlling the editioned state of objects whose type is editionable, at the granularity of the individual object – Else, the editioned state can be conveniently set for the whole schema
  • 61. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Readying the application for editions • Revoke privileges from the tables and grant them to the editioning views • Move VPD policies to the editioning views • “Move” triggers to the editioning views – Just drop the trigger and re-run the original (or mechanically edited) create trigger statement to recreate it on the editioning view • Of course – All indexes on the original Employees table remain valid but User_Ind_Columns now shows the new values for Table_Name and Column_Name – All constraints (foreign key and so on) on the original Employees remain in force for Employees_ • NOTE: this readying work must be done by the developers of the application that adopts EBR
  • 62. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Agenda Scope of this presentation The challenge – and the statement of the solution Description of case study Explanation of the edition, the editioning view, and the crossedition trigger Readying an application for EBR Implementation of case study as an EBR exercise EBR task flow Conclusion / Q&A 1 2 3 4 5 6 7 8
  • 63. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Case study
  • 64. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. PK Phone ... Employees_ Pre-upgrade Employees Maintain_Emps
  • 65. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. PK Phone ... Employees_ Employees Maintain_Emps Employees Maintain_Emps Pre-upgrade Post-upgrade
  • 66. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Employees Maintain_Emps Employees Maintain_Emps PK Phone #Cntry... Employees_ Pre-upgrade Post-upgrade
  • 67. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Employees Maintain_Emps PK Phone #Cntry... Employees_ Employees Maintain_Emps Pre-upgrade Post-upgrade
  • 68. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Employees Maintain_Emps PK Phone #Cntry... Employees_ Employees Maintain_Emps Fwd_Xed Pre-upgrade Post-upgrade
  • 69. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Employees Maintain_Emps PK Phone #Cntry... Employees_ Employees Maintain_Emps Pre-upgrade Post-upgrade Fwd_Xed
  • 70. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Employees Maintain_Emps PK Phone #Cntry... Employees_ Employees Maintain_Emps Fwd_Xed Rvrs_Xed Pre-upgrade Post-upgrade
  • 71. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Employees Maintain_Emps PK Phone #Cntry... Employees_ Employees Maintain_Emps Fwd_Xed Rvrs_Xed Pre-upgrade Post-upgrade
  • 72. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Employees Maintain_Emps PK Phone #Cntry... Employees_ Employees Maintain_Emps Pre-upgrade Post-upgrade
  • 73. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. PK Phone #Cntry... Employees_ Employees Maintain_Emps Pre-upgrade Post-upgrade
  • 74. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Retiring the former Run Edition in Oracle Database 12.2 • Sneak preview…
  • 75. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Rolling back a failed EBR exercise
  • 76. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Employees Maintain_Emps PK Phone #Cntry... Employees_ Employees Maintain_Emps Fwd_Xed Rvrs_Xed Pre-upgrade Post-upgrade
  • 77. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Employees Maintain_Emps PK Phone #Cntry... Employees_ Employees Maintain_Emps Fwd_Xed Rvrs_Xed Pre-upgrade Post-upgrade
  • 78. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Employees Maintain_Emps PK Phone #Cntry... Employees_ Pre-upgrade
  • 79. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Agenda Scope of this presentation The challenge – and the statement of the solution Description of case study Explanation of the edition, the editioning view, and the crossedition trigger Readying an application for EBR Implementation of case study as an EBR exercise EBR task flow Conclusion / Q&A 1 2 3 4 5 6 7 8
  • 80. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Pre-EBR app in use
  • 81. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Pre-EBR app in use EBR-ready Pre_Upgrade app in use offline: ready the app for EBR
  • 82. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. EBR-ready Pre_Upgrade app in use Pre_Upgrade app still in use, Post_Upgrade app ready for touch test create the new edition do the DDLs transform the data
  • 83. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Pre_Upgrade app still in use, Post_Upgrade app ready for touch test Do the touch test
  • 84. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. EBR-ready Pre_Upgrade app in use Pre_Upgrade app still in use, Post_Upgrade app ready for touch test Rollback
  • 85. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. EBR-ready Pre_Upgrade app in use Pre_Upgrade app still in use, Post_Upgrade app ready for touch test create the new edition do the DDLs transform the data
  • 86. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Pre_Upgrade app still in use, Post_Upgrade app ready for touch test Do the touch test
  • 87. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Pre_Upgrade app still in use, Post_Upgrade app ready for touch test Hot rollover period: Pre_Upgrade app and Post_Upgrade app in concurrent use Open up for Post_Upgrade DMLs
  • 88. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Hot rollover period: Pre_Upgrade app and Post_Upgrade app in concurrent use Post_Upgrade app remains in use, Pre_Upgrade app is retired, “ground state” is regained Retire the Pre_Upgrade app
  • 89. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Post_Upgrade app remains in use, Pre_Upgrade app is retired, “ground state” is regained
  • 90. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Agenda Scope of this presentation The challenge – and the statement of the solution Description of case study Explanation of the edition, the editioning view, and the crossedition trigger Readying an application for EBR Implementation of case study as an EBR exercise EBR task flow Conclusion / Q&A 1 2 3 4 5 6 7 8
  • 91. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Edition-based redefinition • EBR brings the edition, the editioning view, and the crossedition trigger – Code changes are installed in the privacy of a new edition – Data changes are made safely by writing only to new columns or new tables not seen by the old edition – An editioning view exposes a different projection of a table into each edition to allow each to see just its own columns – A crossedition trigger propagates data changes made by the old edition into the new edition’s columns, or (in hot- rollover) vice-versa
  • 92. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Evolutionary capability improvements • Some table DDLs that used to fail if another session had outstanding DML now always succeed • Others, that cannot succeed while there’s outstanding DML, are now governed by a timeout parameter • Online index creation and rebuild now never cause other sessions to wait • The dependency model is now fine-grained: e.g. adding a new column to a table, or a new subprogram to a package spec, no longer invalidates the dependants
  • 93. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. E-Business Suite Release 12.2 • The GA of E-Business Suite 12.2 was announced in October 2013 • From now on, all patches are done as EBR exercises • Critical business operations will not be interrupted • Revenue generating activities will stay on line • The short downtime required by patching will be predictable • The units change: downtime now measured not in days, not in hours, but in minutes!
  • 94. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Nota bene • Online application upgrade is a high availability subgoal • Traditionally, HA goals are met by features that the administrator can choose to use at the site of the deployed application – independently of the design of the application – without the knowledge of the application “vendor” • The features for online application upgrade are used by the application “vendor” – when preparing the application for EBR – when implementing an EBR exercise • Site administrators, of course, will need to understand the features
  • 95. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Next steps • Read the edition-based redefinition chapter in the Oracle Database Development Guide (12.1) • Read my whitepaper, published on the OTN page for EBR oracle.com/ebr and look at the other collateral listed there • Internet search for edition-based redefinition
  • 96. Copyright © 2015, Oracle and/or its affiliates. All rights reserved.