Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 What do I really need to know when upgrading Thomas Kyte

Similar presentations


Presentation on theme: "1 What do I really need to know when upgrading Thomas Kyte"— Presentation transcript:

1 1 What do I really need to know when upgrading Thomas Kyte http://asktom.oracle.com/

2 2 So … What Does Oracle Database 11g Mean To Me? Change

3 3 Small Change – but think about it… Let’s Go Green

4 4 Small Change – but think about it… ops$tkyte%ORA11GR2> create table t 2 as 3 select substr(object_name, 1, 1 ) str, all_objects.* 4 from all_objects 5 order by dbms_random.random; Table created. ops$tkyte%ORA11GR2> create index t_idx on t(str,object_name); Index created. ops$tkyte%ORA11GR2> begin 2 dbms_stats.gather_table_stats 3 ( user, 'T', 4 method_opt => 'for all indexed columns size 254', 5 estimate_percent=>100 ); 6 end; 7 / PL/SQL procedure successfully completed.

5 5 Small Change – but think about it… ops$tkyte%ORA11GR2> select count(subobject_name) from t t1 where str = 'T'; … -------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 19 | 296 (0)| 00:00:04 | | 1 | SORT AGGREGATE | | 1 | 19 | | | | 2 | TABLE ACCESS BY INDEX ROWID| T | 292 | 5548 | 296 (0)| 00:00:04 | |* 3 | INDEX RANGE SCAN | T_IDX | 292 | | 4 (0)| 00:00:01 | --------------------------------------------------------------------------------------

6 6 Small Change – but think about it… ops$tkyte%ORA11GR2> insert into t 2 select 'T', all_objects.* 3 from all_objects 4 where rownum <= 1; 1 row created. ops$tkyte%ORA11GR2> begin 2 dbms_stats.gather_table_stats 3 ( user, 'T', 4 method_opt => 'for all indexed columns size 254', 5 estimate_percent=>100 ); 6 end; 7 / PL/SQL procedure successfully completed.

7 7 Small Change – but think about it… ops$tkyte%ORA11GR2> select count(subobject_name) from t t2 where str = 'T'; … --------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | --------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 19 | 297 (1)| 00:00:04 | | 1 | SORT AGGREGATE | | 1 | 19 | | | |* 2 | TABLE ACCESS FULL| T | 293 | 5567 | 297 (1)| 00:00:04 | ---------------------------------------------------------------------------

8 8 ““ The Law of unintended consequences holds that almost all human actions have at least one unintended consequence. Unintended consequences are a common phenomenon, due to the complexity of the world and human over-confidence. ”

9 9 What do you have from the past… Online Parameter Changes Online Major Memory Changes Online Schema Evolution Online Index Creates Quiesce Rolling Upgrades Online Disk reconfiguration (ASM) Online Cross Platform Tablespace Transport Full Database Transports And more….

10 10 What do you need to know? Test To Scale SQL Plan Management The ability to forget and let it go Never Stopping Planning Ahead

11 11 © 2010 Oracle Corporation 11 First – what do we need to do?

12 12 Database Upgrade Process: Steps 1.Analyze & gather information about environment 2.Determine the upgrade path and choose upgrade method 3.Prepare backup / recovery strategy and clone database to test 4.Establish performance baseline/metrics before upgrade 5.Develop a test plan for database, applications, and reports 6.Test upgraded database with applications and reports 7.Ensure adequate performance by comparing metrics gathered before and after upgrade 8.Remediate regressions, e.g, tune queries, update database parameters, call Support, etc. 9.Go Live! Planning Ahead Forget and let it goASH and AWR Test To Scale SQL Plan Management Never Stopping

13 13 © 2010 Oracle Corporation 13 ASH/AWR

14 14 Automatic Workload Repository (AWR) T1T2T3T4 You can report on: T2-T1 T3-T2 T3-T1 T4-T3 T4-T2 T4-T1 Shutdown/startup You can report on: T3-T2 T4-T3 T4-T2 select * from dba_hist_snapshot; Every N-Units of time, data is flushed from memory to disk (a snapshot) You can generate reports that cover any range of time (n-units of time at a time) We simply “subtract”

15 15 Active Session History (ASH) Point in time: V$SESSION V$SESSION_WAIT SGA Circular Buffer – sized By CPU_COUNT Short term memory: V$ACTIVE_SESSION_HISTORY Long term memory: DBA_HIST_ACTIVE_SESS_HISTORY Every hour or 2/3rds full in SGA V$ACTIVE_SESSION_HISTORY – about every second of activity DBA_HIST_ACTIVE_SESS_HISTORY – every 10 seconds of activity On demand flush When ever in memory buffer (V$) is 2/3rds full Retained using AWR retention policies

16 16 © 2010 Oracle Corporation 16 SQL Plan Management

17 17 SQL Plan Management Phase 1 - Capture Run applications to create a baseline –OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES=TRUE Plan History HJ GB Plan Baseline Parse HJ GB Repeated plans will be added to the SQL Plan Baseline during this phase SQL MANAGEMENT BASE Residing in SYSAUX TS. Will occupy max. 10% of SYSAUX. Weekly job will delete plans not used in 53 weeks [default].

