Abschneiden des Transkationsprotokolls und Verkleinern der Protokolldatei für SQL Server

Acronis Backup & Recovery 11.5 schneidet Transaktionsprotokolle nach Erstellung eines Laufwerk-Backups nicht ab. Falls Sie nicht die systemeigene Backup-Engine des Microsoft SQL Servers verwenden (oder die Backup-Lösung eines anderen Drittherstellers, die Transaktionsprotokolle automatisch verwaltet), dann können Sie die Protokolle mit folgenden Methoden verwalten.

Protokollabschneidung durch SQL Server Management Studio

Wenn Sie eine Datenbank auf das einfache Wiederherstellungsmodell (Simple Recovery Model) umschalten, werden die Transaktionsprotokolle automatisch abgeschnitten.

  1. So schalten Sie die Datenbank auf das einfache Wiederherstellungsmodell um:
    1. Führen Sie Microsoft SQL Server Management Studio aus und verbinden Sie sich mit der Instanz.
    2. Klicken Sie mit der rechten Maustaste auf die Datenbank und wählen Sie Eigenschaften. Darauf öffnet sich das Dialogfenster Datenbankeigenschaften.
    3. Klicken Sie im Fensterbereich Seite auswählen auf Optionen.
    4. Wählen Sie im Listenfeld Wiederherstellungsmodell das Modell Einfach.
  2. Die Transaktionsprotokolldateien werden automatisch abgeschnitten.
  3. Schalten Sie die Datenbank, auf gleiche Art wie in Schritt 1, zurück zum vollständigen oder massenprotokollierten Wiederherstellungsmodell.

Protokollabschneidung und -verkleinerung automatisieren

Sie können die obere Prozedur des Abschneidens mit einem Skript automatisieren und (optional) auch das Protokolldatei-Verkleinern hinzufügen. Falls Sie das Skript zu den 'Nach-Backup'-Befehlen hinzufügen, werden die Protokolle direkt nach einem Backup abgeschnitten und verkleinert. Bei dieser Methode wird angenommen, dass Sie über Kenntnisse zur Erstellung/Nutzung von Transact-SQL-Skripten verfügen und sich mit dem Utility sqlcmd auskennen.

Weitere Informationen über Transact-SQL und sqlcmd finden Sie in folgenden Artikeln:

So automatisieren Sie das Abschneiden und Verkleinern des Transaktionsprotokolls für eine SQL-Instanz

  1. Erstellen Sie durch Verwendung des folgenden Templates ein Skript, welches die Protokolldateien für die Datenbanken der folgenden Instanz abschneidet und verkleinert:

    USE database_name
    ALTER DATABASE database_name SET RECOVERY SIMPLE;
    DBCC SHRINKFILE(logfile_name);
    ALTER DATABASE database_name SET RECOVERY FULL;

    Im letzten String hängt der Wert SET RECOVERY vom ursprünglichen Wiederherstellungsmodell der bestimmten Datenbank ab und kann FULL (vollständig) oder BULK_LOGGED (massenprotokolliert) sein.

    Beispiel für eine Instanz, die zwei Datenbanken (TestDB1 und TestDB2) hat:

    USE TestDB1;
    ALTER DATABASE TestDB1 SET RECOVERY SIMPLE;
    DBCC SHRINKFILE(TestDB1_log);
    ALTER DATABASE TestDB1 SET RECOVERY FULL;

    USE TestDB2;
    ALTER DATABASE TestDB2 SET RECOVERY SIMPLE;
    DBCC SHRINKFILE(TestDB2_log);
    ALTER DATABASE TestDB2 SET RECOVERY BULK_LOGGED;

  2. Fügen Sie den nachfolgenden sqlcmd-Befehl dem 'Nach-Backup'-Befehl hinzu:

    sqlcmd -S myServer\instanceName -i C:\myScript.sql

    Dabei ist:

So automatisieren Sie das Abschneiden und Verkleinern des Transaktionsprotokolls für mehrere SQL-Instanzen

Falls Sie mehr als eine Instanz auf der Maschine haben und Sie die obere Prozedur auf diese Instanzen anwenden wollen, dann gehen Sie folgendermaßen vor.

  1. Erstellen Sie eine separate Skriptdatei für jede Instanz (z. B. C:\script1.sql und C:\script2.sql).
  2. Erstellen Sie eine Batchdatei (z.B. C:\truncate.bat), welche die Befehle für die korrespondierende Instanz enthält:

    sqlcmd -S myServer\instance1 -i C:\script1.sql
    sqlcmd -S myServer\instance2 -i C:\script2.sql

  3. Spezifizieren Sie bei 'Nach-Backup-Befehl' den Pfad zu dieser Batchdatei.