... Rollback-Segmente verwalten



Ähnliche Dokumente
Kurs. Teil 7 UNDO-Management. Universität Hannover. Agenda. Einführung. Nutzung RBS Oracle 9i Einführung Performance Tuning.

... Kontrolldatei administrieren

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Information zum SQL Server: Installieren und deinstallieren. (Stand: September 2012)

Artikel Schnittstelle über CSV

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

Professionelle Seminare im Bereich MS-Office

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

Übung - Datensicherung und Wiederherstellung in Windows 7

O UTLOOK EDITION. Was ist die Outlook Edition? Installieren der Outlook Edition. Siehe auch:

ERSTELLEN VON INCENTIVES IM ZANOX NETZWERK

Benutzung der Avid Liquid Edition Schnittplätze an der Universität Innsbruck

Warenwirtschaft Handbuch - Administration

KURZANLEITUNG CLOUD OBJECT STORAGE

Sichern der persönlichen Daten auf einem Windows Computer

Anwenderdokumentation AccountPlus GWUPSTAT.EXE

Installation KVV SQL

VIDA ADMIN KURZANLEITUNG

3 Richtlinienbasierte Verwaltung und Multi-Server- Administration

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Kurzeinführung Excel2App. Version 1.0.0

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

Prozessarchitektur einer Oracle-Instanz

Freigabe der Windows-Firewall und Verknüpfung der Pfade für die Druckvorlagen

Bedienungsanleitung. Stand: Copyright 2011 by GEVITAS GmbH

Windows Server 2012 R2 Essentials & Hyper-V

ZIMT-Dokumentation für Studierende Webmail-Oberfläche (Roundcube)

Hochschulrechenzentrum. chschulrechenzentrum #96. Freie Universität Berlin

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Handbuch B4000+ Preset Manager

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Restore Exchange Server 2007 SP2

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis 1

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

So importieren Sie einen KPI mithilfe des Assistenten zum Erstellen einer Scorecard

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

Beheben von verlorenen Verknüpfungen

Bedienungsanleitung für BackupMotion

Anweisungen zur Installation und Entfernung von Windows PostScript- und PCL-Druckertreibern Version 8

Installationsanleitung Webhost Windows Flex

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Zentrale Installation

Anleitung. Update/Aktualisierung EBV Einzelplatz. und Mängelkatalog

Erstellen eines Formulars

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

3 ORDNER UND DATEIEN. 3.1 Ordner

Online-Prüfungs-ABC. ABC Vertriebsberatung GmbH Bahnhofstraße Neckargemünd

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Userguide: WLAN Nutzung an der FHH Hannover Fakultät V

Speichern. Speichern unter

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

ÖKB Steiermark Schulungsunterlagen

Umstellung Ihrer Mailbox von POP zu IMAP

Lizenzen auschecken. Was ist zu tun?

Arbeiten mit dem Outlook Add-In

Übungen zur Vorlesung. Datenbanken I

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Instruktionsheft für neue Webshop Hamifleurs

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Mit jedem Client, der das Exchange Protokoll beherrscht (z.b. Mozilla Thunderbird mit Plug- In ExQulla, Apple Mail, Evolution,...)

Hilfe bei Adobe Reader. Internet Explorer 8 und 9

1. Einführung. 2. Weitere Konten anlegen

Zimmertypen. Zimmertypen anlegen

HANDBUCH FILEZILLA So benutzen Sie Ihren kostenlosen FTP Client.

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Die USB-Modem-Stick Software (Windows) verwenden. Doppelklicken Sie das Symbol auf dem Desktop, um die Software zu starten. Die Hauptseite erscheint:

Dokumentation PuSCH App. windows-phone

Dokumentenverwaltung. Copyright 2012 cobra computer s brainware GmbH

Folgeanleitung für Klassenlehrer

Übung - Freigabe eines Ordners und Zuordnung eines Netzwerlaufwerks in Windows XP

Übung - Datensicherung und Wiederherstellung in Windows Vista

Mediumwechsel - VR-NetWorld Software

Version 1.0 [Wiederherstellung der Active Directory] Stand: Professionelle Datensicherung mit SafeUndSave.com. Beschreibung.

3. Klicken Sie im folgenden Fenster unbedingt auf "Installation fortsetzen", um die für das Update benötigten Treiber zu installieren.

Die Dateiablage Der Weg zur Dateiablage

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

I. Travel Master CRM Installieren

Das Handbuch zu KSystemLog. Nicolas Ternisien

Installationsanleitung CLX.PayMaker Office (3PC)

Schritt 1: Verwenden von Excel zum Erstellen von Verbindungen mit SQL Server-Daten

IM Online help Stand April 2015

DCCP (Data Collection Cash Processing) Schaubild Version 1.0

Update auf Windows 8.1 Schrittweise Anleitung

Bedienungsanleitung Einsatzplanung. Bedienungsanleitung Einsatzplanung. Inhalt. Bedienung einer Plan-Tabelle

Installation älterer Programmversionen unter Windows 7

Schritt 1 - Registrierung und Anmeldung

Datenbanksystem. System Global Area. Hintergrundprozesse. Dr. Frank Haney 1

Transkript:

10... Rollback-Segmente verwalten

Lektion 10: Rollback-Segmente verwalten Ziele Ziele Nach dieser Lektion sollten Sie Folgendes können: Rollback-Segmente mit den passenden Speichereinstellungen erzeugen Rollback-Segmente pflegen Anzahl und Größe von Rollback-Segmenten planen Informationen über Rollback-Segmente aus dem Data Dictionary ermitteln Fehlerbehebung bei Problemen mit Rollback- Segmenten 10-2 Copyright Oracle Corporation, 1999. All rights reserved. 10-2 Oracle8i Datenbankadministration Teil I

Überblick Überblick Rollback-Segment Alter Wert Tabelle Neuer Wert Rollback-Segment Update Transaktion 10-3 Copyright Oracle Corporation, 1999. All rights reserved. Überblick über die Lektion Wenn ein Prozess Änderungen an den Daten der Datenbank durchführt, werden die alten Werte in einem Rollback-Segment gespeichert. Der Speicherort der Daten und der Stand der Daten vor der Änderung werden gespeichert. Der Header eines Rollback-Segments enthält die Transaktionstabelle mit Informationen über die aktuellen Transaktionen, die das Rollback-Segment verwenden. Eine Transaktion kann nur ein Rollback-Segment zur Speicherung aller seiner Rollback-Datensätze (Undo-Datensätze) verwenden. Viele konkurrierende Transaktionen können auf ein Rollback-Segment schreiben. Oracle8i Datenbankadministration Teil I 10-3

Lektion 10: Rollback-Segmente verwalten Rollback-Segmente Rollback-Segmente: Aufgabe Transaktions-Rollback Transaktions- Recovery Rollback-Segment Lesekonsistenz 10-4 Copyright Oracle Corporation, 1999. All rights reserved. Transaktions-Rollback Wenn eine Transaktion eine Tabellenzeile ändert, wird der alte Zustand im Rollback- Segment gesichert. Wenn die Transaktion zurückgerollt wird, schreibt der Oracle Server den Wert aus dem Rollback-Segment zurück in die Zeile und stellt damit den Originalwert wieder her. Transaktions-Recovery Wenn die Instanz während einer Transaktion abstürzt, muss der Oracle Server beim nächsten Öffnen der Datenbank die nicht festgeschriebenen Änderungen zurückrollen. Dieser Rollback ist Bestandteil des Transaktions-Recovery. Recovery ist nur möglich, weil Änderungen im Rollback-Segment ebenfalls durch Redo Log-Dateien geschützt sind. Lesekonsistenz Während laufender Transaktionen sollen die anderen Benutzer in der Datenbank keine noch nicht festgeschriebenen Änderungen dieser Transaktionen sehen. Zusätzlich soll eine Anweisung keine Änderungen sehen, die nach dem Beginn der Anweisungsausführung festgeschrieben wurden. Die alten Werte in den Rollback- Segmenten werden dazu benutzt, einen konsistenten Zustand für eine Anweisung darzustellen. 10-4 Oracle8i Datenbankadministration Teil I

Rollback-Segmente Lesekonsistenz Tabelle SELECT * FROM table Neuer Zustand Zustand bei Anweisungsbeginn 10-5 Copyright Oracle Corporation, 1999. All rights reserved. Lesekonsistenz (Fortsetzung) Der Oracle Server garantiert, dass eine Anweisung konsistente Daten zu sehen bekommt, auch wenn die Daten durch andere Transaktionen geändert werden. Wenn der Oracle Server die Ausführung einer Select-Anweisung beginnt, bestimmt er die aktuelle SCN (System Change Number) und stellt sicher, dass keine Änderungen festgeschrieben werden, bevor diese SCN nicht von der Anweisung verarbeitet wurde. Betrachten wir z.b. eine lang laufende Abfrage, während der einige Änderungen durchgeführt werden. Wenn es in einem Block beim Start der Abfrage noch nicht festgeschriebene Änderungen gibt, bildet der Oracle Server ein lesekonsistentes Bild des Blocks, indem er das Before Image der Änderungen aus dem Rollback-Segment liest und die Änderungen einer Kopie des Blocks im Hauptspeicher zuordnet. Transaktion-Lesekonsistenz Lesekonsistenz wird immer für eine SQL-Anweisung sichergestellt. Zu Beginn einer Transaktion kann jedoch mit dem folgenden Befehl Konsistenz für eine Read-Only- Transaktion angefordert werden: SET TRANSACTION READ ONLY; Mit dem folgenden Befehl können Sie zu Beginn einer Transaktion Lesekonsistenz für eine Transaktion mit DML-Anweisungen anfordern: SET TRANSACTION SERIALIZABLE; In beiden Fällen liefert der Oracle Server Daten, die seit dem Beginn der Transaktion lesekonsistent sind. SERIALIZABLE kann einen negativen Einfluss auf die Performance haben. Oracle8i Datenbankadministration Teil I 10-5

Lektion 10: Rollback-Segmente verwalten Rollback-Segmenttypen SYSTEM: für Objekte im SYSTEM-Tablespace Nicht-SYSTEM: für Objekte in anderen Tablespaces Privat: für eine einzige Instanz Public: für jede Instanz Deferred: für Tablespaces, die offline gesetzt werden 10-6 Copyright Oracle Corporation, 1999. All rights reserved. SYSTEM Rollback-Segment Das SYSTEM Rollback-Segment wird beim Erstellen der Datenbank im SYSTEM- Tablespace angelegt. Dieses Rollback-Segment kann nur für Änderungen an Objekten des SYSTEM-Tablespace verwendet werden. Nicht-SYSTEM Rollback-Segmente Eine Datenbank mit mehreren Tablespaces braucht mindestens ein Nicht-SYSTEM Rollback-Segment. Ein Nicht-SYSTEM Rollback-Segment, das von der Datenbankadministration angelegt wird, kann für Änderungen an Objekten in Nicht- SYSTEM-Tablespaces verwendet werden. Es gibt zwei Arten von Nicht-SYSTEM Rollback-Segmenten. Privat Private Rollback-Segmente sind Segmente, die von einer Instanz nur dann online gesetzt werden, wenn sie in der Parameter-Datei genannt sind. Sie können jedoch auch explizit durch die Eingabe eines ALTER ROLLBACK SEGMENT Befehls online gesetzt werden. 10-6 Oracle8i Datenbankadministration Teil I

Rollback-Segmente Nicht-SYSTEM Rollback-Segmente (Fortsetzung) Public Public Rollback-Segmente bilden einen Pool für Rollback-Segmente, die in einer Datenbank verfügbar sind. Public Rollback-Segmente werden üblicherweise beim Oracle Parallel Server verwendet, um einen Pool von Rollback-Segmenten zu erzeugen, die von jeder Instanz des Parallel Server verwendet werden können. Hinweis: Die Verwendung von Public Rollback-Segmenten wird im Handbuch Oracle8i Parallel Server Concepts and Administration erläutert. Deferred Rollback-Segmente Deferred Rollback-Segmente werden automatisch erzeugt, wenn ein Tablespace offline gesetzt wird. Sie werden zum Zurückrollen von Transaktionen verwendet, wenn der Tablespace online gesetzt wird. Werden sie nicht mehr benötigt, werden Sie automatisch gelöscht. Da deferred Rollback-Segmente nur vom Oracle Server verwaltet werden, ist keine Verwaltung seitens des DBA erforderlich und möglich. Oracle8i Datenbankadministration Teil I 10-7