18 18 SQL Plan Management Phase 2 - Selection New Plans are generated (because something changed) But are not trusted –OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES=FALSE New plan will be added to the Plan History but it won't be used unless and until it has been verified Hard Parse NL GB Plan History Plan Baseline HJ GB NL GB NL GB NL HJ GB HJ GB

19 19 SQL Plan Management Phase 3 – Evolution Plans are verified – by testing the performance of the new plan in the background –Automagically or Manually Plan History Plan Baseline GB NL DBA GB HJ Equal or better plans can be added to the SQL Plan Baseline GB NL Inefficient plan will be kept in the Plan History GB NL Automatic Job

20 20 Upgrade Scenario Your 9i application is already in 11g for whatever reason You’d like to have ‘query plan stability’ –Coupled with the opportunity to use better plans – do not want to be frozen The steps would be….

21 21 SQL Plan Management – Parameterize Plan History Plan Baseline GB NL GB HJ GB NL Repeatable plans will be added to the Plan Baseline upon 2nd execution OPTIMIZER_FEATURES_ENABLE= 9.2.0 OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES=TRUE  STS GB NL Now: Different plans created with OFE=11 will be added to the Plan History for later verification OPTIMIZER_FEATURES_ENABLE= 11.2.0 OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES=FALSE 

22 22 Upgrade Scenario Your application is in 9i You’d like to have ‘query plan stability’ –Coupled with the opportunity to use better plans – do not want to be frozen You will be changing platforms during the upgrade (not doing a direct upgrade of the database) The steps would be….

23 23 SQL Plan Management – Outlines STS SS  Capture query outlines on the production system Exp/imp outlines to New system exp imp expdp impdp DB-Link...  Plan History Plan Baseline GB NL GB HJ GB NL DBMS_SPM.MIGRATE_STORED_OUTLINE 3

24 24 Upgrade Scenario Same Scenario but your application is in 10g You’d like to have ‘query plan stability’ –Coupled with the opportunity to use better plans – do not want to be frozen You will be changing platforms during the upgrade (not doing a direct upgrade of the database) The steps would be….

25 25 SQL Plan Management – Tuning Pack STS  Staging Table exp imp expdp impdp DB-Link... STS  Plan History Plan Baseline GB NL GB HJ GB NL 10.2 plans will become the SQL Plan Baseline GB NL 3

26 26 Upgrade Scenario You would like to deploy from development to production.. You would like to deploy at a customer site… And you want to start with a stable set of plans –Using better plans only after they have been verified The steps would be….

27 27 SQL Plan Management - New Application DBMS_SPM.UNPACK_STGTAB_BASELINE Plan Baseline GB NL GB HJ GB NL 3  @Vendor Plan Baseline GB NL GB HJ GB NL DBMS_SPM.CREATE_STGTAB_BASELINE DBMS_SPM.PACK_STGTAB_BASELINE Staging Table exp imp expdp impdp  @Customer Staging Table

28 28 © 2010 Oracle Corporation 28 Test to Scale

29 29 Database Replay Overview Replay actual production database workload in test environment Identify, analyze and fix potential instabilities before making changes to production Capture Workload in Production –Capture full production workload with real load, timing & concurrency characteristics (9 i, 10 g, 11 g ) –Move the captured workload to test system (11 g ) Replay Workload in Test –Make the desired changes in test system –Replay workload with full production characteristics –Honor commit ordering Analyze & Report –Errors –Data divergence –Performance divergence Analysis & Reporting

30 30 Supported Changes Changes Supported Database Upgrades, Patches Schema, Parameters RAC nodes, Interconnect OS Platforms, OS Upgrades CPU, Memory Storage Etc. Client … Middle Tier Storage Recording of External Client Requests Changes Unsupported (there are other tools for that)

31 31 Step 1: Workload Capture File 1 File 2 File n … Production System File System Client … Middle Tier Storage All external client requests captured in binary files System background and internal activity excluded Minimal overhead –Avoids function call when possible –Buffered I/O Independent of client protocol Can capture on 9 i, 10 g, and 11 g and replay on 11g Capture load for interesting time period, e.g., peak workload, month-end processing, etc.

32 32 Step 2: Process Workload Files File 1 File 2 File n … Metadata Replay Files Test System File 1 File 2 File n … Capture Files Setup test system –Application data should be same as production system as of capture start time –Use RMAN, Snapshot Standby, imp/exp, Data Pump, etc. to create test system –Make change: upgrade db and/or OS, change storage, migrate platforms, etc. Processing transforms captured data into replayable format Once processed, workload can be replayed many times For RAC copy all capture files to single location for processing or use shared file system

33 33 Step 3: Replay Workload Replays workload preserving timing, concurrency and dependencies of the capture system Replay Client is a special program that consumes processed workload and sends requests to the replay system Clients interpret captured calls into sequence of OCI calls and submit to database For high concurrency workloads, it may be necessary to start multiple clients Test System Replay Clients File 1 File 2 File n … Replay Files Metadata

