Sie erstellen einen Deadlock und zeichnen Informationen darüber auf, indem Sie den Assistenten für die Datenbankprotokollierung verwenden, um eine Sitzung für die Diagnoseprotokollierung zu erstellen.
Voraussetzungen
In dieser Lektion wird davon ausgegangen, dass Sie die Rollen und Privilegien haben, die im Abschnitt "Privilegien" am Anfang dieser praktischen Einführung aufgeführt sind: Praktische Einführung: Deadlocks diagnostizieren.
In dieser Lektion wird davon ausgegangen, dass Sie bereits alle vorherigen Lektionen abgeschlossen haben. Siehe Lektion 1: Datenbank einrichten.
Kontext und Bemerkungen
In der praktischen Einführung in die Anwendungsprofilerstellung werden Protokollierungsinformationen in der Testdatenbank (app_profiling.db) gespeichert, bei der es sich um die in den praktischen Einführungen verwendete Datenbank handelt. Wenn Sie allerdings das Profil einer Datenbank mit großer Arbeitslast erstellen, ist es empfehlenswert, Protokollierungsdaten in einer separaten Datenbank zu speichern, um Auswirkungen auf die Performance der Produktionsdatenbank zu vermeiden.
Starten Sie Sybase Central. Klicken Sie auf Start » Programme » SQL Anywhere 16 » Administrationstools » Sybase Central.
Stellen Sie in Sybase Central folgendermaßen eine Verbindung mit app_profiling.db her:
Klicken Sie auf Verbindungen » Verbinden mit SQL Anywhere 16.
Füllen Sie im Fenster Verbinden die folgenden Felder aus, um eine Verbindung mit der Testdatenbank app_profiling.db herzustellen:
Klicken Sie im Feld Authentifizierung auf Datenbank.
Im Feld Benutzer-ID geben Sie DBA ein.
Im Feld Kennwort geben Sie sql ein.
Wählen Sie in der Dropdown-Liste Aktion die Option Eine Datenbank auf diesem Computer starten und eine Verbindung herstellen aus.
Geben Sie im Feld Datenbankdatei Folgendes ein: C:\AppProfilingTutorial\app_profiling.db.
Geben Sie im Feld Startzeile Folgendes ein: dbeng16 -x tcpip.
Klicken Sie auf Verbinden.
Klicken Sie in Sybase Central auf Modus » Anwendungsprofil.
Wenn der Assistent für die Anwendungsprofilerstellung eingeblendet wird, klicken Sie auf Abbrechen.
Starten Sie den Assistenten für die Datenbankprotokollierung wie folgt:
Klicken Sie auf Datei » Protokollierung.
Auf der Seite Willkommen klicken Sie auf Weiter.
Klicken Sie auf der Seite Protokollierungsdetailtiefe auf Hohe Detaillierung (bei kurzfristiger, intensiver Überwachung empfohlen) und anschließend auf Weiter.
Auf der Seite Protokollierungsstufen bearbeiten klicken Sie auf Weiter.
Klicken Sie auf der Seite Externe Datenbank erstellen auf Keine neue Datenbank erstellen. Vorhandene Datenbank soll benutzt werden und anschließend auf Weiter.
Klicken Sie auf der Seite Protokollierung starten auf Protokollierungsdaten in dieser Datenbank speichern.
Wenn Sie für die Menge der gespeicherten Protokollierungsdaten keine Grenzen festlegen möchten, klicken Sie auf Keine Beschränkung und anschließend auf Fertig stellen.
Erstellen Sie den Deadlock folgendermaßen:
Vergewissern Sie sich, dass im linken Fensterausschnitt app_profiling - DBA ausgewählt ist, und klicken Sie dann auf Datei » Interactive SQL öffnen.
Interactive SQL wird gestartet und stellt eine Verbindung mit der Datenbank app_profiling.db her.
Wiederholen Sie den vorherigen Schritt, um ein zweites Interactive SQL-Fenster zu öffnen.
Führen Sie im ersten Interactive SQL-Fenster die folgende SQL-Anweisung aus:
CALL "DBA"."proc_deadlock1"(); |
Führen Sie im zweiten Interactive SQL Fenster innerhalb von 20 Sekunden nach der Ausführung der SQL-Anweisung im ersten Interactive SQL-Fenster die folgende SQL-Anweisung aus:
CALL "DBA"."proc_deadlock2"(); |
Nach ein paar Augenblicken wird ein ISQL-Fehler-Fenster angezeigt, das angibt, dass ein Deadlock erkannt wurde.
Der Deadlock ist aufgetreten, da proc_deadlock1 Zugriff auf die Tabelle "deadlock2" benötigt, die von proc_deadlock2 gesperrt wurde. Gleichzeitig benötigt proc_deadlock2 Zugriff auf die Tabelle "deadlock1", die von proc_deadlock1 gesperrt wurde.
Klicken Sie auf OK.
SQL Anywhere hat die Deadlock-Vorgänge gestoppt und Sie können die Interactive SQL-Fenster schließen.
Stoppen Sie in Sybase Central die Protokollierungssitzung, indem Sie im linken Fensterausschnitt app_profiling - DBA auswählen und anschließend auf Datei » Protokollierung » Protokollierung mit Speichern stoppen klicken.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |