Verwaltung von Db2 Warehouse Transaktionsprotokollen

Wenn Ihre Instanz viele Transaktionen ausführt, kann Ihr Archivprotokollverzeichnis voll werden und Sie müssen möglicherweise Protokolldateien entfernen, um Speicherplatz freizugeben.

Informationen zu dieser Task

Sie können nicht mehr benötigte Protokolldateien und Verzeichnisse entweder manuell löschen oder den prune history Befehl verwenden.

Wenn die Db2 Warehouse Instanz aufgrund von Platzmangel fehlschlägt, können Sie vor dem Bereinigen der Protokolle die zugehörige PVC bearbeiten und die zugewiesene Größe erhöhen. Für die Speicherklasse, die Sie verwenden, muss allowVolumeExpansionauf Truegesetzt sein.

Hinweis: Bevor Sie Protokollverzeichnisse entfernen, stellen Sie sicher, dass keine Sicherungs- oder Wiederherstellungsvorgänge ausgeführt werden. Sie können den db2 list utilities Befehl zum Bestätigen verwenden.

Vorgehensweise

Verwenden Sie eine der folgenden Methoden, um Protokolldateien zu verwalten:
Nicht benötigte Protokollverzeichnisse und -dateien manuell löschen

Standardmäßig archiviert Transaktionsprotokolle mit den folgenden Db2 Warehouse Einstellungen auf der Festplatte:

First log archive method (LOGARCHMETH1): DISK:/mnt/bludata0/db2/archive_log/
Number of primary log files (LOGPRIMARY): 20
Number of secondary log files (LOGSECOND): 30

Die folgende Formel wird verwendet, um zu bestimmen, wie viele Protokolle in jedem MLN (Multiple Logical Node) aufbewahrt werden:

(log primary + log secondary) * 2

Daher werden standardmäßig (20 + 30) * 2 oder 100 Protokolle gespeichert.

Um diese Anzahl von Protokollen zu verwalten, nehmen Sie an, dass Sie eine Bereitstellung von einem MLN haben. Archivierte Protokolle werden in Unterverzeichnissen aufbewahrt, deren Name mit "C" im Verzeichnis /mnt/bludata0/db2/archive_log/db2inst1/BLUDB/NODE0000/LOGSTREAM0000beginnt.

Wenn also Verzeichnisse von C0000000bis C0000005vorhanden sind, entfernen Sie C0000000bisC0000004.

Anschließend werden im Verzeichnis C0000005nur die letzten 100 Protokolldateien gespeichert. Die Dateinamen beginnen mit "S." Wenn das Verzeichnis C0000005über S0000000.LOGbis S0000200.LOGverfügt, würden SieS0000101.LOG bisS0000200.LOGbeibehalten.

Anschließend wiederholen Sie diesen Prozess für jeden MLN NODE0000 bis NODEXxxx.

Verwenden Sie zum Entfernen der Protokollverzeichnisse den folgenden Befehl, wenn Sie als Benutzer db2inst1 angemeldet sind:

sudo rm -r directory
Verwenden Sie den Db2 Warehouseprune history Befehl

Suchen Sie die Zeitmarke der Protokolle, die Sie bereinigen möchten (bis einschließlich), indem Sie den folgenden Befehl ausführen:

db2 list history all for database-name | egrep "B P|B D|X D"

Der Befehl gibt die Zeitmarken der folgenden Speicherelemente zurück:

X D:log archive
B P:tablespace backup
B D:full backup

Der grundlegende Befehl „prune history“ ermöglicht Db2 Warehouse die Verwaltung eines db2 prune history timestamp Wiederherstellungssatzes. Wenn Sie verwenden, db2 prune history timestamp with force optionDb2 Warehouse wird der Wiederherstellungssatz nicht beibehalten. Sie können auch Befehlsparameter wie AND DELETE verwenden, um festzulegen, dass zugeordnete Protokollarchive physisch gelöscht werden, wenn der Protokolldateieintrag entfernt wird, und LOGFILE PRIOR TO log-file-name, um die Protokolldateien anzugeben, die nach Dateinamen gelöscht werden sollen.

Weitere Informationen finden Sie in den folgenden Abschnitten:

Hinweis: Einzelheiten zur Automatisierung der Verwaltung von Diagnoseprotokoll-Dateien finden Sie unter Automatisieren von Aufgaben mit dem Verwaltungsaufgabenplaner (ATS) für den Dienst „ Db2 Warehouse “.