Lektion 10: Rollback-Segmente verwalten Rollback-Segmente für Transaktionen verwenden Transactionen und Rollback-Segmente 1 2 Transaktion 1 Transaktion 2 4 3 Aktiver Extent Inaktiver Extent 10-7 Copyright Oracle Corporation, 1999. All rights reserved. Belegung eines Rollback-Segments Wenn eine Transaktion beginnt, muss dieser Transaktion ein Rollback-Segment zugewiesen werden. Eine Transaktion kann ein bestimmtes Rollback-Segment mit dem folgenden Befehl anfordern: SET TRANSACTION USE ROLLBACK SEGMENT rollback_segment Wird keine solche Anforderung gemacht, wählt der Oracle Server das Rollback- Segment mit den wenigsten Transaktionen und weist es der Transaktion zu. Verwendung der Extents Transaktionen verwenden Extents von Rollback-Segmenten in zyklischer Reihenfolge; nachdem der aktuelle Extent gefüllt ist, wird der nächste Extent beschrieben usw. Eine Transaktion schreibt einen Eintrag an die aktuelle Stelle im Rollback-Segment und erhöht den aktuellen Zeiger um die Größe des Eintrags. In den gleichen Extent eines Rollback-Segments können mehrere Transaktionen schreiben. Ein Block eines Rollback-Segments enthält jedoch nur Informationen von genau einer Transaktion. 10-8 Oracle8i Datenbankadministration Teil I

Rollback-Segmente für Transaktionen verwenden Oracle8i Datenbankadministration Teil I 10-9

Lektion 10: Rollback-Segmente verwalten Beispiel Im Beispiel auf der Folie wurden zwei Transaktionen einem Rollback-Segment zugewiesen, das vier Extents besitzt. 1 Wenn die Transaktionen beginnen, fangen sie mit dem Schreiben auf Extent 3 des Rollback-Segments an. 2 Sobald die zwei Transaktionen mehr Rollback-Informationen erzeugen, setzen sie das Schreiben auf Extent 3 fort. 3 Wenn Extent 3 gefüllt ist, schreiben die Transaktionen auf den nächsten Extent im Kreis, das ist Extent 4. Wenn Transaktionen, wie in diesem Schritt, mit dem Schreiben in einen neuen Extent beginnen, wird das Warp genannt. 4 Wenn der letzte Extent eines Rollback-Segments (Extent 4) gefüllt ist, können die Transaktionen den ersten im Kreis (Extent 1) verwenden, wenn er frei oder inaktiv ist. Ein Extent ist nur dann frei oder inaktiv, wenn momentan keine aktiven Transaktionen den Extent verwenden d.h. alle Transaktionen, die auf den Extent geschrieben haben, sind abgeschlossen. 10-10 Oracle8i Datenbankadministration Teil I

Rollback-Segmente für Transaktionen verwenden Wachstum von Rollback-Segmenten 1 2 1 2 4 3 5 4 3 Aktiver Extent Neuer Extent Inaktiver Extent 10-8 Copyright Oracle Corporation, 1999. All rights reserved. Wachstum von Rollback-Segmenten Der Zeiger oder Kopf des Rollback-Segments wechselt zum nächsten Extent, wenn alle Blöcke des aktuellen Extent verwendet wurden und eine Transaktion neuen Speicherplatz benötigt. Ist der letzte Extent voll, dann wechselt der Zeiger zum Anfang des ersten Extents zurück. Der Zeiger kann nur dann zum nächsten Extent wechseln, wenn dieses Extent keine aktiven Transaktionen hat. Der Zeiger kann keine Extents überspringen. Wird der nächste Extent noch verwendet, fordert die Transaktion einen zusätzlichen Extent für das Rollback-Segment an. Dieses wird Erweiterung genannt. Ein Rollback-Segment kann auf diese Weise wachsen, bis es die mit dem Parameter MAXEXTENTS angegebene maximale Anzahl von Extents erreicht hat. Oracle8i Datenbankadministration Teil I 10-11

Lektion 10: Rollback-Segmente verwalten Verkleinerung von Rollback-Segmenten 5 6 4 1 3 2 1 2 6 3 Aktiver Extent OPTIMAL Inaktiver Extent 10-9 Copyright Oracle Corporation, 1999. All rights reserved. Parameter OPTIMAL Der Parameter OPTIMAL gibt die Größe in Byte an, auf die ein Rollback-Segment, falls möglich, schrumpfen muss. Durch das Angeben von OPTIMAL wird die Speicherplatzverschwendung in einem Rollback-Segment minimiert. Wenn der Parameter OPTIMAL angegeben ist, kann ein Rollback-Segment nach dem Abschluss von Transaktionen, die das Wachstum verursacht haben, Speicherplatz freigeben. Die Freigabe von Extents wird erst nach Abschluss der Transaktionen durchgeführt. Die Freigabe von Extents wird nur dann durchgeführt, wenn der Kopf von einem Extent in einen anderen Extent wechselt. Extents werden freigegeben, falls die folgenden zwei Bedingungen erfüllt sind: die aktuelle Größe des Rollback-Segments OPTIMAL überschreitet es zusammenhängende inaktive Extents gibt Der Oracle Server versucht solange die Größe des Rollback-Segments zu verringern, bis OPTIMAL erreicht ist, muss aber abbrechen, wenn der nächste freizugebende Extent noch verwendet wird. Der Oracle Server gibt immer zuerst die ältesten inaktiven Extents frei, da diese wahrscheinlich am wenigsten zur Lesekonsistenz benötigt werden. 10-12 Oracle8i Datenbankadministration Teil I

Rollback-Segmente anlegen Rollback-Segmente anlegen Rollback-Segmente anlegen CREATE ROLLBACK SEGMENT rbs01 TABLESPACE rbs STORAGE ( INITIAL 100K NEXT 100K MINEXTENTS 20 MAXEXTENTS 100 OPTIMAL 2000K ); 10-10 Copyright Oracle Corporation, 1999. All rights reserved. Syntax Mit dem folgenden Befehl legen Sie ein Rollback-Segment an: CREATE [PUBLIC] ROLLBACK SEGMENT rollback_segment [TABLESPACE tablespace] [STORAGE ([INITIAL integer[k M]] [NEXT integer[k M]] [MINEXTENTS integer] [MAXEXTENTS {integer UNLIMITED}] [OPTIMAL {integer[k M] NULL}] ) ] Oracle8i Datenbankadministration Teil I 10-13

Lektion 10: Rollback-Segmente verwalten Einschränkungen Ein Rollback-Segment kann beim Anlegen entweder als PUBLIC oder als PRIVATE (Default) definiert werden. Diese Einstellung kann später nicht geändert werden. Für ein Rollback-Segment muss MINEXENTS mindestens zwei sein. PCTINCREASE kann für ein Rollback-Segment nicht angegeben werden und wird immer auf 0 gesetzt. OPTIMAL muss, falls angegeben, mindestens der Anfangsgröße des Rollback- Segments entsprechen, die durch MINEXTENTS definiert ist. Richtlinien Verwenden Sie immer INITIAL = NEXT für Rollback-Segmente, um sicherzustellen, dass alle Extents gleich groß sind. Setzen Sie den Wert für OPTIMAL, um die Belegung und Freigabe von Extents für Rollback-Segmente zu minimieren. Vermeiden Sie es, MAXEXTENTS auf UNLIMITED zu setzen. Dies könnte unnötige Erweiterungen von Rollback-Segmenten und möglicherweise von Datendateien aufgrund eines Programmfehlers zur Folge haben. Legen Sie Rollback-Segmente immer in getrennte, exklusive Tablespaces, um Zugriffskonflikte und Fragmentierung zu verringern. 10-14 Oracle8i Datenbankadministration Teil I

