Database Inside

<< ODBC Viewer | IBExpert | IBExpert Kommandozeilentools >>

Die deutschsprachige Dokumentation wird seit dem 26. Juli 2016 nicht mehr gepflegt. Aktuelle und vollständige Dokumentation finden Sie auf der englischsprachigen Webseite: IBExpert Documentation


Database Inside

Database Inside ist in der IBExpert Vollversion im Nutzliches-Menü zu finden. Sie können die IBExpert Database Inside-Funktion nutzen, um Datenbanken zu analysieren und zu reparieren. (Dieses Feature ist leider nicht in der kostenlose IBExpert Personal Edition enthalten.)

Database Inside liest die Datenbankdatei direkt, ohne einen Server. Diese ermöglicht die Extrahierung der Daten/Metadaten von beschädigten Datenbanken, auch wenn es mit einer normalen Datenbankverbindung nicht möglich ist. Database Inside bearbeitet Dateien im Read-Only Modus, so dass die Dateien unverändert bleiben.

Firebird 3 Datenbanken werden seit IBExpert Version 2015.06.01 unterstützt.

Hier habe wir eine korrupte Datenbank. Wenn man versucht mit der Datenbank zu verbinden, erscheint eine Fehlermeldung: Bad Checksum error on database page 262:

Es ist nicht einmal möglich, ein erfolgreiches Backup durchführen - auch ohne die Garbage Collection, bzw. mit oder ohne sonstige Optionen. In diesem Beispiel ist eine der Systemtabellen beschädigt; daher ist es ein ziemlich ernstes Problem. Auch ein Versuch mit gfix, um die Datenbank zu validieren, ist nicht erfolgreich.

So, wir können also entweder die Datenbank verwerfen oder Database Inside verwenden.

Wenn Sie Database Inside starten, werden Sie als Erstes aufgefordert, eine Datenbankdatei auszusuchen und zu öffnen:

Sofort erscheint eine Übersicht der Datenbank:

Wichtig: es wird keinen Firebird-Server bzw. Werkzeug gestartet oder in irgendeiner Weise hier beteiligt. IBExperts interne Strukturen lesen und laden die Datenbankinhalte. Dies ermöglicht Ihnen, sonst irreparable Datenbanken anzeigen zu lassen und zu reparieren.

zurück zum Seitenanfang

All pages

Die Alle Seiten-Seite zeigt eine Liste der Datenbankseiten in natürlicher Reihenfolge an. Die hier angezeigten Seitentypen können auf der Optionen-Seite spezifiziert werden. Bitte merken Sie, dass bei großen Datenbanken, die Anzeige des Indexbaums, des Index Roots und der Blob Datenseiten deaktiviert werden soll, um Speicherbbenutzung zu optimieren.

Verdächtige Seiten (Seiten vermerkt mit einer Zuordnung als unbekannter Seitentyp und/oder falsche Prüfsumme) werden in rot hervorgehoben:

Hier können wir sehen, dass Seite 262 - so wie Firebird uns bereits sagte - beschädigt ist.

Wenn Sie auf den Seiten in der Auflistung links klicken, sehen Sie - abhängig vom Seitentyp - unterschiedliche Information. Zum Beispiel, wenn Sie auf der Database Header-Seite in der All Pages-Liste klicken, sehen Sie durch einfaches Anklicken Page Header-Information, Datenbankeigenschaften und Flags als Hex-Code.

Mit einem Doppelklick oder Enter wird die Datenseite in einem neuen Fenster geöffnet.

Wenn Sie eine Datenseite oder eine Pointer page auswählen, gibt es drei Datenansichten im unteren Teil des Fensters: Columns view (Spaltenansicht), Raw data, packed (Rohdaten, gepackt) and Unpacked data (entpackte Daten).

Sie können mehr über Datenseiten und Pointer-Seiten in den folgenden Artikeln lesen:

zurück zum Seitenanfang

Statistics

Die Statistiken-Seite enthält wertvolle Statistiken über die Seitenverteilung innerhalb der Datenbankdatei. Verdächtige Daten (Anzahl der zugeordneten Seiten mit nicht definiertem/unbekanntem Seitentyp und/oder falscher Prüfsumme) werden in rot hervorgehoben.

Mehr über die einzelnen Seitentypen erfahren Sie im Datenbanktechnologie-Artikel, Firebird for the database expert: page types und im IBExpert Dokumentationskapitel, Datenbankstatistik.

Definition: WAL - Write Ahead Log

zurück zum Seitenanfang

Header

Die Header-Seite enthält die Datenbank Header-Daten.

Auch hier wenn Sie in der Liste auf der linken Seite klicken, sehen Sie den genauen Hexcode, den Firebird verwendet, um diese Eigenschaft zu definieren.

Es gibt einige interessante Artikel zum Thema Header Page:

und das Thema, Database Properties wird im IBExpert Kapitel, Datenbankeigenschaften ausführlich beschrieben.

Definition: OIT- Oldest Interesting Transaction

zurück zum Seitenanfang

PIPs

Die PIPs (PIP: Page Inventory Pages) Seite enthält eine Liste aller PIPs in der Datenbankdatei sowie Information über die Seitenzuordnung.