34 34 Analysis & Reporting Error Divergence: For each call error divergence is reported –New: Error encountered during replay not seen during capture –Not Found: Error encountered during capture not seen during replay –Mutated: Different error produced in replay than during capture Data Divergence –Replay: Number of rows returned by each call are compared and divergences reported –User: Application level validation scripts Performance Reporting –Capture and Replay Report: Provides high-level performance information –ADDM Report: Provides in-depth performance analysis –AWR, ASH Report: Facilitates comparative or skew analysis

35 35 Transport SQL SQL Performance Analyzer: Overview …… … Client Capture SQL Middle Tier Storage Oracle DB Re-execute SQL Production Test * No middle & application tier setup required Make Changes / Tuning Regressions If adequate spare cycles available, optionally execute SQL here

36 36 SQL Performance Analyzer: Workflow ProductionTest Capture SQL (STS) Transport STS Execute SQL Pre-change Execute SQL Post-change Compare Perf. Steps (1) (2) (3) (4) (5) (6) Reiterate (7) No Yes (7) Done? Make Change Production Change / Tuning Deployment Tuned System

37 37 © 2010 Oracle Corporation 37 The Ability to forget And let it go

38 38 Flashback for Rapid Recovery from Human Error Flashback Database Flashback Data Archive and Transaction Flashback Tables Flashback Query

39 39 Restore Points Restore point – specifies a jump label –Named Restore Point Similar to a bookmark "Can be" - but no guarantee Will be recorded to the control file –Guaranteed Restore Point Similar to storage snapshots Overrides the FLASHBACK_RETENTION_TARGET Attention: A guarantee restore point can stop the whole database SQL> CREATE RESTORE POINT rpt; SQL> FLASHBACK DATABASE TO RESTORE POINT rpt; SQL> CREATE RESTORE POINT rpt; SQL> FLASHBACK DATABASE TO RESTORE POINT rpt; SQL> CREATE RESTORE POINT grpt GUARANTEE FLASHBACK DATABASE; SQL> FLASHBACK DATABASE TO RESTORE POINT grpt; SQL> CREATE RESTORE POINT grpt GUARANTEE FLASHBACK DATABASE; SQL> FLASHBACK DATABASE TO RESTORE POINT grpt;

40 40 © 2010 Oracle Corporation 40 Never Stopping

41 41 Rolling Database Upgrades Major Release Upgrades Patch Set Upgrades Cluster Software & Hardware Upgrades Initial SQL Apply Config Clients Redo Version X 1 BA Switchover to B, upgrade A Redo 4 Upgrade X+1 BA Run in mixed mode to test Redo 3 X+1X AB Upgrade node B to X+1 Upgrade Logs Queue X 2 X+1 AB

42 42 Online Application Upgrade Edition-based redefinition 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

43 43 Editions & object visibility Object_4 Object_3 Object_2 Object_1 Pre-upgrade edition

44 44 Editions & object visibility Object_4 Object_3 Object_2 Object_1 Object_2 Object_1 Pre-upgrade edition Post-upgrade edition is child of (inherited) Object_4 Object_3

45 45 Editions & object visibility Object_4 Object_3 Object_2 Object_1 Object_4* Object_3* Object_2 Object_1 Pre-upgrade edition Post-upgrade edition is child of (actual) (inherited)

46 46 © 2010 Oracle Corporation 46 Planning Ahead Upgrade Planner

47 47 © 2010 Oracle Corporation 47 My Oracle Support Performance Management Enterprise Manager Provisioning & Patching Problem Diagnosis MOS-EM: Unified View, Integrated Information Between My Oracle Support and Enterprise Manager Oracle Customer Databases Operating Systems Middleware Applications Problem/SR Management Configuration Management Knowledge Management Problem/SR Management Configuration Management Knowledge Management

48 48 ‘End-to-End’ Upgrade Lifecycle My Oracle Support  EM Grid Control Integrated solution can be leveraged throughout full lifecycle Preparation My Oracle Support Upgrade Plan* Sub-Phase *Will be integrated in upcoming release Upgrade Post-Upgrade Upgrade Plan Upgrade Testing Rehearsal Production Upgrade Monitor & Maintain Enterprise Manager – Grid Control Real Application Testing ProvisioningMonitoring Phase

49 49 How to get there

50 50 © 2010 Oracle Corporation 50 Upgrade is easier! The upgrade to Oracle Database 11 g is much easier than any upgrades to earlier Oracle releases Size of Upgrade guides: –8.1.7- 512 pages –9.0.1- 484 pages – 111 steps for an RDBMS with 9 components –9.2.0- 344 pages –10.1.0- 170 pages –10.2.0- 140 pages –11.1.0- 186 pages –11.2.0 -178 pages

51 51 Documentation –Note:785351.1 Upgrade Companion 11g Release 2

52 52 What are my upgrade paths? Predictable performance post-upgrade  10.2.0.2  11.1.0.6 10.1.0.5 9.2.0.8 11.2 SQL Plan Management Automated SQL tuning Real Application Testing

53 53


Download ppt "1 What do I really need to know when upgrading Thomas Kyte"

Similar presentations


Ads by Google