44
ORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg Martin Hoermann [email protected] www.ordix.de

ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Embed Size (px)

Citation preview

Page 1: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

ORA-1555 snapshot too old Eine unerwartete Reise

DOAG Konferenz 19. - 21.11.2013, Nürnberg Martin Hoermann [email protected] www.ordix.de

Page 2: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Transaktionsmanagement „Snapshot too old“ UNDO Analyse Fetch Across Commits Delayed Block Cleanout SCN_ASCENDING Verschiedenes „Snapshot tool old“ vermeiden

Agenda

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 1

Page 3: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Transaktionsmanagement Eigenschaften von Transaktionen

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 2

Atomar Consistent Durable Isolated

Isolation Level

Page 4: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Read uncommitted / dirty read

Read committed

Repeatable read

Serializable

Transaktionsmanagement Isolation Level im ANSI-SQL-99 Standard

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 3

Page 5: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Oracle: Consistent Read Leser warten nie auf Schreiber Schreiber warten nie auf Leser

MS-SQL: Read Committed Snapshot Isolation Level

Informix: USELASTCOMMITTED-Configuration-Parameter

DB2: currently committed

Transaktionsmanagement Isolation Level

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 4

Page 6: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Transaktionsmanagement „Snapshot too old“ UNDO Analyse Fetch Across Commits Delayed Block Cleanout SCN_ASCENDING Verschiedenes „Snapshot tool old“ vermeiden

Agenda

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 5

Page 7: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

ORA-1555 (I)

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 6

SELECT * FROM data ORDER BY id;

Query Environment (QENV) = 4711 (SCN)

SCN=1200 SCN=1200 SCN=4050 SCN=1200 SCN=3370

4711 4712 4713 DB-SCN

Commit SCN

Page 8: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

ORA-1555 (II)

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 7

Query Environment (QENV) = 4711 (SCN)

4714

UPDATE data SET xyz = 'xxxx' WHERE id IN( 3333, 4444, 5555 ); commit; -- SCN 4714

SCN=1200 SCN=1200 SCN=1200 SCN=3370 SCN=1200

Page 9: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

SCN=1200

SCN=1200 SCN=1200 SCN=1200 SCN=3370 SCN=4714 RBS=7 Slot=3

ORA-1555 (III)

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 8

Query Environment (QENV) = 4711 (SCN)

SELECT * FROM v$bh WHERE file# = ... AND block# = ... AND status = 'cr';

4715 4714

Page 10: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

SLOT1…

SLOT2…

SLOT3…

UNDO xxx

ORA-1555 (IV)

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 9

Query Environment (QENV) = 4711 (SCN)

FROM v$bh

RBS-7

4716 4717

SCN=1200 SCN=1200 SCN=1200 SCN=4714 RBS=7 Slot=3

SCN=3370

Page 11: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

UNDO xxx

ORA-1555 (V)

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 10

Query Environment (QENV) = 4711 (SCN)

4719 4720

SLOT1…

SLOT2…

SLOT3…

SCN=1200 SCN=1200 SCN=4714 RBS=7 Slot=3

FROM v$bh

RBS-7

Page 12: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

ORA-1555 (VI)

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 11

ORA-01555: snapshot too old: rollback segment number 6 with name "_SYSSMU6_569811948$" too small 01555. 00000 - "snapshot too old: rollback segment number %s with name \"%s\" too small" *Cause: rollback records needed by a reader for consistent read are overwritten by other writers *Action: If in Automatic Undo Management mode, increase undo_retention setting. Otherwise, use larger rollback segments

Page 13: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Transaktionsmanagement „Snapshot too old“ UNDO Analyse Fetch Across Commits Delayed Block Cleanout SCN_ASCENDING Verschiedenes „Snapshot tool old“ vermeiden

Agenda

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 12

Page 14: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

UNDO-Tablespace Größe Autoextensible

UNDO-Retention Autoextend:

Tablespace wird erweitert um UNDO_RETENTION zu gewährleisten Kein Autoextend:

UNDO_RETENTION wird überschrieben durch TUNED_UNDO_RETENTION

UNDO-Guarantee

UNDO (I)

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 13

Page 15: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Active: Tranksaktion benötigt Informationen für Rollback

Unexpired: Transkation beendet, aber UNDO-Retention noch nicht abgelaufen

Expired: Transaktion beendet und älter als UNDO-Retention

UNDO (II)

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 14

After a transaction is committed, undo data is no longer needed for rollback or transaction recovery purposes. However, for consistent read purposes, long-running queries may require this old undo information for producing older images of data blocks. Furthermore, the success of several Oracle Flashback features can also depend upon the availability of older undo information. For these reasons, it is desirable to retain the old undo information for as long as possible. (Oracle Dokumentation)

