Blockprüfung und Tabellenreparatur im Oracle-Umfeld

Im Oracle-Umfeld kann es hin und wieder notwendig werden, eine Blockprüfung der Datenbank durchzuführen, um sicherzustellen, dass alles reibungslos funktioniert. Dabei gibt es verschiedene Ansätze, je nachdem, ob es sich um die gesamte Datenbank oder einzelne Tabellen handelt. Hier zeige ich euch, wie ihr vorgeht, und gebe auch Tipps zur Reparatur.

Blockprüfung der gesamten Datenbank

Die Blockprüfung kann leider nicht direkt auf Tabellenebene durchgeführt werden. Stattdessen prüfen wir alle Blöcke der gesamten Datenbank. Folgendes Kommando wird dazu verwendet:

brbackup -u / -w only_rmv -c -t online -m all -e 8

Damit werden alle Blöcke der Datenbank auf eventuelle Fehler überprüft.

Blockprüfung der benutzten Blöcke der Datenbank

Falls du nur die benutzten Blöcke prüfen möchtest, kannst du dieses Kommando verwenden:

brbackup -u / -w only_dbv -c -t online -m all -e 8

Auch hier wird leider nur auf Datenbankebene geprüft, nicht direkt auf Tabellenebene.

Reparatur von Indizes

Wenn die Blockprüfung Probleme bei einem Index aufzeigt, gibt es zwei Ansätze, um diesen zu reparieren.

Ansatz 1: Index online neu aufbauen

Du kannst den betroffenen Index einfach online neu aufbauen, und zwar mit folgendem Befehl:

alter index SAPSR3."<TABELLE>" rebuild online;

oder bei einem anderen Index:

alter index SAPSR3."<TABELLE>~0" rebuild online;

Ansatz 2: Export und Import der Tabelle

Alternativ kannst du den Index auch durch Export und Import neu aufbauen. Vorteil dieses Ansatzes: Du siehst bereits beim Export, ob es Probleme mit der Tabelle gibt. So gehst du vor:

1. Export der Tabelle

Führe folgenden Exportbefehl aus:

exp userid=sapsr3/password tables=<TABELLE> file=<TABELLE>.DMP

2. Tabelle löschen

Anschließend die Tabelle im SQLPlus löschen:

drop table sapsr3.<TABELLE>;
commit;

3. Tabelle wieder importieren

Nun importierst du die Tabelle wieder über die DOS-Box:

imp userid=sapsr3/password tables=<TABELLE> file=<TABELLE>.DMP

Manuelle Prüfung einzelner Tabellen

Wenn du eine einzelne Tabelle überprüfen möchtest, gibt es verschiedene Möglichkeiten. Eine schnelle Methode ist der ANALYZE-Befehl:

analyze table sapsr3.<TABELLE> validate structure cascade online;

Zusätzlich gibt es die FAST-Option für diesen Befehl, doch SAP empfiehlt die Verwendung dieser Option nicht(damaliger Stand):

analyze table sapsr3.<TABELLE> validate structure cascade fast;

Blockstatistiken generieren

Eine weitere Möglichkeit ist der Einsatz von brconnect zur Erzeugung von Statistiken:

brconnect -u / -c -f stats -t  -v cascade

oder für alle Tabellen:

brconnect -u / -c -f stats -t all -v cascade -p 8 &

Mit diesen Befehlen und Techniken hast du eine solide Grundlage, um im Oracle-Umfeld Blockprüfungen durchzuführen und mögliche Probleme mit Tabellen und Indizes zu beheben. Je nach Art der Probleme kannst du zwischen einer schnellen Online-Reparatur oder einer gründlicheren Methode wie dem Export/Import wählen.