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

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

Transcript of 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

Page 1: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

1

Session S317113: What do I really need to know when upgrading

Thomas Kytehttp://asktom.oracle.com/

Page 2: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

2

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

Change

Page 3: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

3

Small Change – but think about it…

Let’s Go

Green

Page 4: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

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.

Page 5: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

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 |

--------------------------------------------------------------------------------------

Page 6: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

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.

Page 7: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

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 |

---------------------------------------------------------------------------

Page 8: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

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.”

Page 9: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

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….

Page 10: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

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

Page 11: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

11© 2010 Oracle Corporation 11

First – what do we need to do?

Page 12: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

12

Database Upgrade Process: Steps

1. Analyze & gather information about environment2. Determine the upgrade path and choose upgrade method3. 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 reports7. Ensure adequate performance by comparing metrics gathered

before and after upgrade8. Remediate regressions, e.g, tune queries, update database

parameters, call Support, etc.9. Go Live!

Planning AheadForget and let it go

ASH and AWR

Test To ScaleSQL Plan Management

Never Stopping

Page 13: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

13© 2010 Oracle Corporation 13

SQL Plan Management

Page 14: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

14

SQL Plan ManagementPhase 1 - Capture

• Run applications to create a baseline– OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES=TRUE

Plan History

HJ

HJ

GB

Plan BaselineParse

HJ

HJ

GB

Repeated plans will be added to the SQL Plan Baseline during this phase

SQL MANAGEMENT BASEResiding in SYSAUX TS.

Will occupy max. 10% of SYSAUX.Weekly job will delete plans

not used in 53 weeks [default].

Page 15: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

15

SQL Plan ManagementPhase 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

NL

GB

Plan History

Plan Baseline

HJ

HJ

GB

GB

NL

NL

GB

NL

NL

GB

NL

NL

HJ

HJ

GB

HJ

HJ

GB

Page 16: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

16

SQL Plan ManagementPhase 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

NL

DBA

GB

HJ

HJ

Equal or better plans can be added to the SQL Plan Baseline GB

NL

NL

Inefficient plan willbe kept in the

Plan History

GB

NL

NL

Automatic Job

Page 17: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

17

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….

Page 18: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

18

SQL Plan Management – Parameterize

Plan History

Plan Baseline

GB

NL

NL

GB

HJ

HJ

GB

NL

NL

Repeatable plans will be addedto the Plan Baseline upon 2ndexecution

OPTIMIZER_FEATURES_ENABLE=9.2.0OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES=TRUE

STS

GB

NL

NL

Now: Differentplans createdwith OFE=11will be added tothe Plan Historyfor later verification

OPTIMIZER_FEATURES_ENABLE=11.2.0OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES=FALSE

Page 19: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

19

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….

Page 20: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

20

SQL Plan Management – Outlines

STS SS

Capture query outlines on the production system

Exp/imp outlines toNew system

exp impexpdp impdp

DB-Link ...

Plan History

Plan Baseline

GB

NL

NL

GB

HJ

HJ

GB

NL

NL

DBMS_SPM.MIGRATE_STORED_OUTLINE3

Page 21: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

21

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….

Page 22: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

22

SQL Plan Management – Tuning Pack

STS

Staging

Table

exp impexpdp impdp

DB-Link ...

STS

Plan History

Plan Baseline

GB

NL

NL

GB

HJ

HJ

GB

NL

NL

10.2 plans will becomethe SQL Plan Baseline

GB

NL

NL

3

Page 23: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

23

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….

Page 24: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

24

SQL Plan Management - New Application

DBMS_SPM.UNPACK_STGTAB_BASELINE

Plan Baseline

GB

NL

NL

GB

HJ

HJ

GB

NL

NL

3

@Vendor

Plan Baseline

GB

NL

NL

GB

HJ

HJ

GB

NL

NL

DBMS_SPM.CREATE_STGTAB_BASELINE

DBMS_SPM.PACK_STGTAB_BASELINE

Staging

Table

exp impexpdp impdp

@Customer

Staging

Table

Page 25: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

25© 2010 Oracle Corporation 25

Test to Scale

Page 26: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

26

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 (9i, 10g, 11g)–Move the captured workload to test system (11g)

• 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

Page 27: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

27

Supported Changes

Changes Supported•Database Upgrades, Patches

•Schema, Parameters

•RAC nodes, Interconnect

•OS Platforms, OS Upgrades

•CPU, Memory

•Storage

•Etc.

ClientClient

…Client

Middle Tier

Storage

Recording of External Client

Requests

Changes Unsupported

(there are other tools

for that)

Page 28: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

28

Step 1: Workload Capture

File 1

File 2

File n

Production System

File System

ClientClient

…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 9i, 10g, and 11g and replay on 11g

• Capture load for interesting time period, e.g., peak workload, month-end processing, etc.

Page 29: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

29

Step 2: Process Workload Files

File 1

File 2

File n

MetadataReplay 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

Page 30: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

30

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 FilesMetadata

Page 31: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

31

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

Page 32: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

32

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

Page 33: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

33

SQL Performance Analyzer: WorkflowProduction Test

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

Page 34: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

34

To:

SQL Performance Analyzer: Key Differentiators

Automatic regression tuning

Low risk, Low cost

Automated SQL capture, Negligible overhead

Production SQL context

From:

Manual regression tuning

High risk, High cost

Manual SQL capture, High overhead