Rollback-Segmente anlegen So erzeugen Sie mit dem Enterprise Manager ein neues Rollback- Segment 1 Starten Sie den Storage Manager und melden Sie sich direkt bei der Datenbank an: Start >Programs >Oracle - EMV2 Home >DBA Management Pack >Storage Manager 2 Geben Sie die Anmelde-Informationen ein und klicken Sie OK. 3 Wählen Sie den Ordner Rollback Segments. Klicken Sie mit der rechten Maustaste und wählen Sie Create. 4 Geben Sie den Namen, Tablespace und Typ im General-Register des Eigenschaftsfensters ein. Setzen Sie optional das Optionsfeld Online. 5 Geben Sie Speicherinformationen im Extents-Register des Eigenschaftsfensters ein. 6 Klicken Sie Create. Oracle8i Datenbankadministration Teil I 10-15

Lektion 10: Rollback-Segmente verwalten Mit Rollback >Create Like können Sie ein neues Rollback-Segment erzeugen, das den gleichen Tablespace und die gleichen Einstellungen wie ein bereits bestehendes Rollback-Segment verwendet. 10-16 Oracle8i Datenbankadministration Teil I

Rollback-Segmente anlegen Rollback-Segmente online setzen Mit dem folgenden Befehl machen Sie ein Rollback-Segment verfügbar: ALTER ROLLBACK SEGMENT rbs01 ONLINE; Geben Sie die folgenden Initialisierungsparameter an, um sicherzustellen, dass Rollback-Segmente beim Hochfahren online gesetzt werden: ROLLBACK_SEGMENTS=(rbs01, rbs02) 10-11 Copyright Oracle Corporation, 1999. All rights reserved. Befehl ALTER ROLLBACK SEGMENT Wenn ein Rollback-Segment angelegt wird, ist es offline und kann nicht verwendet werden. Mit dem Befehl ALTER ROLLBACK SEGMENT setzen Sie es online und machen es für Transaktionen verfügbar. Syntax Mit dem folgenden Befehl machen Sie ein Rollback-Segment verfügbar: ALTER ROLLBACK SEGMENT rollback_segment ONLINE; Die Anzahl von Rollback-Segmenten, die von einer Instanz online gesetzt werden können, wird durch den Parameter MAX_ROLLBACK_SEGMENTS begrenzt. Setzen Sie diesen Wert auf die Anzahl der Nicht-SYSTEM Rollback-Segmente plus 1, die für die Instanz erforderlich sind. Ein Rollback-Segment ist nur solange online, bis die Instanz heruntergefahren wird. Um sicherzustellen, dass ein Rollback-Segment von einer Instanz immer online gesetzt wird, geben Sie den Namen des Rollback-Segments in der Parameterdatei folgendermaßen an: ROLLBACK_SEGMENTS=(rbs01, rbs02) Oracle8i Datenbankadministration Teil I 10-17

Lektion 10: Rollback-Segmente verwalten So setzen Sie mit dem Enterprise Manager ein Rollback-Segment online 1 Starten Sie den Storage Manager und melden Sie sich direkt bei der Datenbank an: Start >Programs >Oracle - EMV2 Home >DBA Management Pack >Storage Manager 2 Geben Sie die Anmelde-Informationen ein und klicken Sie OK. 3 Erweitern Sie den Ordner Rollback Segments. 4 Wählen Sie das Rollback-Segment. 5 Klicken Sie mit der rechten Maustaste und wählen Sie Place Online. 6 Bestätigen Sie die Dialogbox mit Yes. 10-18 Oracle8i Datenbankadministration Teil I

Rollback-Segmente anlegen So fordern Instanzen Rollback-Segmente an benannte, private RBS anfordern benötigte Anzahl von RBS berechnen Gibt es genug RBS? Nein ja alle angeforderten Rollback-Segmente ONLINE setzen Public Rollback- Segmente anfordern 10-12 Copyright Oracle Corporation, 1999. All rights reserved. So fordern Instanzen Rollback-Segmente an Die folgenden Schritte erläutern, wie eine Instanz Rollback-Segmente anfordert, wenn sie die Datenbank öffnet: 1 Die Instanz fordert alle Rollback-Segmente an, die im Initialisierungsparameter ROLLBACK_SEGMENTS aufgeführt sind. 2 Der init.ora Parameter TRANSACTIONS wird durch den init.ora Parameter TRANSACTIONS_PER_ROLLBACK_SEGMENT geteilt und das Ergebnis ist die Anzahl der Rollback-Segmente, die eine Instanz benötigt. Liegt dieser Wert über der Anzahl der Nicht-SYSTEM Rollback-Segmente, die bereits von der Instanz online gesetzt sind, dann belegt die Instanz weitere Public Rollback- Segmente, um für einen Engpass gerüstet zu sein. Gibt es zu wenig Public Rollback-Segmente, wird die Datenbank trotzdem geöffnet und ist für Benutzer verfügbar. Dadurch werden keine Fehler erzeugt. Oracle8i Datenbankadministration Teil I 10-19

Lektion 10: Rollback-Segmente verwalten Rollback-Segmente pflegen Speichereinstellungen für Rollback- Segmente ändern Verwenden Sie dem Befehl ALTER ROLLBACK SEGMENT Sie können OPTIMAL oder MAXEXTENTS ändern ALTER ROLLBACK SEGMENT rbs01 STORAGE( MAXEXTENTS 200 ); 10-13 Copyright Oracle Corporation, 1999. All rights reserved. Syntax Die Speicherparameter für ein Rollback-Segment können mit dem Befehl ALTER ROLLBACK SEGMENT geändert werden. ALTER ROLLBACK SEGMENT rollback_segment [STORAGE ( [NEXT integer[k M]] [MINEXTENTS integer] [MAXEXTENTS {integer UNLIMITED}] [OPTIMAL {integer[k M] NULL}] ) ] Mit diesem Befehl können Sie die Parameter OPTIMAL und MAXEXTENTS ändern. 10-20 Oracle8i Datenbankadministration Teil I

Rollback-Segmente pflegen So ändern Sie Speicher-Einstellungen mit dem Enterprise Manager 1 Starten Sie den Storage Manager und melden Sie sich direkt bei der Datenbank an: Start >Programs >Oracle - EMV2 Home >DBA Management Pack >Storage Manager 2 Geben Sie die Anmelde-Informationen ein und klicken Sie OK. 3 Erweitern Sie den Ordner Rollback Segments. 4 Wählen Sie das Rollback-Segment. 5 Wählen Sie das Storage-Register des Eigenschaftsfensters und ändern Sie die Parameter. 6 Klicken Sie Apply. Oracle8i Datenbankadministration Teil I 10-21

Lektion 10: Rollback-Segmente verwalten Speicherplatz aus Rollback-Segmenten freigeben Verwenden Sie den Befehl ALTER ROLLBACK SEGMENT Wenn Extents aktiv sind, kann ein Reduzieren auf die angegebene Größe nicht möglich sein ALTER ROLLBACK SEGMENT rbs01 SHRINK TO 4M; 10-14 Copyright Oracle Corporation, 1999. All rights reserved. Speicherplatz aus Rollback-Segmenten freigeben Wenn OPTIMAL für ein Rollback-Segment angegeben ist, versucht der Oracle Server, Extents freizugeben, um Speicherplatz oberhalb der optimalen Größe freizugeben. Manuelle Freigabe Sie können mit dem folgenden Befehl manuell Speicherplatz eines Rollback- Segments freigeben: ALTER ROLLBACK SEGMENT rollback_segment SHRINK [ TO integer [ K M ]]; Dieser Befehl versucht, die Größe des Rollback-Segments auf die angegebene Größe zu reduzieren, bricht aber ab, wenn ein Extent nicht freigegeben werden kann, weil er aktiv ist. Wird integer nicht angegeben, versucht der Oracle Server, Extents freizugeben, bis die Größe des Rollback-Segments OPTIMAL entspricht. Ist der Wert integer größer als die aktuelle Größe des Rollback-Segments, wird der Befehl ignoriert. 10-22 Oracle8i Datenbankadministration Teil I

Rollback-Segmente pflegen So schrumpfen Sie mit dem Enterprise Manager ein Rollback-Segment 1 Starten Sie den Storage Manager und melden Sie sich direkt bei der Datenbank an: Start >Programs >Oracle - EMV2 Home >DBA Management Pack >Storage Manager 2 Geben Sie die Anmelde-Informationen ein und klicken Sie OK. 3 Erweitern Sie den Ordner Rollback Segments. 4 Wählen Sie das Rollback-Segment. 5 Klicken Sie mit der rechten Maustaste und wählen Sie Shrink. 6 Wählen Sie in der Dialogbox Shrink Rollback Segment das Optionsfeld Optimal Size, um das Rollback-Segment auf seine optimale Größe zu schrumpfen. Sie können stattdessen auch Size auswählen und eine Größe in KBytes bzw. MBytes eingeben. 7 Klicken Sie OK. Oracle8i Datenbankadministration Teil I 10-23

Lektion 10: Rollback-Segmente verwalten Rollback-Segment offline setzen Setzen Sie ein Rollback-Segment offline, um es nicht verfügbar zu machen. Wenn Transaktionen das Rollback-Segment verwenden, wird der Status zeitweise auf PENDING OFFLINE gesetzt. ALTER ROLLBACK SEGMENT rbs01 OFFLINE; 10-15 Copyright Oracle Corporation, 1999. All rights reserved. Rollback-Segment offline setzen Setzen Sie ein Rollback-Segment offline: um zu verhindern, dass neue Transaktionen das Rollback-Segment verwenden wenn das Rollback-Segment gelöscht werden muss Syntax Mit dem folgenden Befehl setzen Sie ein Rollback-Segment offline: ALTER ROLLBACK SEGMENT rollback_segment OFFLINE; Wenn es zum Zeitpunkt der Ausführung dieser Anweisung Transaktionen gibt, die das Rollback-Segment verwenden, wird der Status des Rollback-Segments auf PENDING OFFLINE gesetzt, wie in der dynamischen Performance-View V$ROLLSTAT zu sehen ist. Sobald alle bestehenden Transaktionen abgeschlossen sind, wird das Segment offline gesetzt. 10-24 Oracle8i Datenbankadministration Teil I

Rollback-Segmente pflegen So setzen Sie mit dem Enterprise Manager ein Rollback-Segment offline 1 Starten Sie den Storage Manager und melden Sie sich direkt bei der Datenbank an: Start >Programs >Oracle - EMV2 Home >DBA Management Pack >Storage Manager 2 Geben Sie die Anmelde-Informationen ein und klicken Sie OK. 3 Erweitern Sie den Ordner Rollback Segments. 4 Wählen Sie das Rollback-Segment. 5 Klicken Sie mit der rechten Maustaste und wählen Sie Take Offline. 6 Bestätigen Sie die Dialogbox mit Yes. Oracle8i Datenbankadministration Teil I 10-25

Lektion 10: Rollback-Segmente verwalten Rollback-Segmente löschen Ein Rollback-Segment muss offline sein, bevor es gelöscht werden kann. DROP ROLLBACK SEGMENT rbs01; 10-16 Copyright Oracle Corporation, 1999. All rights reserved. Syntax Mit dem folgenden Befehl löschen Sie ein Rollback-Segment: DROP ROLLBACK SEGMENT rollback_segment; Es kann nötig sein, ein Rollback-Segment zu löschen, wenn es nicht mehr benötigt wird, oder wenn es mit anderen Speichereinstellungen für INITIAL, NEXT und MINEXTENTS neu angelegt werden muss. Ein Rollback-Segment muss offline sein, bevor es gelöscht werden kann. 10-26 Oracle8i Datenbankadministration Teil I

Rollback-Segmente pflegen So löschen Sie mit dem Enterprise Manager ein Rollback-Segment 1 Starten Sie den Storage Manager und melden Sie sich direkt bei der Datenbank an: Start >Programs >Oracle - EMV2 Home >DBA Management Pack >Storage Manager 2 Geben Sie die Anmelde-Informationen ein und klicken Sie OK. 3 Erweitern Sie den Ordner Rollback Segments. 4 Wählen Sie das Rollback-Segment. 5 Klicken Sie mit der rechten Maustaste und wählen Sie Remove. Die Option Remove ist nur dann aktiviert, wenn das Rollback-Segment offline ist. 6 Bestätigen Sie die Dialogbox mit Yes. Oracle8i Datenbankadministration Teil I 10-27

