SlideShare a Scribd company logo
1 of 40
Release 2 Release 3 Base Release Continuous Database Application Evolution with Oracle Database 11g Release 2  Lucas Jellema  AMIS, The Netherlands
Introducing Oracle 11gR2 Edition Based Redefinitionthe story of the Parallel Application Universes Release 2 Release 3 Base Release Lucas Jellema  AMIS, The Netherlands
Availability Availability = Performance * (Up or Down) Up = !Down Down = Unplanned Down + Planned Down Planned Down??? System Maintenance Power-supply, Hardware & Network, O/S upgrade Database patching & Upgrade Application Upgrades
Maximum Availability Architecture
Application Upgrade Creation of new objects Changing existing objects (alter and create or replace) Add, Modify or Drop columns or constraints Change packages and stored procedures Recompile Drop redundant objects Convert or migrate data Resume normal operations Application is DOWN
Compare with road maintenance
Restructuring A12 Build new road next to current one (A12-B) Same “functionality” as the old road At the cut-over moment Open new A12-B:  Newly arriving traffic travels on temporary road Close A12 (original) Cars already on old road keep going
11gR2 Editioning is similar Application Upgrade: Prepare new release Construct the release in parallel to the existing Operations in existing application ‘edition’ continue normally From the cut-over point: Have new sessions operate on new release Existing sessions can continue to run on existing release
11gR2 Editions introduces a new dimension in the database Release 3 Release 2 Base Release
Editions introduce or inherit versions of objects Release 2 Release 3 Base Release
Editions are parallel universes Database Objects are identified by Object Type Schema Object Name …. Edition! (release, application version, stripe, parallel universe id) Database Sessions run in the context of a specific edition  Using a specific collection of versions of objects
Database sessions run in a specific edition –one version of each object Release 2 Release 3 Base Release The database as seen by a sessionrunning in the context of Release 3 3 2 3 B 2 2 3 3 2
Demo of Application Upgrade Existing base application, in base edition Create new editon – release_2 Create and Alter database objects Base application continues running Cut-over point New sessions run in release_2 edition Current sessions continue in base
Some Rules for EBR (Edition Based Redefinition) Editioning acts on packages, functions, triggers, procedures, views, types and synonyms Editioning does not apply to tables Data is not versionend, cloned, migrated Different incarnations of a table are suggested through editionable views – there is only one table Applications should never access tables directly!
But wait, there is more After the release of a new edition – there is no reason why you cannot keep the previous one going for some time And multiple previous ones! That means – END OF THE BIG BANG upgrade! Multiple versions of the application can continue running to suport various user groups (e.g. SaaS) Without data migration and additional downtime upon later move over of user groups
Parallel Application Versions Application X VERSION 1 Application X VERSION 2 Release 2 Release 3 Base Release
Version 1 on Base Edition
Version 1 on Edition Release 2
Upgrade Base to Release 2 Authors New columns COUNTRY and BIOGRAPHY Books Drop column NUM_OF_PAGES Modified column ISBN (10 to 20 characters) New columns LANGUAGE and PUBLICATION_YEAR
Version 2 (on Edition Release 2)
Version 2 on Base Edition
Editions and Tables Tables cannot be versioned: there is only one definition of a table across all Editions Data is not versioned: a record exists once and only once The solution for managing changes to Tables: Editioning Views and Cross Edition Triggers Editioning Views are defined on base table (no joins) Editioning Views can have DML triggers defined (just like base table) Using an editioning view in a query or DML statement does not impact the performance of the query or DML
Editions and Tables Application A Application B Table EMP SAL MGR JOB ENAME HIREDATE COMM
Editions and Tables Application A Application B Editioning View EMP  Table EMP_BASE SAL MGR JOB ENAME HIREDATE COMM
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
Migrate to Editioning Views Rename Table (for example to <old table name>_BASE) Constraints continue to refer to the table Create the Editioning View with the old table name Using the ‘CREATE OR REPLACE EDITIONING VIEW <view name>’ statement Reroute privileges – grant on view rather than table Recompile the triggers on the table These now become triggers on the Editioning View Recompile all invalid PL/SQL program units and Views They now refer to the Editioning View instead of the table VPD policies are reassigned to the View Regular auditing and FGA is on the table
Demo ALTER TABLE EMP RENAME TO EMP_BASE; CREATE OR REPLACE EDITIONING VIEW EMP AS SELECT ... FROM   EMP_BASE / DROP TRIGGER EMP_BRI / Rem recreate trigger on Editioning View @<EMP_BRI>.trg Rem recompile invalid Views and PL/SQL units
Multiple versions of Editioning View  Application A Application B Edition R2 Edition R1 Editioning View EMP  Editioning View EMP  Table EMP_BASE SAL MGR JOB ENAME HIREDATE COMM
Multiple versions of Editioning View  Application A Application B Edition R2 Edition R1 View EMP (1.1) …* Language  View EMP (1.0) Table EMP_BASE SAL MGR JOB ENAME LANGUAGE HIREDATE COMM Forward CrosseditionTrigger
Demo CREATE EDITION R2 AS CHILD OF R1; ALTER SESSION SET EDITION R2; SELECT SYS_CONTEXT('Userenv', 'Current_Edition_Name') "Current_Edition" FROM DUAL; ALTER TABLE EMP_BASE ADD (LANGUAGE VARCHAR2(2) NULL); Rem function for deriving value for language CREATE OR REPLACE FUNCTION  GET_LANGUAGE( p_job in varchar2) return varchar2 is begin   return case p_job when 'MANAGER' then 'fr'                      else 'en' end; end;
Demo Rem Create Forward Crossedition Trigger Rem Applies to DML operations on EMP_BASE from  Rem Earlier Editions CREATE OR REPLACE TRIGGER EMP_1_1_Fwd_Xed BEFORE INSERT OR UPDATE ON EMP_BASE FOR EACH ROW FORWARD CROSSEDITION DISABLE BEGIN    :new.language = get_language(:new.job); END EMP_1_1_Fwd_Xed;  Rem Enable the Forward Crossedition Trigger ALTER TRIGGEREMP_1_1_Fwd_Xed ENABLE;
Demo Rem Use Forward Crossedition trigger to Rem upgrade existing table records according to new table Rem version (for large # records use dbms_parallel_execute) DECLARE    c NUMBER := DBMS_SQL.OPEN_CURSOR();    x NUMBER;  BEGIN    DBMS_SQL.PARSE   ( c => c   , Language_Flag => DBMS_SQL.NATIVE   , Statement => 'UPDATE EMP_BASE               SET EMPNO = EMPNO' , Apply_Crossedition_Trigger => 'EMP_1_1_Fwd_Xed'   );   x := DBMS_SQL.EXECUTE(c);    DBMS_SQL.CLOSE_CURSOR(c);  COMMIT;  END;
Upgrade Table Definition (Create Edition,) Set target Edition for session Make desired changes to the table Add columns, modify Columns, … (online redefinition) Modify the Editioning View in the Edition	 To reflect the table as its latest version should look Perhaps hiding columns you eventually want to drop (optional) Create Forward Crossedition Trigger on base table to have DML on previous Editions made valid (optional) Create Reverse Crossedition Trigger on base table to have DML on current Edition synch back
Cross Edition Triggers If you remove a (mandatory) column from the current Editioning View… a Reverse Crossedition Trigger ensures that new records get some value in that (invisible) column If you add a (mandatory) column to the table (and the current Editioning View)… a Forward Crossedition Trigger ensures that records DMLed through previous Editioning View versions are made valid (optionally) Apply Forward Crossedition Trigger for all existing records (created in old edition of the table) Use DBMS_SQL.parse (with parameter Apply_Crossedition_Trigger set to name of trigger) Use DBMS_PARALLEL_EXECUTE
Multiple versions of Editioning View  Application A Application B Edition R3 View EMP (1.1) … (minus ENAME)* Language o FIRST_NAME * LAST_NAME Edition R1 Edition R2 View EMP (1.1) …* Language  View EMP (1.0) Table EMP_BASE Reverse Crossedition Trigger SAL MGR JOB ENAME LANGUAGE FIRSTNAME LASTNAME HIREDATE COMM Forward CrosseditionTrigger
“Suggested (best) Practices” Every application (release) sets the Edition it requires when it connects to a session At the same time it calls dbms_application_info And sets other Context details Applications should never access tables – all access should be through views Only through views can the data structure itself be Editioned Even triggers should be on the Editioning View
Interesting EBR Tid-Bits Drop Object in an Edition stops the inheritance from previous Edition. Object no longer is carried forward Edition can have only one child – no branches (yet) DBMS_SQL.PARSE can be executed in a specific Edition Use parameter edition to specify other than current edition If no explicit edition is set for a session, the default edition is used ALTER DATABASE DEFAULT EDITION = edition_name;  Hints in queries against Editionable Views are understood in terms of the underlying table Logical EV column references are correctly mapped
Interesting EBR Tid-Bits DB Links & Materialized Views currently not editionable Objects of an editionable type are not editionable when used by a non-editional object PL/SQL Function used in Function Based Index or the definition of a Materialized View ADT used as the base type for a column in a table EBR (online upgrade) benefits from Online Table Redefinition and Fine Grained Dependency tracking Data Dictionary Views DBA_/ALL_EDITIONS – editions in the database DBA_/ALL_OBJECTS – objects (inherited) in current edition DBA_/ALL_OBJECTS_AE – actual objects across all editions
Summary 11gR2 Editions are parallel, co-existing universes with incarnations of database objects The new release can be constructed, tested and run in a new edition The old edition can be switched off at cut-over  Editions also allow long time co-existence of multiple releases of an application Application Upgrade no longer needs to disrupt the operation through planned downtime By the way: EBR is available in all DB editions
Conclusion See our blog for Oracle Database 11gR2 articles (other topics as well) http://technology.amis.nl/blog This presentation and the demo scripts are on the blog too Contact me: lucas.jellema@amis.nl

More Related Content

What's hot

Makalah jasa dan pelaporan lain
Makalah jasa dan pelaporan lainMakalah jasa dan pelaporan lain
Makalah jasa dan pelaporan laindewi masita
 
Psak 19-aset-tidak-berwujud-ias-38
Psak 19-aset-tidak-berwujud-ias-38Psak 19-aset-tidak-berwujud-ias-38
Psak 19-aset-tidak-berwujud-ias-38Sri Apriyanti Husain
 
Kas dan piutang
Kas dan piutangKas dan piutang
Kas dan piutangIsmaWati65
 
Pemeriksaan surat berharga.pptx
Pemeriksaan surat berharga.pptxPemeriksaan surat berharga.pptx
Pemeriksaan surat berharga.pptxTika880481
 
Fungsi & Indikator Balanced Scorecard (BSC)_Materi Training CREDIT SCORING
Fungsi & Indikator Balanced Scorecard (BSC)_Materi Training CREDIT SCORINGFungsi & Indikator Balanced Scorecard (BSC)_Materi Training CREDIT SCORING
Fungsi & Indikator Balanced Scorecard (BSC)_Materi Training CREDIT SCORINGKanaidi ken
 
Tugas Sistem informasi manajemen pertemuan 1-6 (nurul anisa)
Tugas Sistem informasi manajemen pertemuan 1-6 (nurul anisa)Tugas Sistem informasi manajemen pertemuan 1-6 (nurul anisa)
Tugas Sistem informasi manajemen pertemuan 1-6 (nurul anisa)nurul anisa
 

What's hot (8)

Makalah jasa dan pelaporan lain
Makalah jasa dan pelaporan lainMakalah jasa dan pelaporan lain
Makalah jasa dan pelaporan lain
 
Real option
Real optionReal option
Real option
 
Psak 19-aset-tidak-berwujud-ias-38
Psak 19-aset-tidak-berwujud-ias-38Psak 19-aset-tidak-berwujud-ias-38
Psak 19-aset-tidak-berwujud-ias-38
 
Kas dan piutang
Kas dan piutangKas dan piutang
Kas dan piutang
 
MANAJEMEN+PORTOFOLIO+OBLIGASI
MANAJEMEN+PORTOFOLIO+OBLIGASIMANAJEMEN+PORTOFOLIO+OBLIGASI
MANAJEMEN+PORTOFOLIO+OBLIGASI
 
Pemeriksaan surat berharga.pptx
Pemeriksaan surat berharga.pptxPemeriksaan surat berharga.pptx
Pemeriksaan surat berharga.pptx
 
Fungsi & Indikator Balanced Scorecard (BSC)_Materi Training CREDIT SCORING
Fungsi & Indikator Balanced Scorecard (BSC)_Materi Training CREDIT SCORINGFungsi & Indikator Balanced Scorecard (BSC)_Materi Training CREDIT SCORING
Fungsi & Indikator Balanced Scorecard (BSC)_Materi Training CREDIT SCORING
 
Tugas Sistem informasi manajemen pertemuan 1-6 (nurul anisa)
Tugas Sistem informasi manajemen pertemuan 1-6 (nurul anisa)Tugas Sistem informasi manajemen pertemuan 1-6 (nurul anisa)
Tugas Sistem informasi manajemen pertemuan 1-6 (nurul anisa)
 

Viewers also liked

Gitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQLGitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQLGerger
 
Gitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQLGitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQLGerger
 
Version control for PL/SQL
Version control for PL/SQLVersion control for PL/SQL
Version control for PL/SQLGerger
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsPrabhu Ramasamy
 
Introducing Gitora,the version control tool for PL/SQL
Introducing Gitora,the version control tool for PL/SQLIntroducing Gitora,the version control tool for PL/SQL
Introducing Gitora,the version control tool for PL/SQLGerger
 
Continuous Delivery at Oracle Database Insights
Continuous Delivery at Oracle Database InsightsContinuous Delivery at Oracle Database Insights
Continuous Delivery at Oracle Database InsightsMichael Medin
 
Using puppet to leverage DevOps in Large Enterprise Oracle Environments
Using puppet to leverage DevOps in Large Enterprise Oracle Environments Using puppet to leverage DevOps in Large Enterprise Oracle Environments
Using puppet to leverage DevOps in Large Enterprise Oracle Environments Bert Hajee
 
Building an Automated Database Deployment Pipeline
Building an Automated Database Deployment PipelineBuilding an Automated Database Deployment Pipeline
Building an Automated Database Deployment PipelineGrant Fritchey
 
Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentVladimir Bakhov
 
Context Based Learning for GIS: an Interdisciplinary Approach
Context Based Learning for GIS: an Interdisciplinary ApproachContext Based Learning for GIS: an Interdisciplinary Approach
Context Based Learning for GIS: an Interdisciplinary ApproachPatrick Rickles
 
Pre Production (Planning)
Pre Production (Planning)Pre Production (Planning)
Pre Production (Planning)Rahul Karavadra
 
портфолио голубович
портфолио голубовичпортфолио голубович
портфолио голубовичgolubovicholga
 
Creep Coursework Presentation
Creep Coursework PresentationCreep Coursework Presentation
Creep Coursework Presentationkess1a
 
Psicopedagoga rj.com.br Cadastro
Psicopedagoga rj.com.br   CadastroPsicopedagoga rj.com.br   Cadastro
Psicopedagoga rj.com.br CadastroPsicopedagogaRJ
 
Copia de resumen qué son los mapas conceptuales.doc%0 a
Copia de resumen qué son los mapas conceptuales.doc%0 aCopia de resumen qué son los mapas conceptuales.doc%0 a
Copia de resumen qué son los mapas conceptuales.doc%0 anoeliavillar
 
Nature and animal conservation by art
Nature and animal conservation by artNature and animal conservation by art
Nature and animal conservation by artART Raviteja akarapu
 

Viewers also liked (20)

Gitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQLGitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQL
 
Gitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQLGitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQL
 
Version control for PL/SQL
Version control for PL/SQLVersion control for PL/SQL
Version control for PL/SQL
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database Objects
 
Introducing Gitora,the version control tool for PL/SQL
Introducing Gitora,the version control tool for PL/SQLIntroducing Gitora,the version control tool for PL/SQL
Introducing Gitora,the version control tool for PL/SQL
 
Continuous Delivery at Oracle Database Insights
Continuous Delivery at Oracle Database InsightsContinuous Delivery at Oracle Database Insights
Continuous Delivery at Oracle Database Insights
 
Using puppet to leverage DevOps in Large Enterprise Oracle Environments
Using puppet to leverage DevOps in Large Enterprise Oracle Environments Using puppet to leverage DevOps in Large Enterprise Oracle Environments
Using puppet to leverage DevOps in Large Enterprise Oracle Environments
 
Building an Automated Database Deployment Pipeline
Building an Automated Database Deployment PipelineBuilding an Automated Database Deployment Pipeline
Building an Automated Database Deployment Pipeline
 
Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database Development
 
DevOps in your Oracle Stack
DevOps in your Oracle StackDevOps in your Oracle Stack
DevOps in your Oracle Stack
 
CopyofAResume
CopyofAResumeCopyofAResume
CopyofAResume
 
Context Based Learning for GIS: an Interdisciplinary Approach
Context Based Learning for GIS: an Interdisciplinary ApproachContext Based Learning for GIS: an Interdisciplinary Approach
Context Based Learning for GIS: an Interdisciplinary Approach
 
Pre Production (Planning)
Pre Production (Planning)Pre Production (Planning)
Pre Production (Planning)
 
портфолио голубович
портфолио голубовичпортфолио голубович
портфолио голубович
 
Creep Coursework Presentation
Creep Coursework PresentationCreep Coursework Presentation
Creep Coursework Presentation
 
Psicopedagoga rj.com.br Cadastro
Psicopedagoga rj.com.br   CadastroPsicopedagoga rj.com.br   Cadastro
Psicopedagoga rj.com.br Cadastro
 
Copia de resumen qué son los mapas conceptuales.doc%0 a
Copia de resumen qué son los mapas conceptuales.doc%0 aCopia de resumen qué son los mapas conceptuales.doc%0 a
Copia de resumen qué son los mapas conceptuales.doc%0 a
 
Portfolio Draft
Portfolio DraftPortfolio Draft
Portfolio Draft
 
Nature and animal conservation by art
Nature and animal conservation by artNature and animal conservation by art
Nature and animal conservation by art
 
ckitterman resume
ckitterman resumeckitterman resume
ckitterman resume
 

Similar to Edition Based Redefinition - Continuous Database Application Evolution with Oracle Database 11g Release 2

Introducing and Demonstrating Oracle Database 11gR2's Killer Feature – Editio...
Introducing and Demonstrating Oracle Database 11gR2's Killer Feature – Editio...Introducing and Demonstrating Oracle Database 11gR2's Killer Feature – Editio...
Introducing and Demonstrating Oracle Database 11gR2's Killer Feature – Editio...Lucas Jellema
 
Edition Based Redefinition
Edition Based RedefinitionEdition Based Redefinition
Edition Based RedefinitionAlex Nuijten
 
Tales from a Parallel Universe: Using Oracle 11gR2's Edition Based Redefiniti...
Tales from a Parallel Universe: Using Oracle 11gR2's Edition Based Redefiniti...Tales from a Parallel Universe: Using Oracle 11gR2's Edition Based Redefiniti...
Tales from a Parallel Universe: Using Oracle 11gR2's Edition Based Redefiniti...Roel Hartman
 
Db2 migration -_tips,_tricks,_and_pitfalls
Db2 migration -_tips,_tricks,_and_pitfallsDb2 migration -_tips,_tricks,_and_pitfalls
Db2 migration -_tips,_tricks,_and_pitfallssam2sung2
 
Oracle11g R2 - Edition Based Redefinition for On Line Application Upgrade
Oracle11g R2 - Edition Based Redefinition for On Line Application UpgradeOracle11g R2 - Edition Based Redefinition for On Line Application Upgrade
Oracle11g R2 - Edition Based Redefinition for On Line Application UpgradeLucas Jellema
 
My sql with querys
My sql with querysMy sql with querys
My sql with querysNIRMAL FELIX
 
Oracle applications r12.2, ebr, online patching means lot of work for devel...
Oracle applications r12.2, ebr, online patching   means lot of work for devel...Oracle applications r12.2, ebr, online patching   means lot of work for devel...
Oracle applications r12.2, ebr, online patching means lot of work for devel...Ajith Narayanan
 
Editioning use in ebs
Editioning use in  ebsEditioning use in  ebs
Editioning use in ebspasalapudi123
 
How to upgrade your application with no downtime (using edition-based redefin...
How to upgrade your application with no downtime (using edition-based redefin...How to upgrade your application with no downtime (using edition-based redefin...
How to upgrade your application with no downtime (using edition-based redefin...Oren Nakdimon
 
DB2 9 for z/OS - Business Value
DB2 9 for z/OS  - Business  ValueDB2 9 for z/OS  - Business  Value
DB2 9 for z/OS - Business ValueSurekha Parekh
 
PostgreSQL Database Slides
PostgreSQL Database SlidesPostgreSQL Database Slides
PostgreSQL Database Slidesmetsarin
 
R12 d49656 gc10-apps dba 26
R12 d49656 gc10-apps dba 26R12 d49656 gc10-apps dba 26
R12 d49656 gc10-apps dba 26zeesniper
 
ELT Publishing Tool Overview V3_Jeff
ELT Publishing Tool Overview V3_JeffELT Publishing Tool Overview V3_Jeff
ELT Publishing Tool Overview V3_JeffJeff McQuigg
 
Apache Cassandra 2.0
Apache Cassandra 2.0Apache Cassandra 2.0
Apache Cassandra 2.0Joe Stein
 
Creating a database
Creating a databaseCreating a database
Creating a databaseRahul Gupta
 
Cursors, triggers, procedures
Cursors, triggers, proceduresCursors, triggers, procedures
Cursors, triggers, proceduresVaibhav Kathuria
 

Similar to Edition Based Redefinition - Continuous Database Application Evolution with Oracle Database 11g Release 2 (20)

Introducing and Demonstrating Oracle Database 11gR2's Killer Feature – Editio...
Introducing and Demonstrating Oracle Database 11gR2's Killer Feature – Editio...Introducing and Demonstrating Oracle Database 11gR2's Killer Feature – Editio...
Introducing and Demonstrating Oracle Database 11gR2's Killer Feature – Editio...
 
Edition Based Redefinition
Edition Based RedefinitionEdition Based Redefinition
Edition Based Redefinition
 
Tales from a Parallel Universe: Using Oracle 11gR2's Edition Based Redefiniti...
Tales from a Parallel Universe: Using Oracle 11gR2's Edition Based Redefiniti...Tales from a Parallel Universe: Using Oracle 11gR2's Edition Based Redefiniti...
Tales from a Parallel Universe: Using Oracle 11gR2's Edition Based Redefiniti...
 
Db2 migration -_tips,_tricks,_and_pitfalls
Db2 migration -_tips,_tricks,_and_pitfallsDb2 migration -_tips,_tricks,_and_pitfalls
Db2 migration -_tips,_tricks,_and_pitfalls
 
AWS RDS Migration Tool
AWS RDS Migration Tool AWS RDS Migration Tool
AWS RDS Migration Tool
 
My sql.ppt
My sql.pptMy sql.ppt
My sql.ppt
 
Oracle11g R2 - Edition Based Redefinition for On Line Application Upgrade
Oracle11g R2 - Edition Based Redefinition for On Line Application UpgradeOracle11g R2 - Edition Based Redefinition for On Line Application Upgrade
Oracle11g R2 - Edition Based Redefinition for On Line Application Upgrade
 
My sql with querys
My sql with querysMy sql with querys
My sql with querys
 
Oracle applications r12.2, ebr, online patching means lot of work for devel...
Oracle applications r12.2, ebr, online patching   means lot of work for devel...Oracle applications r12.2, ebr, online patching   means lot of work for devel...
Oracle applications r12.2, ebr, online patching means lot of work for devel...
 
Editioning use in ebs
Editioning use in  ebsEditioning use in  ebs
Editioning use in ebs
 
Editioning use in ebs
Editioning use in  ebsEditioning use in  ebs
Editioning use in ebs
 
How to upgrade your application with no downtime (using edition-based redefin...
How to upgrade your application with no downtime (using edition-based redefin...How to upgrade your application with no downtime (using edition-based redefin...
How to upgrade your application with no downtime (using edition-based redefin...
 
DB2 9 for z/OS - Business Value
DB2 9 for z/OS  - Business  ValueDB2 9 for z/OS  - Business  Value
DB2 9 for z/OS - Business Value
 
PostgreSQL Database Slides
PostgreSQL Database SlidesPostgreSQL Database Slides
PostgreSQL Database Slides
 
Upgrading 11i E-business Suite to R12 E-business Suite
Upgrading 11i E-business Suite to R12 E-business SuiteUpgrading 11i E-business Suite to R12 E-business Suite
Upgrading 11i E-business Suite to R12 E-business Suite
 
R12 d49656 gc10-apps dba 26
R12 d49656 gc10-apps dba 26R12 d49656 gc10-apps dba 26
R12 d49656 gc10-apps dba 26
 
ELT Publishing Tool Overview V3_Jeff
ELT Publishing Tool Overview V3_JeffELT Publishing Tool Overview V3_Jeff
ELT Publishing Tool Overview V3_Jeff
 
Apache Cassandra 2.0
Apache Cassandra 2.0Apache Cassandra 2.0
Apache Cassandra 2.0
 
Creating a database
Creating a databaseCreating a database
Creating a database
 
Cursors, triggers, procedures
Cursors, triggers, proceduresCursors, triggers, procedures
Cursors, triggers, procedures
 

More from Lucas Jellema

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Lucas Jellema
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Lucas Jellema
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lucas Jellema
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Lucas Jellema
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...Lucas Jellema
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...Lucas Jellema
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Lucas Jellema
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)Lucas Jellema
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Lucas Jellema
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Lucas Jellema
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Lucas Jellema
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Lucas Jellema
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...Lucas Jellema
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Lucas Jellema
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Lucas Jellema
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...Lucas Jellema
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Lucas Jellema
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Lucas Jellema
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Lucas Jellema
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Lucas Jellema
 

More from Lucas Jellema (20)

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
 

Recently uploaded

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 

Edition Based Redefinition - Continuous Database Application Evolution with Oracle Database 11g Release 2

  • 1. Release 2 Release 3 Base Release Continuous Database Application Evolution with Oracle Database 11g Release 2 Lucas Jellema AMIS, The Netherlands
  • 2. Introducing Oracle 11gR2 Edition Based Redefinitionthe story of the Parallel Application Universes Release 2 Release 3 Base Release Lucas Jellema AMIS, The Netherlands
  • 3. Availability Availability = Performance * (Up or Down) Up = !Down Down = Unplanned Down + Planned Down Planned Down??? System Maintenance Power-supply, Hardware & Network, O/S upgrade Database patching & Upgrade Application Upgrades
  • 5. Application Upgrade Creation of new objects Changing existing objects (alter and create or replace) Add, Modify or Drop columns or constraints Change packages and stored procedures Recompile Drop redundant objects Convert or migrate data Resume normal operations Application is DOWN
  • 6. Compare with road maintenance
  • 7. Restructuring A12 Build new road next to current one (A12-B) Same “functionality” as the old road At the cut-over moment Open new A12-B: Newly arriving traffic travels on temporary road Close A12 (original) Cars already on old road keep going
  • 8. 11gR2 Editioning is similar Application Upgrade: Prepare new release Construct the release in parallel to the existing Operations in existing application ‘edition’ continue normally From the cut-over point: Have new sessions operate on new release Existing sessions can continue to run on existing release
  • 9. 11gR2 Editions introduces a new dimension in the database Release 3 Release 2 Base Release
  • 10. Editions introduce or inherit versions of objects Release 2 Release 3 Base Release
  • 11. Editions are parallel universes Database Objects are identified by Object Type Schema Object Name …. Edition! (release, application version, stripe, parallel universe id) Database Sessions run in the context of a specific edition Using a specific collection of versions of objects
  • 12. Database sessions run in a specific edition –one version of each object Release 2 Release 3 Base Release The database as seen by a sessionrunning in the context of Release 3 3 2 3 B 2 2 3 3 2
  • 13. Demo of Application Upgrade Existing base application, in base edition Create new editon – release_2 Create and Alter database objects Base application continues running Cut-over point New sessions run in release_2 edition Current sessions continue in base
  • 14. Some Rules for EBR (Edition Based Redefinition) Editioning acts on packages, functions, triggers, procedures, views, types and synonyms Editioning does not apply to tables Data is not versionend, cloned, migrated Different incarnations of a table are suggested through editionable views – there is only one table Applications should never access tables directly!
  • 15. But wait, there is more After the release of a new edition – there is no reason why you cannot keep the previous one going for some time And multiple previous ones! That means – END OF THE BIG BANG upgrade! Multiple versions of the application can continue running to suport various user groups (e.g. SaaS) Without data migration and additional downtime upon later move over of user groups
  • 16. Parallel Application Versions Application X VERSION 1 Application X VERSION 2 Release 2 Release 3 Base Release
  • 17. Version 1 on Base Edition
  • 18. Version 1 on Edition Release 2
  • 19. Upgrade Base to Release 2 Authors New columns COUNTRY and BIOGRAPHY Books Drop column NUM_OF_PAGES Modified column ISBN (10 to 20 characters) New columns LANGUAGE and PUBLICATION_YEAR
  • 20. Version 2 (on Edition Release 2)
  • 21. Version 2 on Base Edition
  • 22. Editions and Tables Tables cannot be versioned: there is only one definition of a table across all Editions Data is not versioned: a record exists once and only once The solution for managing changes to Tables: Editioning Views and Cross Edition Triggers Editioning Views are defined on base table (no joins) Editioning Views can have DML triggers defined (just like base table) Using an editioning view in a query or DML statement does not impact the performance of the query or DML
  • 23. Editions and Tables Application A Application B Table EMP SAL MGR JOB ENAME HIREDATE COMM
  • 24. Editions and Tables Application A Application B Editioning View EMP Table EMP_BASE SAL MGR JOB ENAME HIREDATE COMM
  • 25. 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
  • 26. Migrate to Editioning Views Rename Table (for example to <old table name>_BASE) Constraints continue to refer to the table Create the Editioning View with the old table name Using the ‘CREATE OR REPLACE EDITIONING VIEW <view name>’ statement Reroute privileges – grant on view rather than table Recompile the triggers on the table These now become triggers on the Editioning View Recompile all invalid PL/SQL program units and Views They now refer to the Editioning View instead of the table VPD policies are reassigned to the View Regular auditing and FGA is on the table
  • 27. Demo ALTER TABLE EMP RENAME TO EMP_BASE; CREATE OR REPLACE EDITIONING VIEW EMP AS SELECT ... FROM EMP_BASE / DROP TRIGGER EMP_BRI / Rem recreate trigger on Editioning View @<EMP_BRI>.trg Rem recompile invalid Views and PL/SQL units
  • 28. Multiple versions of Editioning View Application A Application B Edition R2 Edition R1 Editioning View EMP Editioning View EMP Table EMP_BASE SAL MGR JOB ENAME HIREDATE COMM
  • 29. Multiple versions of Editioning View Application A Application B Edition R2 Edition R1 View EMP (1.1) …* Language View EMP (1.0) Table EMP_BASE SAL MGR JOB ENAME LANGUAGE HIREDATE COMM Forward CrosseditionTrigger
  • 30. Demo CREATE EDITION R2 AS CHILD OF R1; ALTER SESSION SET EDITION R2; SELECT SYS_CONTEXT('Userenv', 'Current_Edition_Name') "Current_Edition" FROM DUAL; ALTER TABLE EMP_BASE ADD (LANGUAGE VARCHAR2(2) NULL); Rem function for deriving value for language CREATE OR REPLACE FUNCTION GET_LANGUAGE( p_job in varchar2) return varchar2 is begin return case p_job when 'MANAGER' then 'fr' else 'en' end; end;
  • 31. Demo Rem Create Forward Crossedition Trigger Rem Applies to DML operations on EMP_BASE from Rem Earlier Editions CREATE OR REPLACE TRIGGER EMP_1_1_Fwd_Xed BEFORE INSERT OR UPDATE ON EMP_BASE FOR EACH ROW FORWARD CROSSEDITION DISABLE BEGIN :new.language = get_language(:new.job); END EMP_1_1_Fwd_Xed; Rem Enable the Forward Crossedition Trigger ALTER TRIGGEREMP_1_1_Fwd_Xed ENABLE;
  • 32. Demo Rem Use Forward Crossedition trigger to Rem upgrade existing table records according to new table Rem version (for large # records use dbms_parallel_execute) DECLARE c NUMBER := DBMS_SQL.OPEN_CURSOR(); x NUMBER; BEGIN DBMS_SQL.PARSE ( c => c , Language_Flag => DBMS_SQL.NATIVE , Statement => 'UPDATE EMP_BASE SET EMPNO = EMPNO' , Apply_Crossedition_Trigger => 'EMP_1_1_Fwd_Xed' ); x := DBMS_SQL.EXECUTE(c); DBMS_SQL.CLOSE_CURSOR(c); COMMIT; END;
  • 33. Upgrade Table Definition (Create Edition,) Set target Edition for session Make desired changes to the table Add columns, modify Columns, … (online redefinition) Modify the Editioning View in the Edition To reflect the table as its latest version should look Perhaps hiding columns you eventually want to drop (optional) Create Forward Crossedition Trigger on base table to have DML on previous Editions made valid (optional) Create Reverse Crossedition Trigger on base table to have DML on current Edition synch back
  • 34. Cross Edition Triggers If you remove a (mandatory) column from the current Editioning View… a Reverse Crossedition Trigger ensures that new records get some value in that (invisible) column If you add a (mandatory) column to the table (and the current Editioning View)… a Forward Crossedition Trigger ensures that records DMLed through previous Editioning View versions are made valid (optionally) Apply Forward Crossedition Trigger for all existing records (created in old edition of the table) Use DBMS_SQL.parse (with parameter Apply_Crossedition_Trigger set to name of trigger) Use DBMS_PARALLEL_EXECUTE
  • 35. Multiple versions of Editioning View Application A Application B Edition R3 View EMP (1.1) … (minus ENAME)* Language o FIRST_NAME * LAST_NAME Edition R1 Edition R2 View EMP (1.1) …* Language View EMP (1.0) Table EMP_BASE Reverse Crossedition Trigger SAL MGR JOB ENAME LANGUAGE FIRSTNAME LASTNAME HIREDATE COMM Forward CrosseditionTrigger
  • 36. “Suggested (best) Practices” Every application (release) sets the Edition it requires when it connects to a session At the same time it calls dbms_application_info And sets other Context details Applications should never access tables – all access should be through views Only through views can the data structure itself be Editioned Even triggers should be on the Editioning View
  • 37. Interesting EBR Tid-Bits Drop Object in an Edition stops the inheritance from previous Edition. Object no longer is carried forward Edition can have only one child – no branches (yet) DBMS_SQL.PARSE can be executed in a specific Edition Use parameter edition to specify other than current edition If no explicit edition is set for a session, the default edition is used ALTER DATABASE DEFAULT EDITION = edition_name; Hints in queries against Editionable Views are understood in terms of the underlying table Logical EV column references are correctly mapped
  • 38. Interesting EBR Tid-Bits DB Links & Materialized Views currently not editionable Objects of an editionable type are not editionable when used by a non-editional object PL/SQL Function used in Function Based Index or the definition of a Materialized View ADT used as the base type for a column in a table EBR (online upgrade) benefits from Online Table Redefinition and Fine Grained Dependency tracking Data Dictionary Views DBA_/ALL_EDITIONS – editions in the database DBA_/ALL_OBJECTS – objects (inherited) in current edition DBA_/ALL_OBJECTS_AE – actual objects across all editions
  • 39. Summary 11gR2 Editions are parallel, co-existing universes with incarnations of database objects The new release can be constructed, tested and run in a new edition The old edition can be switched off at cut-over Editions also allow long time co-existence of multiple releases of an application Application Upgrade no longer needs to disrupt the operation through planned downtime By the way: EBR is available in all DB editions
  • 40. Conclusion See our blog for Oracle Database 11gR2 articles (other topics as well) http://technology.amis.nl/blog This presentation and the demo scripts are on the blog too Contact me: lucas.jellema@amis.nl

Editor's Notes

  1. Synonyms are editionableADT are not – though ADTs not used in (Editionable) Table may beAfter a drop you can recreate an object –the ancestry is based on name alone so the end result is the same as the starting pointEditions really is an extension of the Name Resolution mechanismIn addition to name and schema, the edition is taken into accountSQL Execution plans are the same for queries against the table and against the Editioning ViewWhen View 1 depends on View 2 – which version of View 2 is the one picked for view 1?The selection is made like this: whichever version of View 2 that is actual in the Edition where View 1 is createdFixed in 11g – DDL in parallel with running transactions against the same objects (?)Also/part of that: fine grained dependency trackingTools for comparing Editions?List of actual in Edition 2 and Edition 1Compare object levelDIYVPD and FGA work fine with Editionable Views