Sie können mehr über PIPs in den folgenden Artikeln lesen:

zurück zum Seitenanfang

TIPs

Die TIPs (TIP: Transaction Inventory Pages) Seite enthält eine Liste aller TIPs in der Datenbank.

Sie können mehr über TIPs in den folgenden Artikeln lesen:

zurück zum Seitenanfang

Pointer pages

Die Pointer pages Seite enthält eine Liste aller Pointer-Seiten für jede Beziehung in der Datenbank.

Sie können mehr über PTRs in den folgenden Artikeln lesen:

zurück zum Seitenanfang

Extract data/metadata

Die Daten/Metadaten extrahieren-Seite ermöglicht die Daten- und/oder Metadatenextrahierung direkt aus der Datenbankdatei. Metadaten/Daten können in einen Satz SQL Skriptdateien oder in eine neue Datenbank (in diesem Fall ist eine funktionierende Serverinstanz notwendig) extrahiert werden. Sie können nur die Metadaten oder nur die Daten oder beides extrahieren. Wichtig ist die Spezifikation der richtigen Firebird Serverversion und SQL Dialect. Und vergessen Sie nicht, einen Zielordner (Target directory) zu spezifizieren, wenn Sie in Skriptdateien exportieren wollen.

In unserem Beispiel hier haben wir den entsprechenden Embedded Firebird-Client verwendet. Wir könnten natürlich auch einen normalen Firebird-Client verwenden; dies würde dann als Client über eine Remote-Verbindung laufen.

Zur Beschleunigung haben wir die Option, Use EXECUTE BLOCK for better performance aktiviert, und - falls die Datenbank bereits existiert, haben wir die Option, Drop target database if exists aktiviert.

Die Verwende kurze INSERT wenn möglich (Use short INSERT if possible)-Option wurde in IBExpert Version 2014.12.17 implementiert. Dies erzeugt eine Kurzfassung des INSERT-Befehls - ohne die Spaltenliste - im Gegensatz zum langen INSERT. Damit können Sie mehrere Anweisungen in einem Block setzen und so die Leistung verbessern.

Sie können alle Datentabellen im Kontextmenü der Datentabellenliste simultan auswählen/deselektieren.

Klicken Sie nun auf Extrahieren von Daten / Metadaten unten rechts, um möglichst viel der Datenbank zu retten!

IBExpert öffnet nun die Firebird-Datenbank in binärer Form. Wir berühren in keiner Art und Weise irgendeine Firebird-Instanz. Auf diese Weise haben wir die Möglichkeit, alle Sicherheitsmechanismen Firebird und internen Strukturen zu umgehen. IBExpert protokolliert den Export, mit Details zum Beispiel der Datenobjekte, die nicht ohne Fehler neu erstellt werden können.

Dies ist entscheidend, um festzustellen, welche Teile der Datenbank noch korrekt funktionieren und wo eventuelle Probleme liegen.

Die Metadaten-Objekte werden erstellt, und von IBExpert als zusammenfassende Bewertung am Ende angezeigt. IBExpert zeigt Ihnen, wo es nicht möglich war, bestimmte Elemente ausführen, zum Beispiel Metadaten-Objekte, die nicht korrekt verarbeitet werden konnten.

Alle Befehle , die hier ausgeführt werden, sind in der IBE$DBINSIDE$ERRORS Tabelle enthalten. Diese kann im IBExpert Datenbank-Explorer geöffnet werden, sofern Sie die reparierte Datenbank für den Einsatz in IBExpert registriert haben.

Sie können dann in der Regel notwendige Reparaturarbeiten zurückzuverfolgen und reparieren, zum Beispiel zu der angegebenen Stelle in bestimmten Objekte gehen, oder zum Beispiel zu bestimmte UDFs in der UDF-Bibliothek zurückverfolgen, die in unserem Beispiel bezeichnet werden, die nicht nutzbar sind.

Sie können deutlich die Liste der Operationen, die erfolgreich waren zusammen mit denen, die nicht erfolgreich waren, sehen:

Sie können dann die reparierte Datenbank für die Weiterbearbeitung in IBExpert registrieren.

Erfahren Sie mehr über Metadatenextrahierung im IBExpert Dokumentationskapitel, Extrahiere Metadaten.

zurück zum Seitenanfang

Options

Auf der Optionen-Seite können Sie die Seitentypen auswählen, die auf der Alle Seiten-Seite erscheinen soll.

Bitte merken Sie, dass bei großen Datenbanken, die Anzeige des Indexbaums, des Index Roots und der Blob Datenseiten deaktiviert werden soll, um Speicherbbenutzung zu optimieren.

zurück zum Seitenanfang

Derzeitige Einschränkungen

  • lediglich Einzeldatei-Datenbanken werden zur Zeit unterstützt.
  • InterBase® Datenbanken mit Objektnamenlängen > 31 Zeichen sind noch nicht unterstützt.
  • die Database Inside Feature wurde mit Firebird 1.5-2.5 Datenbanken, die mit Firebird für Windows erzeugt wurden, getestet.


Zum Weiterlesen

zurück zum Seitenanfang
<< ODBC Viewer | IBExpert | IBExpert Kommandozeilentools >>