Lektion 10: Rollback-Segmente verwalten Informationen über Rollback-Segmente erhalten Rollback-Segmente in der Datenbank DBA_ROLLBACK_SEGS Identifikation: SEGMENT_ID SEGMENT_NAME Speicherort: TABLESPACE_NAME Typ: OWNER (PUBLIC oder SYS) Status: STATUS (ONLINE oder OFFLINE) 10-17 Copyright Oracle Corporation, 1999. All rights reserved. Informationen über Rollback-Segmente aus dem Data Dictionary erhalten Mit einer Abfrage der View DBA_ROLLBACK_SEGS erhalten Sie Informationen über alle Rollback-Segmente der Datenbank. SQL> SELECT segment_name, tablespace_name, owner, status 2 FROM dba_rollback_segs; SEGMENT_NAME TABLESPACE_NAME OWNER STATUS -------------- ----------------- ------ --------------- SYSTEM SYSTEM SYS ONLINE RBS1 RBS SYS ONLINE RBS2 RBS SYS ONLINE RBS3 RBS SYS OFFLINE 4 rows selected. Informationen über Rollback-Segmente, die offline sind, können nur in DBA_ROLLBACK_SEGS abgefragt werden. Die dynamischen Performance-Views zeigen nur Rollback-Segmente an, die online sind. Die Spalte OWNER gibt den Typ des Rollback-Segments an: 10-28 Oracle8i Datenbankadministration Teil I

Informationen über Rollback-Segmente erhalten SYS bezieht sich auf ein privates Rollback-Segment. PUBLIC bezieht sich auf Public Rollback-Segmente. Oracle8i Datenbankadministration Teil I 10-29

Lektion 10: Rollback-Segmente verwalten So erhalten Sie mit dem Enterprise Manager Informationen über Rollback Segmente 1 Starten Sie den Storage Manager und melden Sie sich direkt bei der Datenbank an: Start >Programs >Oracle - EMV2 Home >DBA Management Pack >Storage Manager 2 Geben Sie die Anmelde-Informationen ein und klicken Sie OK. 3 Wählen Sie den Ordner Rollback Segments, um einen Überblick über alle Rollback-Segmente der Datenbank zu sehen. 4 Erweitern Sie den Ordner Rollback Segments. 5 Wählen Sie das Rollback-Segment, zu dem Sie Extent-Informationen und den Typ sehen wollen. 10-30 Oracle8i Datenbankadministration Teil I

Informationen über Rollback-Segmente erhalten Rollback-Segment Statistiken V$ROLLNAME USN NAME V$ROLLSTAT USN EXTENTS RSSIZE XACTS OPTSIZE HWMSIZE AVEACTIVE STATUS CUREXT CURBLK 10-18 Copyright Oracle Corporation, 1999. All rights reserved. V$ROLLSTAT und V$ROLLNAME Verknüpfen Sie die Views V$ROLLSTAT und V$ROLLNAME, um die Statistik für die aktuellen, von der Instanz verwendeten Rollback-Segmente zu ermitteln. Beispiel SQL> SELECT n.name, s.extents, s.rssize, s.optsize, 2 s.hwmsize, s.xacts, s.status 3 FROM v$rollname n, v$rollstat s 4 WHERE n.usn = s.usn; NAME EXTENTS RSSIZE OPTSIZE HWMSIZE XACTS STATUS ------ ------- -------- -------- -------- ------ -------- SYSTEM 43 2199552 2199552 0 ONLINE RBS1 20 202752 204800 417792 0 ONLINE RBS2 4 38912 38912 0 PENDING OFFLINE 3 rows selected. Hinweis: Der Wert für OPTIMAL kann aus der View V$ROLLSTAT ermittelt werden. Oracle8i Datenbankadministration Teil I 10-31

Lektion 10: Rollback-Segmente verwalten V$ROLLSTAT und V$ROLLNAME (Fortsetzung) Die Spalten von V$ROLLSTAT umfassen: Spalte USN EXTENTS RSSIZE XACTS OPTSIZE HWMSIZE AVEACTIVE STATUS CUREXT CURBLK Beschreibung Nummer des Rollback-Segments (Undo- Segments); mit V$ROLLNAME.USN verknüpfen, um den Namen zu erhalten Anzahl Extents im Rollback-Segment aktuelle Größe des Segments in Bytes Anzahl der Transaktionen, die das Segment verwenden OPTIMAL-Wert für das Rollback-Segment High-Watermark; maximale Größe in Byte, auf die das Segment seit dem Start angewachsen ist aktuelle Größe der aktiven Extents, gemittelt über die Zeit Status des Rollback-Segments: ONLINE bedeutet, dass das Rollback-Segment verfügbar ist. PENDING OFFLINE bedeutet, dass das Rollback-Segment durch einen Befehl offline gesetzt wurde, es aber noch einige aktive Transaktionen für das Segment gibt. Das Rollback-Segment wird offline gesetzt, sobald alle Transaktionen, die das Rollback-Segment verwenden, abgeschlossen sind. OFFLINE bedeutet, dass das Rollback- Segment nicht verwendet werden kann. aktuelle Stelle des Kopfes des Rollback-Segments; Extent und Blocknummer Hinweis: Wenn ein Rollback-Segment den Status PENDING OFFLINE besitzt, wird der Status in DBA_ROLLBACK_SEGS als ONLINE angezeigt. 10-32 Oracle8i Datenbankadministration Teil I

Informationen über Rollback-Segmente erhalten Rollback-Segment: aktuelle Aktivität V$SESSION SADDR USERNAME SID SERIAL# V$TRANSACTION SES_ADDR XIDUSN UBAFIL UBABLK UBASQN UBAREC STATUS USED_UBLK USED_UREC 10-19 Copyright Oracle Corporation, 1999. All rights reserved. V$SESSION und V$TRANSACTION Mit einer Verknüpfung der Views V$TRANSACTION und V$SESSION überprüfen Sie die Verwendung von Rollback-Segmenten durch momentan aktive Transaktionen. Beispiel SQL> SELECT s.username, t.xidusn, t.ubafil, 2 t.ubablk, t.used_ublk 3 FROM v$session s, v$transaction t 4 WHERE s.saddr = t.ses_addr; USERNAME XIDUSN UBAFIL UBABLK USED_UBLK ----------- ---------- ------ ------- ---------- SYSTEM 2 2 7 1 SCOTT 1 2 163 1 2 rows selected. Oracle8i Datenbankadministration Teil I 10-33