Page 16: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

UNDO-Konfiguration

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 15

UNDO wird überschrieben wenn expired

Kein Platz im UNDO-Tablespace und Autoextend aus

Page 17: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

UNDO-Guarantee

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 16

Möglicher SQL-Fehler: ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS2' 30036. 00000 - "unable to extend segment by %s in undo tablespace '%s'“

*Cause: The specified undo tablespace has no more space available.

*Action: Add more space to the undo tablespace before retrying the operation. An alternative is to wait until active transactions to commit.

CREATE UNDO TABLESPACE undotbs2 DATAFILE 'E:\ORACLE\XE\APP\ORACLE\ORADATA\XE\UNDOTBS2.DBF' SIZE 4M AUTOEXTEND OFF RETENTION GUARANTEE;

Page 18: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

UNDO-Block überschrieben

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 17

i.d.R. durch umfangreiche Datenänderungen große Transaktionen

UNDO xxx SLOT1…

SLOT2…

SLOT3…

RBS-7

Page 19: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

UNDO-Header überschrieben

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 18

i.d.R. durch viele Transaktionen meist kurze Transaktionen

UNDO xxx SLOT1…

SLOT2…

SLOT3…

RBS-7

Page 20: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

UNDO-Management

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 19

Wenn UNDO_RETENTION > Max Query Length

UND

UNDO_TABLESPACE groß genug

DANN

gibt es keinen ORA-1555

Page 21: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Transaktionsmanagement „Snapshot too old“ UNDO Analyse Fetch Across Commits Delayed Block Cleanout SCN_ASCENDING Verschiedenes „Snapshot tool old“ vermeiden

Agenda

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 20

Page 22: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Mon Jul 29 09:17:36 2013 ORA-01555 caused by SQL statement below (SQL ID: 4k2f8hv1yng5g, Query Duration=2 sec, SCN: 0x0000.0021f144): SELECT * FROM TEST02 ORDER BY ID

Analyse alert.log

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 21

Page 23: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Num Undo Number of Max Qry Max Tx Tun Ret STO/ uS/uR/uU/ End Time Blocks Transactions Len (s) Concy (mins) OOS eS/eR/eU ------------ ----------- ------------ ------- ------- ------- ----- ----------- 17-Okt 12:16 16 40 2,252 3 0 0/0 0/0/0/0/0/0 17-Okt 12:06 31,559 2,315,879 1,649 3 0 1/0 238456/8/70 40/820964/1 155432/0 17-Okt 11:56 30,901 2,259,167 944 3 0 0/0 182665/0/50 78/788581/1 206320/0 17-Okt 11:46 30,113 2,205,321 342 2 0 0/0 272796/0/81 45/781113/1 061432/0 17-Okt 11:36 1,510 67,931 945 4 1 0/3 21510/0/672 /21952/3544 /0

Analyse v$undostat / awr / statspack

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 22

Page 24: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

UNXPSTEALCNT: The number of attempts when unexpired blocks were stolen from other undo segments to satisfy space requests.

UNXPBLKRELCNT: The number of unexpired blocks removed from undo segments to be used by other transactions.

UNXPBLKREUCNT: The number of unexpired undo blocks reused by transactions.

V$UNDOSTAT (I)

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 23

Num Undo Number of Max Qry Max Tx Tun Ret STO/ uS/uR/uU/ End Time Blocks Transactions Len (s) Concy (mins) OOS eS/eR/eU ------------ ----------- ------------ ------- ------- ------- ----- ----------- 17-Okt 12:16 16 40 2,252 3 0 0/0 0/0/0/0/0/0 17-Okt 12:06 31,559 2,315,879 1,649 3 0 1/0 238456/8/70 40/820964/1 155432/0 17-Okt 11:56 30,901 2,259,167 944 3 0 0/0 182665/0/50 78/788581/1 206320/0 17-Okt 11:46 30,113 2,205,321 342 2 0 0/0 272796/0/81 45/781113/1 061432/0 17-Okt 11:36 1,510 67,931 945 4 1 0/3 21510/0/672 /21952/3544 /0

Page 25: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

EXPSTEALCNT: The number of attempts when expired extents were stolen from other undo segments to satisfy a space requests.

EXPBLKRELCNT: The number of expired extents stolen from other undo segments to satisfy a space request.

EXPBLKREUCNT: The number of expired undo blocks reused within the same undo segments.

V$UNDOSTAT (II)

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 24