Non-production SQL context

Automated analysis in minutesMonths of manual analysis

Complete SQL workloadPartial SQL workload

Page 35: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

35

Real Application Testing: Tools of the Trade

SQL Performance Analyzer Database Replay

What is it? •Predicts SQL performance deviations before end-users can be impacted, helps assess impact of change on SQL response time

•Replays real database workload on test system, helps assess impact of change on workload throughput

How it works? •Executes each SQL, stored in SQL Tuning Set, in isolation using production context and then compares before and after execution plans and run-time statistics

•Captures workloads and replays it with production characteristics including concurrency, synchronization & dependencies

When to use? •Unit testing of SQL with the goal to identify the set of SQL statements with improved/regressed performance

•Comprehensive testing of all sub-systems of the database server using real production workload

SQLSQL

Dependency

Concurrency

Speed up/down

Page 36: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

36

More information…

• Hands on Lab: S318966 – Database and Application Testing HOL– Wed: 4.45-5.45 pm – Marriott Golden Gate

• SPA / Database Replay Demo grounds – Moscone West: 038/039

Page 37: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

37© 2010 Oracle Corporation 37

The Ability to forget And let it go

Page 38: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

38

Flashback for Rapid Recovery from Human Error

FlashbackDatabase

FlashbackData Archive

and Transaction

FlashbackTables

FlashbackQuery

Page 39: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

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;

Page 40: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

40© 2010 Oracle Corporation 40

Never Stopping

Page 41: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

41

Rolling Database Upgrades

Major ReleaseUpgrades

Patch SetUpgrades

Cluster Software & Hardware Upgrades

Initial SQL Apply Config

ClientsRedo

Version X Version X1

BA

Switchover to B, upgrade A

Redo

4

Upgrade

X+1X+1

BA

Run in mixed mode to test

Redo

3X+1X

A B

Upgrade node B to X+1

Upgrade

LogsQueue

X2

X+1

A B

Page 42: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

42

Online Application UpgradeEdition-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

Page 43: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

43

Editions & object visibility

Object_4

Object_3

Object_2

Object_1

Pre-upgrade edition

Page 44: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

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)

(inherited)

(inherited)

(inherited)

Object_4

Object_3

Page 45: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

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)

(actual)

(inherited)

(inherited)

Page 46: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

46© 2010 Oracle Corporation 46

Planning AheadUpgrade Planner

Page 47: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

47

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.

Page 48: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

48© 2010 Oracle Corporation 48

My Oracle Support

PerformanceManagement

Enterprise Manager

Provisioning& Patching

ProblemDiagnosis

MOS-EM: Unified View, Integrated InformationBetween My Oracle Support and Enterprise Manager

Oracle

Customer

DatabasesOperating Systems Middleware Applications

Problem/SRManagement

ConfigurationManagement

KnowledgeManagement

Problem/SRManagement

ConfigurationManagement

KnowledgeManagement

Page 49: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

49© 2010 Oracle Corporation 49

My Oracle Support – Upgrade PlannerWhat Are We Announcing?

• New Feature in My Oracle Support– Assist customers in planning the an Upgrade of Oracle technology

• Benefits– Reduced time to create, manage and execute Upgrade plan

• Streamlined process to request merge patches– Greater Reliability due to Software Currency

• Latest SW, Patch, and Certification information • Accuracy of recommendations based on config data (not manual)– Lower Risk

• Automated analysis for missing patches and conflict checking

Page 50: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

50© 2010 Oracle Corporation 50

• Upgrade from 10.2.0.4 to 11.2

• Where do I get the software

• What are the valid SW upgrade paths ?

• What is the certification/EOL status of the SW ?

• What recommended patches do I apply post-upgrade?

• How do I know if my 10.2.0.4 fixes will be on my 11.2 upgrade?

• Are there patch conflicts?

• Upgrade path SW recommendations w/

• Certification /EOL checks

• Recommended Patches

• Replacement/Merge Patch

• Conflict Analysis for Patches

• Research and Add Patches

• Review Patch Feedback

• Links to latest Support

• Best Practices and knowledge

• Reduced Time in research, analysis and management of Upgrade Plan

• Reduced Risk due to increased accuracy (automated analysis)

• Improved quality of plan due to latest Oracle Advice, Best Practices

My Oracle Support: Upgrade Planner

ChallengesChallenges CapabilitiesCapabilities ValueValue

Page 51: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

5151

‘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

UpgradeUpgrade Post-UpgradePost-Upgrade

Upgrade Plan

Upgrade Testing Rehearsal Production

Upgrade Monitor & Maintain

Enterprise Manager – Grid Control

Real Application Testing Provisioning Monitoring

Phase

Page 52: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

52

<Insert Picture Here>

How to get there

Page 53: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

53© 2010 Oracle Corporation 53

Upgrade is easier!

•The upgrade to Oracle Database 11g 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

Page 54: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

54

Documentation

–Note:785351.1  Upgrade Companion 11g Release 2

Page 55: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

55

What are my upgrade paths?Predictable performance post-upgrade

10.2.0.2 10.2.0.2

11.1.0.6 11.1.0.6

10.1.0.510.1.0.5

9.2.0.89.2.0.8

11.211.2

SQL Plan ManagementAutomated SQL tuningReal Application Testing

Page 56: 1 Session S317113: What do I really need to know when upgrading Thomas Kyte

56