Lektion 10: Rollback-Segmente verwalten V$TRANSACTION und V$SESSION (Fortsetzung) Die entsprechenden Spalten in V$TRANSACTION und ihre Beschreibung finden Sie in der folgenden Übersicht: Spalte SES_ADDR XIDUSN UBAFIL UBABLK UBASQN UBAREC USED_UBLK START_UEXT START_UBAFIL START_UBABLK Beschreibung Session-Adresse; kann mit V$SESSION.SADDR verknüpft werden Nummer des Rollback- Segments (Undo- Segments), das von der Transaktion verwendet wird; wird als Teil der Transaktions-ID benutzt geben die aktuelle Stelle im Rollback-Segment an, auf die die Transaktion schreibt Anzahl von Blöcken für Undo, die von der Transaktion angelegt wurden Extent des Rollback-Segments, bei dem die Transaktion das Schreiben startete Dateinummer des Rollback-Segments, bei dem die Transaktion das Schreiben startete Blocknummer des Rollback-Segments, bei dem die Transaktion das Schreiben startete 10-34 Oracle8i Datenbankadministration Teil I

Rollback-Segmente planen Rollback-Segmente planen Rollback-Segmente planen: Anzahl OLTP viele kleine Rollback-Segmente vier Transaktionen pro Rollback-Segment bis zu zehn Transaktionen pro Rollback- Segment Batch wenige große Rollback-Segmente eines pro Transaktion 10-20 Copyright Oracle Corporation, 1999. All rights reserved. Anzahl von Rollback-Segmenten Der Header eines Rollback-Segments enthält Einträge in Transaktionstabellen, die den Status einer Transaktion definieren. Jede Transaktion, die ein Rollback-Segment verwendet, aktualisiert häufig die Transaktionstabelle. Dadurch können Zugriffskonflikte im Header entstehen, besonders in OLTP-Umgebungen (Online Transaction Processing). Da OLTP-Umgebungen typischerweise kurze Transaktionen verwenden, werden für diese Umgebungen viele kleine Rollback-Segmente empfohlen. Legen Sie, wenn möglich, ein Rollback-Segment für jede konkurrierende Transaktion an. Batch-Umgebungen starten im Allgemeinen weniger Jobs, die verschiedene Änderungen durchführen. Diese Jobs erfordern große Rollback-Segmente. Ermöglichen Sie deshalb in einer Batch-Umgebung das Wachstum der Rollback- Segmente, indem Sie sie in großen Tablespaces anlegen. Oracle8i Datenbankadministration Teil I 10-35

Lektion 10: Rollback-Segmente verwalten Rollback-Segmente planen: Anzahl Extents 0.50 Erweiterungswahrscheinlichkeit 0.40 0.30 0.20 0.10 0.00 0 10 20 30 40 Anzahl Extents 10-21 Copyright Oracle Corporation, 1999. All rights reserved. Größe eines Rollback-Segments Die Anzahl Bytes, die zur Speicherung von Informationen für den Fall des Zurückrollens benötigt werden, hängt von zwei Punkten ab: dem Typ der durchgeführten Transaktion (INSERT, UPDATE, DELETE usw.) den aktuell verarbeiteten Daten Im Allgemeinen erfordert das Einfügen eines Datensatzes in eine Tabelle weniger Undo als das Löschen des gleichen Datensatzes. Beim Einfügen muss nur die ROWID im Rollback gespeichert werden, während beim Löschen die aktuelle Zeile selbst gespeichert werden muss. Schätzen Sie die Größe des Rollback-Segments ab, indem Sie die längste erwartete Transaktion starten und die Größe des Rollback-Segments prüfen. Die Kurse Oracle8i: Performance Tuning und Oracle8i: SQL- und Zugriffsoptimierung behandeln das Überwachen von Statistiken. Anzahl von Extents Es hat sich herausgestellt, dass eine dynamische Erweiterung eines Rollback- Segments verringert werden kann, wenn Rollback-Segmente mit vielen Extents angelegt werden. Es wird empfohlen, Rollback-Segmente mit MINEXTENTS=20 anzulegen, um Erweiterungen zu reduzieren. 10-36 Oracle8i Datenbankadministration Teil I

Fehlerbehebung bei Rollback-Segment-Problemen Fehlerbehebung bei Rollback-Segment-Problemen Probleme bei Rollback-Segmenten Zu wenig Speicherplatz für Transaktionen Lesekonsistenz-Fehler Blockierende Session Fehler beim Offline-Setzen eines Tablespace 10-22 Copyright Oracle Corporation, 1999. All rights reserved. Oracle8i Datenbankadministration Teil I 10-37

Lektion 10: Rollback-Segmente verwalten Zuwenig Speicherplatz für Transaktionen Kein Speicherplatz im Tablespace Datendateien vergrößern automatische Erweiterung von Datendateien zulassen Datendateien hinzufügen MAXEXTENTS für Segment ist erreicht MAXEXTENTS erhöhen Segmente mit erweiterten Extent-Größen neu anlegen 10-23 Copyright Oracle Corporation, 1999. All rights reserved. Mögliche Fehlerursachen Eine Transaktion verwendet ein einzelnes Rollback-Segment und kann fehlschlagen, weil zuwenig Speicherplatz im Rollback-Segment vorhanden ist (ORA-01562). Mögliche Gründe sind: Der Tablespace enthält zuwenig Speicherplatz zum Erweitern des Rollback- Segments (ORA-01560). Die Zahl der Extents im Rollback-Segment hat MAXEXTENTS erreicht und zusätzliche Extents können nicht angefordert werden (ORA-01628). Lösung Wenn der Tablespace keinen freien Speicherplatz besitzt, können Sie den verfügbaren Speicherplatz erhöhen: setzen Sie OPTIMAL, um sicherzustellen, dass ein einzelnes Rollback-Segment nicht den ganzen freien Speicherplatz des Tablespace belegen kann schrumpfen Sie die Rollback-Segmente auf ihre optimale Größe zurück vergrößern Sie den Tablespace Wenn ein Rollback-Segment keine weiteren Extents anfordern kann, weil der Grenzwert MAXEXTENTS erreicht ist: 10-38 Oracle8i Datenbankadministration Teil I

Fehlerbehebung bei Rollback-Segment-Problemen erhöhen Sie MAXEXTENTS für das Rollback-Segment löschen Sie das Rollback-Segment und legen es mit größeren Extents neu an, um eine Wiederholung des Problems zu vermeiden Oracle8i Datenbankadministration Teil I 10-39