Num Undo Number of Max Qry Max Tx Tun Ret STO/ uS/uR/uU/ End Time Blocks Transactions Len (s) Concy (mins) OOS eS/eR/eU ------------ ----------- ------------ ------- ------- ------- ----- ----------- 17-Okt 12:16 16 40 2,252 3 0 0/0 0/0/0/0/0/0 17-Okt 12:06 31,559 2,315,879 1,649 3 0 1/0 238456/8/70 40/820964/1 155432/0 17-Okt 11:56 30,901 2,259,167 944 3 0 0/0 182665/0/50 78/788581/1 206320/0 17-Okt 11:46 30,113 2,205,321 342 2 0 0/0 272796/0/81 45/781113/1 061432/0 17-Okt 11:36 1,510 67,931 945 4 1 0/3 21510/0/672 /21952/3544 /0

Page 26: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

SSOLDERRCNT: The number of ORA-1555 errors that occurred during the interval.

NOSPACEERRCNT: The number of Out-of-Space errors

V$UNDOSTAT (III)

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 25

Num Undo Number of Max Qry Max Tx Tun Ret STO/ uS/uR/uU/ End Time Blocks Transactions Len (s) Concy (mins) OOS eS/eR/eU ------------ ----------- ------------ ------- ------- ------- ----- ----------- 17-Okt 12:16 16 40 2,252 3 0 0/0 0/0/0/0/0/0 17-Okt 12:06 31,559 2,315,879 1,649 3 0 1/0 238456/8/70 40/820964/1 155432/0 17-Okt 11:56 30,901 2,259,167 944 3 0 0/0 182665/0/50 78/788581/1 206320/0 17-Okt 11:46 30,113 2,205,321 342 2 0 0/0 272796/0/81 45/781113/1 061432/0 17-Okt 11:36 1,510 67,931 945 4 1 0/3 21510/0/672 /21952/3544 /0

Page 27: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

TUNED_UNDORETENTION: Retention für fixed size UNDO Tablespace

V$UNDOSTAT (IV)

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 26

Num Undo Number of Max Qry Max Tx Tun Ret STO/ uS/uR/uU/ End Time Blocks Transactions Len (s) Concy (mins) OOS eS/eR/eU ------------ ----------- ------------ ------- ------- ------- ----- ----------- 17-Okt 12:16 16 40 2,252 3 0 0/0 0/0/0/0/0/0 17-Okt 12:06 31,559 2,315,879 1,649 3 0 1/0 238456/8/70 40/820964/1 155432/0 17-Okt 11:56 30,901 2,259,167 944 3 0 0/0 182665/0/50 78/788581/1 206320/0 17-Okt 11:46 30,113 2,205,321 342 2 0 0/0 272796/0/81 45/781113/1 061432/0 17-Okt 11:36 1,510 67,931 945 4 1 0/3 21510/0/672 /21952/3544 /0

Page 28: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Transaktionsmanagement „Snapshot too old“ UNDO Analyse Fetch Across Commits Delayed Block Cleanout SCN_ASCENDING Verschiedenes „Snapshot tool old“ vermeiden

Agenda

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 27

Page 29: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Fetch Across Commit

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 28

BEGIN FOR rec IN ( SELECT * FROM data ORDER BY id ) LOOP UPDATE data SET col = sysdate WHERE id = rec.id commit; END LOOP; END; /

ORA-01555: snapshot too old: rollback segment number string with name "string" too small

Page 30: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Fetch across commit vermeiden

Weniger Commit

Sortierung mit weniger mehrfach Blockzugriffen

Fetch Across Commit

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 29

Doing fetch across commits is not an ANSI supported operation. According to ANSI standard, a cursor is invalidated when a commit is performed and should therefore be closed and reopened. Oracle, however, allows application programmers and users to do fetch across commits. Hence, they should be aware of the potential ORA-01555 error and the fact that they are relying on a cursor behavior that is not ANSI standard.

Page 31: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Transaktionsmanagement „Snapshot too old“ UNDO Analyse Fetch Across Commits Delayed Block Cleanout SCN_ASCENDING Verschiedenes „Snapshot tool old“ vermeiden

Agenda

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 30

Page 32: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Delayed Block Cleanout

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 31

ORA-1555 obwohl Tabelle seit Tagen NICHT verändert wurde

Ursache Kombination aus: Delayed Block Cleanout Lang laufender Cursor Viel UNDO-Traffic

http://jonathanlewis.wordpress.com/2009/06/16/clean-it-up/ http://oracle-randolf.blogspot.de/2011/04/delayed-block-cleanout-ora-01555.html

Page 33: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Delayed Block Cleanout

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 32

Query Environment (QENV) = 4711 (SCN)

Transaktion MUSS mit Commit beendet worden sein, sonst wäre UNDO noch vorhanden!

