Edition Based RedefinitionAlex Nuijten
High Availability
24/7
Unplanned DownPlanned Down
High Availability
RACPhyiscal StandbyLogical StandbyImmunityHardware Failure
Logical StandbyStreamsOnline Database Upgrade
Online Table RedefinitionOnline Index RebuildOnline Application Maintenance
Edition Based RedefinitionOnline Application Upgrade
Application Upgrade
Application Upgrade
Application Upgrade
Application Upgrade
Application Upgrade
Application UpgradeCreation of New ObjectsChanging Existing ObjectsDrop Redundant ObjectsConvert / MigrateResume Normal Operation
Restructuring A12Build new road next to current one (A12-B)Same “functionality” as the old roadAt the cut-over momentOpen new A12-B: Newly arriving traffic travels on temporary roadClose A12 (original)Cars already on old road keep going
11gR2 EBR is similarPrepare New ReleaseConstruct in ParallelOperations in Existing Application Continue NormallyFrom the cut-over point:New Sessions Operate on New ReleaseExisting Sessions continueon Existing Release
New DimensionBase ReleaseRelease 2
Base ReleaseRelease 1New Dimension
Parallel UniversesObject TypeObject NameSchemaEditionSession run in context of Edition
Editionable Objects
Non Editionable Objects
Application BApplication AEnameJobMgrSalCommHiredate
Application AApplication BEditioning ViewEnameJobMgrSalCommHiredate
preUpgradepostUpgradeEditioning View
“EditioningViews:the New Tables”
Application AApplication BEdition R1Edition R2EV EMPEV EMPEnameJobMgrSalCommHiredate
Application AApplication BEdition R1Edition R2EV EMPEV EMPEnameJobMgrSalCommHiredateLanguage
DMLEV EMPEdition R1Edition R2EV EMPEV EMP…* languageEnameJobMgrSalCommHiredateLanguage
DMLDMLEV EMP…- enameo first_name* last_nameEdition R1Edition R2Edition R3EV EMPEV EMP…* languageEnameJobMgrSalCommHiredateLanguageLast_nameFirst_name
DMLEV EMPForward CrossEdition Trigger…- enameo first_name* last_nameEdition R1Edition R3EV EMPEnameJobMgrSalCommHiredateLanguageLast_nameFirst_name
DMLEV EMPReverse CrossEdition Trigger…- enameo first_name* last_nameEdition R1Edition R3EV EMPEnameJobMgrSalCommHiredateLanguageLast_nameFirst_name
Parallel Application VersionsApplication XVERSION 1Application XVERSION 2Release 2Release 1Base Release
Version 1 on Base Edition
Upgrade Base to Release 2AuthorsNew columns COUNTRY and BIOGRAPHYBooksDrop column NUM_OF_PAGESModified column ISBN (10 to 20 characters)New columns LANGUAGE and PUBLICATION_YEAR
Version 2 on Edition Release 2
Version 1 on Edition Release 2
Version 2 on Base Edition
Preparing your ApplicationIn 6  easy steps
Oracle guarantees:The Execution Plan for a SQL query that uses an Editioning View is identical to that for the same query based directly on the table
PrivilegesCREATE ANY EDITIONALTER ANY EDITIONDROP ANY EDITIONALTER USER ENABLE EDITIONSGRANT USE ON <EDITON> TO <USER>ALTER DATABASE DEFAULT EDITION <edition>
Dictionary Views*_EDITIONS*_EDITION_COMMENTS*_VIEWS_AE*_SOURCE_AE*_OBJECTS_AE*_ERRORS_AE*_EDITIONING_VIEWS_AE*_EDITIONING_VIEW_COLS_AE
“Best Practices”Applications never access TablesApplication sets Edition
TidbitsDrop Object stops InheritanceEditions can have one childNo branching (yet)DBMS_SQL.PARSE in specific EditionOnline Table RedefinitionFine Grained Dependency Tracking

Edition Based Redefinition

Editor's Notes

  • #14 Creation of New ObjectsChanging Existing ObjectsDrop Redundant ObjectsConvert / MigrateResume Normal Operation
  • #15 Creation of New ObjectsChanging Existing ObjectsDrop Redundant ObjectsConvert / MigrateResume Normal Operation
  • #16 Creation of New ObjectsChanging Existing ObjectsDrop Redundant ObjectsConvert / MigrateResume Normal Operation
  • #17 Creation of New ObjectsChanging Existing ObjectsDrop Redundant ObjectsConvert / MigrateResume Normal Operation
  • #18 Creation of New ObjectsChanging Existing ObjectsDrop Redundant ObjectsConvert / MigrateResume Normal Operation
  • #19 Creation of New ObjectsChanging Existing ObjectsDrop Redundant ObjectsConvert / MigrateResume Normal Operation