Das Planen und Automatisieren von Sicherungen der SQL Server-Datenbanken in SQL Server Express

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 2019698 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Zusammenfassung

SQL Server Express-Editionen bieten keine können Aufträge oder Pläne für die Datenbankwartung planen, da die SQL Server-Agent-Komponente nicht in diesen Editionen enthalten ist. Daher müssen Sie einen weiteren Ansatz zum Sichern der Datenbanken bei Verwendung dieser Versionen werden.   

Derzeit können SQL Server Express-Benutzer ihre Datenbanken sichern mithilfe einer der folgenden Methoden:

Verwenden Sie SQL Server Management Studio Express. Dies wird zusammen mit SQL Server Express erweiterte Service oder SQL Server Express Toolkit installiert. Weitere Informationen finden Sie auf der folgenden Microsoft Developer Network (MSDN)-Website:

Erstellen eine vollständigen Datenbanksicherung (SQL Server)

  • Verwenden Sie eine Transact-SQL-Skript, das die BACKUP DATABASE-Familie von Befehlen verwendet. Weitere Informationen finden Sie auf der folgenden MSDN-Website:

    Sicherung (Transact-SQL)

    Dieser Artikel beschreibt, wie Sie ein Transact-SQL-Skript in Verbindung mit Windows-Taskplaner verwenden, um Sicherungen von SQL Server Express-Datenbanken nach einem Zeitplan zu automatisieren.

  • Weitere Informationen

    Sie haben die folgenden drei Schritte so sichern Sie Ihre SQL Server-Datenbanken mithilfe von Windows-Taskplaner:

    Schritt A: mit SQL Server Management Studio Express oder Sqlcmd die folgende gespeicherte Prozedur in der master-Datenbank zu erstellen:

    Copyright © Microsoft Corporation.  Alle Rechte vorbehalten.

    Dieser Code unter den Bedingungen der die

    / / Microsoft Public License (MS-PL, http://opensource.org/licenses/ms-pl.html.)

    Verwenden [Master]
    GO 
    / *** Objekt: StoredProcedure [Dbo].[Sp_BackupDatabases] *** /
    SET ANSI_NULLS ON
    gehen
    SET QUOTED_IDENTIFIER ON
    gehen
    --===
    --Autor: Microsoft
    --erstellt am: 2010-02-06
    --Beschreibung: Sicherungsdatenbanken für SQLExpress
    --Parameter1: DatabaseName
    --Parameter2: Sicherungsart F = vollständig, D = Differenziell L = Protokoll
    --Parameter3: backup-Speicherort
    --===
    Prozedur erstellen [Dbo]. [Sp_BackupDatabases]
    @databaseName Sysname = Null,
    @backupType CHAR(1),
    @backupLocation nvarchar(200)
    AS
    SET NOCOUNT ON; 
               
                DECLARE @DBs TABLE
                (
                      ID int IDENTITY PRIMARY KEY,
                      DBNAME nvarchar(500)
                )
               
                 -- Pick out only databases which are online in case ALL databases are chosen to be backed up
                 -- If specific database is chosen to be backed up only pick that out from @DBs
                INSERT INTO @DBs (DBNAME)
                SELECT Name FROM master.sys.databases
                where state=0
                AND name=@DatabaseName
                OR @DatabaseName IS NULL
                ORDER BY Name
               
                -- Filter out databases which do not need to backed up
                IF @backupType='F'
                      BEGIN
                      Löschen @DBs, in denen DBNAME IN ('Tempdb', 'Northwind', "Pubs", "AdventureWorks")
    END
    ELSE IF @backupType = hatte '
    beginnen
    löschen @DBs, in denen DBNAME IN ('Tempdb', 'Northwind', 'Pubs', 'master', 'AdventureWorks')
    END
    ELSE IF @backupType = 'L'
    beginnen
    löschen @DBs, in denen DBNAME IN ('Tempdb', 'Northwind', 'Pubs', 'master', 'AdventureWorks')
    END
    ELSE
    beginnen
    zurück
    Ende
    --Variablen deklarieren
    DECLARE @BackupName varchar(100)
    DECLARE @BackupFile varchar(100)
    DECLARE @DBNAME varchar(300)
    DECLARE @sqlCommand vom Datentyp NVARCHAR(1000)
    DECLARE @dateTime Size
    DECLARE @ Schleife Int
    --durchlaufen die Datenbanken einzeln
    Wählen Sie @Loop = min(ID) von @DBs
    beim @Loop IS NOT NULL
    beginnen
    Datenbanknamen müssen im Format [Dbname], da einige haben- oder _ in ihrem Namen werden
          SET @DBNAME = ' ['+(SELECT DBNAME FROM @DBs WHERE ID = @Loop) ']'
    ? Legen Sie das aktuelle Datum und die Uhrzeit n Yyyyhhmmss Format
    SET @dateTime = ersetzen (konvertieren (VARCHAR, GETDATE(),101),'/','') + '_' + ersetzen (konvertieren (VARCHAR, GETDATE(),108),':','')
    --Sicherungsdateiname im path\filename.extension Format für vollständige, Vergleichs- und Protokollsicherungen erstellt
    IF @backupType = 'F'
    SET @BackupFile = @backupLocation + ersetzen (ersetzen (@DBNAME, ' [', ''),'] ','') '_FULL_' + @dateTime+ '.BAK'
    ELSE IF @backupType = hatte '
    SET @BackupFile = @backupLocation + ersetzen (ersetzen (@DBNAME, ' [', ''),'] ','') '_DIFF_' + @dateTime+ ".BAK'
    ELSE IF @backupType = 'L'
    SET @BackupFile = @backupLocation + ersetzen (ersetzen (@DBNAME, ' [', ''),'] ','') '_LOG_' + @dateTime+".TRN'
     
    -- Provide the backup a name for storing in the media
          IF @backupType = 'F'
                SET @BackupName = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' full backup for '+ @dateTime
          IF @backupType = 'D'
                SET @BackupName = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' differential backup for '+ @dateTime
          IF @backupType = 'L'
                SET @BackupName = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' log backup for '+ @dateTime
     
    -- Generate the dynamic SQL command to be executed
     
           IF @backupType = 'F' 
                      BEGIN
                   SET @sqlCommand = 'BACKUP DATABASE ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'
                      END
           IF @backupType = 'D'
                      BEGIN
                   SET @sqlCommand = 'BACKUP DATABASE ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH DIFFERENTIAL, INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'        
                      END
           IF @backupType = 'L' 
                      BEGIN
                   SET @sqlCommand = 'BACKUP LOG ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'        
                      END
     
    -- Execute the generated SQL command
           EXEC(@sqlCommand)
     
    -- Goto the next database
    SELECT @Loop = min(ID) FROM @DBs where ID > @Loop

    Schritt B: In einem Text-Editor erstellen Sie eine Batchdatei mit dem Namen Sqlbackup.bat, und kopieren Sie den Text aus einem der folgenden Beispiele in dieser Datei, je nach Szenario:

    Beispiel 1:Vollständige Sicherungen aller Datenbanken in der lokalen benannte Instanz SQLExpress mithilfe der Windows-Authentifizierung

    SQLBackup.bat

    Sqlcmd-s. \EXPRESS ? E ? Q "EXEC Sp_BackupDatabases @backupLocation = hatte: \SQLBackups\', @backupType = 'F'" 

    Example2: differenzielle Sicherungen aller Datenbanken in der lokalen benannte Instanz SQLExpress mithilfe einer SQLLogin und das zugehörige Kennwort

    SQLBackup.bat

    SQLCMD - U SQLLogin-P Kennwort-s. \SQLEXPRESS -Q "EXEC Sp_BackupDatabases @backupLocation = D:\SQLBackups, @BackupType = hatte '"

    Hinweis: der SQLLogin sollte am geringsten Sicherungs-Operator-Rolle in SQL Server.


    Beispiel 3:Sicherungen aller Datenbanken in lokalen benannte Instanz von SQL Express mithilfe der Windows-Authentifizierung

    SQLBackup.bat

    SQLCMD-s. \SQLEXPRESS -E ? Q "EXEC Sp_BackupDatabases @backupLocation = hatte: \SQLBackups\', @backupType = 'L'"

    Beispiel 4:Vollständige Sicherungen der Datenbank enthalten, in die lokale benannte Instanz von SQL Express mithilfe der Windows-Authentifizierung

    SQLBackup.bat

    SQLCMD-s. \SQLEXPRESS -E -Q "EXEC Sp_BackupDatabases @backupLocation = hatte: \SQLBackups\', @databaseName = USERDB, @backupType = 'F'"

    Auf ähnliche Weise können Sie vornehmen eine differenziellen Sicherung der USERDB einfügen würden in' für den Parameter @backupType und eine Protokollsicherung UserDB durch Einfügen 'L' für den Parameter @backupType .

    Schritt C:Zeitplan einen Auftrag mithilfe von Windows-Taskplaner die Batchdatei ausgeführt, die Sie in Schritt b erstellt haben Gehen Sie hierzu folgendermaßen vor:

    1. Auf dem Computer, auf dem SQL Server Express ausgeführt wird, klicken Sie auf Start, zeigen Sie auf Alle Programme, zeigen Sie auf Zubehör, zeigen Sie auf Systemprogrammeund klicken Sie dann auf Geplante Tasks. 
    2. Doppelklicken Sie auf geplanten Task hinzufügen. 
    3. Klicken Sie im Assistenten für geplante Tasks auf Weiter. 
    4. klicken Sie auf Durchsuchen, klicken Sie auf die Batchdatei, die Sie in Schritt B erstellt haben, und klicken Sie auf Öffnen. 
    5. Geben Sie SQLBACKUP den Namen der Aufgabe, klicken Sie auf täglich, und klicken Sie dann auf Weiter. 
    6. Geben Sie Informationen für einen Zeitplan für den Task auszuführen. (Wir empfehlen, dass Sie diese Aufgabe mindestens ein Mal täglich ausführen.) Klicken Sie dann auf Weiter.
    7. Geben Sie einen Benutzernamen ein und geben Sie ein Kennwort in das Feld Geben Sie das Kennwort in das Feld Geben Sie den Benutzernamen .

      Hinweis Dieser Benutzer sollte mindestens zugewiesen werden die BackupOperator-Funktion von SQL Server-Ebene, wenn Sie eine der in Beispiel 1, 3 oder 4 Batchdateien verwenden.
    8. Klicken Sie auf Weiter, und klicken Sie dann auf Fertig stellen. 
    9. Führen Sie den geplanten Task mindestens einmal um sicherzustellen, dass die Sicherung erfolgreich erstellt wurde.

      HinweisDer Ordner für die ausführbare Datei SQLCMD ist in der Regel in der Path-Variablen für den Server nach dem SQL Server installiert ist, aber wenn Sie diesen Ordner in der Path-Variablen nicht aufgelistet wird, Sie es unter < Installationsverzeichnis > \90\Tools\Binn finden (zum Beispiel: C:\Program Files\Microsoft SQL Server\90\Tools\Binn).

      , Folgendes beachten, wenn Sie das Verfahren verwenden, das in diesem Artikel beschrieben wird:

      • Zum Zeitpunkt, an dem der Auftrag ausgeführt, muss der Windows-Taskplanerdienst ausgeführt werden. Es wird empfohlen, dass Sie den Starttyp für diesen Dienst als automatischfestgelegt. Dadurch wird sichergestellt, dass der Dienst auch auf ein Neustart ausgeführt wird.
      • Es sollte viel Speicherplatz auf dem Laufwerk, dem die Sicherungen geschrieben werden. Es wird empfohlen, die alten Dateien in den Sicherungsordner regelmäßig, um sicherzustellen, dass nicht genügend Speicherplatz ausführen zu reinigen. Das Skript enthält die Logik, um alte Dateien zu bereinigen.

      Weitere Verweise

    Eigenschaften

    Artikel-ID: 2019698 - Geändert am: Montag, 23. Juni 2014 - Version: 2.0
    Die Informationen in diesem Artikel beziehen sich auf:
    • Microsoft SQL Server 2014 Express
    • Microsoft SQL Server 2012 Express
    • Microsoft SQL Server 2008 Express
    • Microsoft SQL Server 2008 Express with Advanced Services
    • Microsoft SQL Server 2005 Express Edition
    • Microsoft SQL Server 2005 Express Edition with Advanced Services
    Keywords: 
    kbmt KB2019698 KbMtde
    Maschinell übersetzter Artikel
    Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.
    Den englischen Originalartikel können Sie über folgenden Link abrufen: 2019698
    Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

    Ihr Feedback an uns

     

    Contact us for more help

    Contact us for more help
    Connect with Answer Desk for expert help.
    Get more support from smallbusiness.support.microsoft.com