„konservative Commit SCN“ ist älteste aktuelle SCN minus 1.

„konservative Commit SCN“ neuer als QENV

SCN=1200 SCN=1200 SCN=1200 SCN=4214 RBS=7 Slot=3 Commit=N

SCN=3370

SLOT1…

SLOT2…

SLOT3…

RBS-7

ORA-01555: snapshot too old: rollback segment number string with name "string" too small

Page 34: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Transaktionsmanagement „Snapshot too old“ UNDO Analyse Fetch Across Commits Delayed Block Cleanout SCN_ASCENDING Verschiedenes „Snapshot tool old“ vermeiden

Agenda

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 33

Page 35: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

SCN_ASCENDING Hint

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 34

select /*+ scn_ascending */ ...

Bug 6688108 Enhancement - Allow ORA-1555 to be ignored during table scan

Page 36: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

SCN=1200 SCN=1200 SCN=1200 SCN=3370 SCN=4714 RBS=7 Slot=3

Query Environment (QENV) = 4711 (SCN)

4715 4714

SCN_ASCENDING ORA-1555

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 35

Query Environment (QENV) = 4711 (SCN)

SELECT /*+ scn_ascending */ * FROM data ORDER BY id;

Page 37: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Randolf Geist - Blog

http://oracle-randolf.blogspot.de/search/label/SCN_ASCENDING

http://oracle-randolf.blogspot.de/2009/04/read-consistency-ora-01555-snapshot-too.html

SCN_ASCENDING ORA-1555

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 36

Page 38: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

SCN_ASCENDING Hint

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 37

SCN_ASCENDING = Dirty Read

Page 39: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Transaktionsmanagement „Snapshot too old“ UNDO Analyse Fetch Across Commits Delayed Block Cleanout SCN_ASCENDING Verschiedenes „Snapshot tool old“ vermeiden

Agenda

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 38

Page 40: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

https://blogs.oracle.com/db/entry/troubleshooting_ora_1555 http://www.ixora.com.au/tips/admin/ora-1555.htm http://oraspot.wordpress.com/2011/04/17/undo-analysis/ http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:360536564061 http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:275215756923

Interessante Links

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 39

Page 41: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

ORA-1555 und Lobs

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 40

Out-of-row LOB undo is maintained in the LOB segment. So the UNDO tablespace and undo retention is not associated with most LOB ORA-1555 issues. Instead the LOB column is created using either PCT_VERSION or RETENTION to manage how much space within blocks or time transpires before the LOB undo is overwritten. In environments with high updates, deletes on rows including LOBs, the chances of ORA-1555 on LOB undo is very high. PCT_VERSION and RETENTION are not auto-tuned. To “tune” those configuration settings, you must change the values for PCT_VERSION or RETENTION. Changes to UNDO_RETENTION does not change LOB retention time frames. Note 162345.1 LOBS - Storage, Read-consistency and Rollback Note 386341.1 How to determine the actual size of the LOB segments and how to free the deleted/unused space above/below the HWM Note 563470.1 Lob retention not changing when undo_retention is changed Note 422826.1 How to identify LOB Segment Use PCTVERSION or RETENTION from Data Dictionary

Page 42: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Transaktionsmanagement „Snapshot too old“ UNDO Analyse Fetch Across Commits Delayed Block Cleanout SCN_ASCENDING Verschiedenes „Snapshot tool old“ vermeiden

Agenda

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 41

Page 43: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Erhöhung UNDO-Retention

Vergrößerung UNDO-Tablespace

Betroffene Abfrage beschleunigen

Zeitliche Trennung Abfrage und Änderungen

Dunkle Bedrohung: SCN_ASCENDING Hint

UNDO-Retention reduzieren

Maßnahmen

ORA-1555 snapshot too old, Martin Hoermann, DOAG 2013 42

Page 44: ORA-1555 snapshot too old Eine unerwartete Reise · PDF fileORA-1555 snapshot too old Eine unerwartete Reise DOAG Konferenz 19. - 21.11.2013, Nürnberg . ... ORA-01555: snapshot too

Vielen Dank für Ihre Aufmerksamkeit!

Zentrale Paderborn Westernmauer 12 - 16 33098 Paderborn Tel.: 05251 1063-0

Seminarzentrum Wiesbaden Kreuzberger Ring 13 65205 Wiesbaden Tel.: 0611 77840-00

Zentrales Fax: 0180 1 67349 0 0180 1 ORDIX 0

Weitere Geschäftsstellen in Köln, Münster und Neu-Ulm

E-Mail: [email protected] Internet: http://www.ordix.de

http://www.fanpop.com