Edition Based Redefinition<br />Alex Nuijten<br />
High Availability<br />
24/7<br />
Unplanned Down<br />Planned Down<br />
High Availability<br />
RAC<br />Phyiscal Standby<br />Logical Standby<br />Immunity<br />Hardware Failure<br />
Logical Standby<br />Streams<br />Online Database Upgrade<br />
Online Table Redefinition<br />Online Index Rebuild<br />Online Application Maintenance<br />
Edition Based Redefinition<br />Online Application Upgrade<br />
Application Upgrade<br />
Application Upgrade<br />
Application Upgrade<br />
Application Upgrade<br />
Application Upgrade<br />
Application Upgrade<br />Creation of New Objects<br />Changing Existing Objects<br />Drop Redundant Objects<br />Convert /...
Restructuring A12<br />Build new road next to current one (A12-B)<br />Same “functionality” as the old road<br />At the cu...
11gR2 EBR is similar<br />Prepare New Release<br />Construct in Parallel<br />Operations in Existing Application Continue ...
New Dimension<br />Base Release<br />Release 2<br />
Base Release<br />Release 1<br />New Dimension<br />
Parallel Universes<br />Object Type<br />Object Name<br />Schema<br />Edition<br />Session run in context of Edition<br />
Editionable Objects<br />
Non Editionable Objects<br />
Application B<br />Application A<br />Ename<br />Job<br />Mgr<br />Sal<br />Comm<br />Hiredate<br />
Application A<br />Application B<br />Editioning View<br />Ename<br />Job<br />Mgr<br />Sal<br />Comm<br />Hiredate<br />
preUpgrade<br />postUpgrade<br />Editioning View<br />
“EditioningViews:<br />the New Tables”<br />
Application A<br />Application B<br />Edition R1<br />Edition R2<br />EV EMP<br />EV EMP<br />Ename<br />Job<br />Mgr<br /...
Application A<br />Application B<br />Edition R1<br />Edition R2<br />EV EMP<br />EV EMP<br />Ename<br />Job<br />Mgr<br /...
DML<br />EV EMP<br />Edition R1<br />Edition R2<br />EV EMP<br />EV EMP<br />…<br />* language<br />Ename<br />Job<br />Mg...
DML<br />DML<br />EV EMP<br />…<br />- ename<br />o first_name<br />* last_name<br />Edition R1<br />Edition R2<br />Editi...
DML<br />EV EMP<br />Forward CrossEdition Trigger<br />…<br />- ename<br />o first_name<br />* last_name<br />Edition R1<b...
DML<br />EV EMP<br />Reverse CrossEdition Trigger<br />…<br />- ename<br />o first_name<br />* last_name<br />Edition R1<b...
Parallel Application Versions<br />Application X<br />VERSION 1<br />Application X<br />VERSION 2<br />Release 2<br />Rele...
Version 1 on Base Edition<br />
Upgrade Base to Release 2<br />Authors<br />New columns COUNTRY and BIOGRAPHY<br />Books<br />Drop column NUM_OF_PAGES<br ...
Version 2 on Edition Release 2<br />
Version 1 on Edition Release 2<br />
Version 2 on Base Edition<br />
Preparing your Application<br />In 6  easy steps<br />
Oracle guarantees:The Execution Plan for a SQL query that uses an Editioning View is identical to that for the same query ...
Privileges<br />CREATE ANY EDITION<br />ALTER ANY EDITION<br />DROP ANY EDITION<br />ALTER USER ENABLE EDITIONS<br />GRANT...
Dictionary Views<br />*_EDITIONS<br />*_EDITION_COMMENTS<br />*_VIEWS_AE<br />*_SOURCE_AE<br />*_OBJECTS_AE<br />*_ERRORS_...
“Best Practices”<br />Applications never access Tables<br />Application sets Edition<br />
Tidbits<br />Drop Object stops Inheritance<br />Editions can have one child<br />No branching (yet)<br />DBMS_SQL.PARSE in...
Upcoming SlideShare
Loading in...5
×

Edition Based Redefinition

1,413

Published on

Edition Based Redefinition is THE new feature of the Oracle 11g Release 2 database. This presentation was given at the Planboard Symposium on November 17, 2009.

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,413
On Slideshare
0
From Embeds
0
Number of Embeds
18
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Creation of New ObjectsChanging Existing ObjectsDrop Redundant ObjectsConvert / MigrateResume Normal Operation
  • Creation of New ObjectsChanging Existing ObjectsDrop Redundant ObjectsConvert / MigrateResume Normal Operation
  • Creation of New ObjectsChanging Existing ObjectsDrop Redundant ObjectsConvert / MigrateResume Normal Operation
  • Creation of New ObjectsChanging Existing ObjectsDrop Redundant ObjectsConvert / MigrateResume Normal Operation
  • Creation of New ObjectsChanging Existing ObjectsDrop Redundant ObjectsConvert / MigrateResume Normal Operation
  • Creation of New ObjectsChanging Existing ObjectsDrop Redundant ObjectsConvert / MigrateResume Normal Operation
  • Transcript of "Edition Based Redefinition"

    1. 1.
    2. 2. Edition Based Redefinition<br />Alex Nuijten<br />
    3. 3. High Availability<br />
    4. 4. 24/7<br />
    5. 5.
    6. 6.
    7. 7. Unplanned Down<br />Planned Down<br />
    8. 8. High Availability<br />
    9. 9. RAC<br />Phyiscal Standby<br />Logical Standby<br />Immunity<br />Hardware Failure<br />
    10. 10. Logical Standby<br />Streams<br />Online Database Upgrade<br />
    11. 11. Online Table Redefinition<br />Online Index Rebuild<br />Online Application Maintenance<br />
    12. 12. Edition Based Redefinition<br />Online Application Upgrade<br />
    13. 13. Application Upgrade<br />
    14. 14. Application Upgrade<br />
    15. 15. Application Upgrade<br />
    16. 16. Application Upgrade<br />
    17. 17. Application Upgrade<br />
    18. 18. Application Upgrade<br />Creation of New Objects<br />Changing Existing Objects<br />Drop Redundant Objects<br />Convert / Migrate<br />Resume Normal Operation<br />
    19. 19.
    20. 20.
    21. 21. Restructuring A12<br />Build new road next to current one (A12-B)<br />Same “functionality” as the old road<br />At the cut-over moment<br />Open new A12-B: <br />Newly arriving traffic travels on temporary road<br />Close A12 (original)<br />Cars already on old road keep going<br />
    22. 22. 11gR2 EBR is similar<br />Prepare New Release<br />Construct in Parallel<br />Operations in Existing Application Continue Normally<br />From the cut-over point:<br />New Sessions Operate on New Release<br />Existing Sessions continueon Existing Release<br />
    23. 23. New Dimension<br />Base Release<br />Release 2<br />
    24. 24. Base Release<br />Release 1<br />New Dimension<br />
    25. 25. Parallel Universes<br />Object Type<br />Object Name<br />Schema<br />Edition<br />Session run in context of Edition<br />
    26. 26. Editionable Objects<br />
    27. 27. Non Editionable Objects<br />
    28. 28. Application B<br />Application A<br />Ename<br />Job<br />Mgr<br />Sal<br />Comm<br />Hiredate<br />
    29. 29. Application A<br />Application B<br />Editioning View<br />Ename<br />Job<br />Mgr<br />Sal<br />Comm<br />Hiredate<br />
    30. 30. preUpgrade<br />postUpgrade<br />Editioning View<br />
    31. 31. “EditioningViews:<br />the New Tables”<br />
    32. 32. Application A<br />Application B<br />Edition R1<br />Edition R2<br />EV EMP<br />EV EMP<br />Ename<br />Job<br />Mgr<br />Sal<br />Comm<br />Hiredate<br />
    33. 33. Application A<br />Application B<br />Edition R1<br />Edition R2<br />EV EMP<br />EV EMP<br />Ename<br />Job<br />Mgr<br />Sal<br />Comm<br />Hiredate<br />Language<br />
    34. 34. DML<br />EV EMP<br />Edition R1<br />Edition R2<br />EV EMP<br />EV EMP<br />…<br />* language<br />Ename<br />Job<br />Mgr<br />Sal<br />Comm<br />Hiredate<br />Language<br />
    35. 35. DML<br />DML<br />EV EMP<br />…<br />- ename<br />o first_name<br />* last_name<br />Edition R1<br />Edition R2<br />Edition R3<br />EV EMP<br />EV EMP<br />…<br />* language<br />Ename<br />Job<br />Mgr<br />Sal<br />Comm<br />Hiredate<br />Language<br />Last_name<br />First_name<br />
    36. 36. DML<br />EV EMP<br />Forward CrossEdition Trigger<br />…<br />- ename<br />o first_name<br />* last_name<br />Edition R1<br />Edition R3<br />EV EMP<br />Ename<br />Job<br />Mgr<br />Sal<br />Comm<br />Hiredate<br />Language<br />Last_name<br />First_name<br />
    37. 37. DML<br />EV EMP<br />Reverse CrossEdition Trigger<br />…<br />- ename<br />o first_name<br />* last_name<br />Edition R1<br />Edition R3<br />EV EMP<br />Ename<br />Job<br />Mgr<br />Sal<br />Comm<br />Hiredate<br />Language<br />Last_name<br />First_name<br />
    38. 38. Parallel Application Versions<br />Application X<br />VERSION 1<br />Application X<br />VERSION 2<br />Release 2<br />Release 1<br />Base Release<br />
    39. 39. Version 1 on Base Edition<br />
    40. 40. Upgrade Base to Release 2<br />Authors<br />New columns COUNTRY and BIOGRAPHY<br />Books<br />Drop column NUM_OF_PAGES<br />Modified column ISBN (10 to 20 characters)<br />New columns LANGUAGE and PUBLICATION_YEAR<br />
    41. 41. Version 2 on Edition Release 2<br />
    42. 42. Version 1 on Edition Release 2<br />
    43. 43. Version 2 on Base Edition<br />
    44. 44. Preparing your Application<br />In 6 easy steps<br />
    45. 45.
    46. 46.
    47. 47.
    48. 48. 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<br />
    49. 49. Privileges<br />CREATE ANY EDITION<br />ALTER ANY EDITION<br />DROP ANY EDITION<br />ALTER USER ENABLE EDITIONS<br />GRANT USE ON &lt;EDITON&gt; TO &lt;USER&gt;<br />ALTER DATABASE DEFAULT EDITION &lt;edition&gt;<br />
    50. 50. Dictionary Views<br />*_EDITIONS<br />*_EDITION_COMMENTS<br />*_VIEWS_AE<br />*_SOURCE_AE<br />*_OBJECTS_AE<br />*_ERRORS_AE<br />*_EDITIONING_VIEWS_AE<br />*_EDITIONING_VIEW_COLS_AE<br />
    51. 51. “Best Practices”<br />Applications never access Tables<br />Application sets Edition<br />
    52. 52. Tidbits<br />Drop Object stops Inheritance<br />Editions can have one child<br />No branching (yet)<br />DBMS_SQL.PARSE in specific Edition<br />Online Table Redefinition<br />Fine Grained Dependency Tracking<br />
    53. 53. Summary<br />Application Upgrade no longer needs to disrupt the operation through planned downtime<br />
    54. 54. Q&A<br />
    55. 55. Alex Nuijten<br />alex.nuijten@amis.nl<br />Technology.amis.nlNuijten.blogspot.com<br />

    ×