Lektion 10: Rollback-Segmente verwalten Lesekonsistenz-Fehler Tabelle SELECT * FROM table Wieder verwendeter Block Neuer Zustand Zustand bei Anweisungsbeginn 10-24 Copyright Oracle Corporation, 1999. All rights reserved. Mögliche Fehlerursachen Um Lesekonsistenz zu bieten, garantiert der Oracle Server, dass nur Änderungen anderer Benutzer, die zu Beginn einer Anweisung noch nicht festgeschrieben sind oder danach durchgeführt werden, von der Anweisung nicht berücksichtigt werden. Wenn der Oracle Server keinen lesekonsistenten Zustand der Daten bilden kann, erhält der Benutzer den Fehler ORA-01555 SNAPSHOT TOO OLD. Dieser Fehler kann auftreten, wenn die Transaktion, die die Änderungen durchgeführt hat, festgeschrieben ist und: wenn der Transaktionseintrag im Rollback-Header wieder verwendet wurde wenn das Before Image im Rollback-Segment durch eine andere Transaktion überschrieben wurde Lösung Lesekonsistenz-Fehler können minimiert werden, wenn Rollback-Segmente angelegt werden mit: höherem Wert für MINEXTENTS größeren Extents höherem OPTIMAL-Wert 10-40 Oracle8i Datenbankadministration Teil I

Fehlerbehebung bei Rollback-Segment-Problemen Beachten Sie aber, dass durch Heraufsetzen von MAXEXTENTS diese Fehler nicht verhindert werden können. Oracle8i Datenbankadministration Teil I 10-41

Lektion 10: Rollback-Segmente verwalten Blockierende Session Blockierende Session 4 1 1 2 3 2 Extent 3 5 4 3 Vorhandener Extent Neuer Extent 10-25 Copyright Oracle Corporation, 1999. All rights reserved. Mögliche Fehlerursachen Wenn ein Extent eines Rollback-Segments gefüllt wird, versucht der Oracle Server, das nächste Extent im Segment zu verwenden. Wenn dieser neue Extent auch nur einen aktiven Eintrag besitzt d.h. einen Eintrag einer noch aktiven Transaktion, kann er nicht verwendet werden. In diesen Fällen fordert das Rollback-Segment einen zusätzlichen Extent an. Die Transaktion kann keinen Extent im Kreis überspringen und mit einem nachfolgenden Extent fortfahren. Eine Transaktion, die nur wenige Änderungen durchgeführt hat, aber für längere Zeit im Leerlauf war, kann Rollback- Segmente zum Wachsen veranlassen, auch wenn viele freie Extents vorhanden sind. In dieser Situation wird viel Speicherplatz verschwendet und die Datenbankadministration sollte eingreifen, um ein unkontrolliertes Wachsen von Rollback-Segmenten zu verhindern. 10-42 Oracle8i Datenbankadministration Teil I

Fehlerbehebung bei Rollback-Segment-Problemen Lösung Mit den Views V$ROLLSTAT, V$SESSION und V$TRANSACTION können Sie blockierende Transaktionen ermitteln. Beispiel SQL> SELECT s.sid, s.serial#, t.start_time, t.xidusn, s.username 2 FROM v$session s, v$transaction t, v$rollstat r 3 WHERE s.saddr = t.ses_addr 4 AND t.xidusn = r.usn 5 AND ((r.curext = t.start_uext-1) OR 6 ((r.curext = r.extents-1) AND t.start_uext=0)); SID SERIAL# START_TIME XIDUSN USERNAME --- ------- ----------------- ------ -------- 9 27 10/30/97 21:10:41 2 SYSTEM 1 row selected. Überprüfen Sie, ob die Transaktion vom Benutzer beendet werden kann. Wenn nicht, müssen Sie möglicherweise die Session abbrechen. Oracle8i Datenbankadministration Teil I 10-43

Lektion 10: Rollback-Segmente verwalten Fehler beim Offline-Setzen eines Tablespace Tablespace mit aktivem RBS kann nicht offline gesetzt werden 1. Überprüfen Sie, welche Rollback-Segmente im Tablespace sind 2. Setzen Sie alle diese Rollback-Segmente offline 3. Stellen Sie fest, welche aktiven Transaktionen diese Rollback-Segmente verwenden 4. Ermitteln Sie ID und Seriennummer der Session 5. Beenden Sie, falls nötig, die Session 6. Setzen Sie den Tablespace offline 10-26 Copyright Oracle Corporation, 1999. All rights reserved. Problem-Diagnose und -Lösung Wenn ein Tablespace ein oder mehrere aktive Rollback-Segmente enthält, kann er nicht offline gesetzt werden. Die Session, die die Anweisung ausführt, erhält den Fehler ORA-01546. Lösung Führen Sie die folgenden Schritte durch: 1 Fragen Sie DBA_ROLLBACK_SEGS ab, um herauszufinden, welche Rollback-Segmente im Tablespace sind. 2 Setzen Sie alle Rollback-Segmente im Tablespace offline. 3 Überprüfen Sie V$TRANSACTION, um die Transaktionen zu ermitteln, die diese Rollback-Segmente verwenden. 4 Ermitteln Sie mit V$SESSION den Benutzernamen und Informationen über die Session. 5 Brechen Sie die Session ab oder fordern Sie den Benutzer auf, die Transaktion zu beenden. 6 Setzen Sie den Tablespace offline. 10-44 Oracle8i Datenbankadministration Teil I

Zusammenfassung Zusammenfassung Zusammenfassung In dieser Lektion sollten Sie Folgendes gelernt haben: Verwendung von Rollback-Segmenten angeben: Rollbacks Lesekonsistenz Recovery passende Rollback-Segment anlegen Fehlerbehebung bei Problemen mit Rollback- Segmenten 10-27 Copyright Oracle Corporation, 1999. All rights reserved. Oracle8i Datenbankadministration Teil I 10-45

Lektion 10: Rollback-Segmente verwalten Kurzreferenz Kontext Initialisierungsparameter Dynamische Performance-Views Data Dictionary-Views Befehle Referenz ROLLBACK_SEGMENTS TRANSACTIONS TRANSACTIONS_PER_ROLLBACK_SEGMENTS MAX_ROLLBACK_SEGMENTS V$ROLLNAME V$ROLLSTAT V$TRANSACTION V$SESSION DBA_ROLLBACK_SEGS CREATE ROLLBACK SEGMENT ALTER ROLLBACK SEGMENT... ONLINE ALTER ROLLBACK SEGMENT... STORAGE ALTER ROLLBACK SEGMENT... SHRINK ALTER ROLLBACK SEGMENT... OFFLINE DROP ROLLBACK SEGMENT SET TRANSACTION USE ROLLBACK SEGMENT 10-46 Oracle8i Datenbankadministration Teil I