Wie planen und automatisieren Sicherungskopien der Datenbanken von SQL Server in SQL Server Express

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 2019698
Alles erweitern | Alles schließen

Zusammenfassung

SQL Server Express-Editionen bieten keine Möglichkeit, Aufträge oder Wartungspläne planen, da die SQL Server-Agent-Komponente nicht in diesen Editionen enthalten ist. Daher müssen Sie einen anderen Ansatz Ihre Datenbanken sichern, wenn Sie diese Editionen verwenden.   

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 in der folgenden Microsoft Developer Network (MSDN)-Website:

Erstellen einer vollständigen Datenbanksicherung (SQL Server)

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

    Sicherung (Transact-SQL)

    Dieser Artikel beschreibt, wie Sie ein Transact-SQL-Skript zusammen mit Windows-Taskplaner, um Backups von SQL Server Express-Datenbanken auf Basis eines Zeitplans zu automatisieren.

  • Weitere Informationen

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

    Schritt A: Verwendung 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 veröffentlicht unter den Bedingungen der

    / / 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ändiges Protokoll, D = differenziell, L = Protokoll
    --Parameter3: backup File Location
    --=============================================
    CREATE PROCEDURE [Dbo]. [Sp_BackupDatabases]
    @ DatabaseName Sysname = Null,
    @ Sicherungsart CHAR(1),
    @ Sicherungspfad 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 dem DBNAME IN ('Tempdb', 'Northwind' "Pubs", "AdventureWorks")
    END
    ELSE IF @ Sicherungsart = hatte '
    beginnen
    löschen @ DBs, in dem DBNAME IN ('Tempdb', 'Northwind', 'Pubs', 'master', 'AdventureWorks')
    END
    ELSE IF @ Sicherungsart = 'L'
    beginnen
    löschen @ DBs, in denen DBNAME IN ('Tempdb', 'Northwind', 'Pubs' 'master', 'AdventureWorks')
    END
    ELSE
    beginnen
    zurückgeben
    END
    --Deklarieren von Variablen
    DECLARE @ Sicherungsname varchar(100)
    DECLARE @ BackupFile varchar(100)
    DECLARE @ DBNAME varchar(300)
    DECLARE @ SqlCommand vom Datentyp NVARCHAR(1000)
    DECLARE @ DateTime Size
    DECLARE @ Schleife Int
    --durchlaufen Sie die Datenbanken einzeln
    wählen Sie @ Loop = min(ID) FROM @ DBs
    WHILE @ Schleife ist nicht NULL
    beginnen
    --Datenbanknamen müssen im Format [Dbname], da einige haben- oder _ in ihrem Namen
          SET @ DBNAME = ' ['+(SELECT DBNAME FROM @DBs WHERE ID = @Loop) ']'
    --Legen Sie das aktuelle Datum und Uhrzeit n Yyyyhhmmss Format
    SET @ DateTime = ersetzen (zu konvertieren (VARCHAR, GETDATE(),101),'/','') + '_' + ersetzen (konvertieren (VARCHAR, GETDATE(),108),':','')
    --Sicherungsdateiname im path\filename.extension Format für vollständige, Diff und Protokollsicherungen erstellt
    Wenn @ Sicherungsart 'F' =
    SET @ BackupFile = @ Sicherungspfad + ersetzen (ersetzen (@ DBNAME, ' [', ''),'] ','') + '_FULL_' + @ DateTime + '.BAK'
    ELSE IF @ Sicherungsart = hatte '
    SET @ BackupFile = @ Sicherungspfad + ersetzen (zu ersetzen (@ DBNAME, ' [', ''),'] ','') + '_DIFF_' + @ DateTime + '.BAK'
    ELSE IF @ Sicherungsart = 'L'
    SET @ BackupFile = @ Sicherungspfad + REPLACE (ersetzen (@ DBNAME, ' [', ''),'] ','') + '_LOG_' + @ DateTime + '.TRN'
    --Geben Sie der Sicherung einen Namen für das Speichern von in den Medien
    Wenn @ Sicherungsart 'F' =
    SET @ Sicherungsname = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' vollständige Sicherung für ' + @ DateTime
    Wenn @ Sicherungsart = hatte '
    SET @ Sicherungsname = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' differenzielle Sicherung für ' + @ DateTime
    Wenn @ Sicherungsart "L" =
    SET @ Sicherungsname = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' Protokollsicherung für ' + @ DateTime
    ? Generieren Sie den dynamischen SQL-Befehl ausgeführt werden
    Wenn @ Sicherungsart 'F' =
    beginnen
    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 > @ Schleife

    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 benannten Instanz von SQLEXPRESS mithilfe der Windows-Authentifizierung

    / / Sqlbackup.bat

    Sqlcmd ? S. \EXPRESS ? e -Q "EXEC Sp_BackupDatabases @ Sicherungspfad = hatte: \SQLBackups\', @ Sicherungsart = 'F'" 

    Beispiel2: differenzielle Sicherungen aller Datenbanken in der lokalen benannten Instanz von SQLEXPRESS mithilfe einer SQLLogin und das zugehörige Kennwort

    / / Sqlbackup.bat

    Sqlcmd - U SQLLogin-P Kennwort-s. \SQLEXPRESS -Q "EXEC Sp_BackupDatabases @ Sicherungspfad = 'D:\SQLBackups', @ Sicherungsart = hatte '"

    Hinweis: die SQLLogin-Shouldhave am geringsten Sicherungs-Operator-Rolle in SQL Server.


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

    / / Sqlbackup.bat

    Sqlcmd ? S. \SQLEXPRESS -E -Q "EXEC Sp_BackupDatabases @ backupLocation='D:\SQLBackups\',@backupType='L" "

    Beispiel 4:Vollständige Sicherungen der Datenbank enthalten, in der lokalen benannte Instanz SQLExpress mithilfe der Windows-Authentifizierung

    / / Sqlbackup.bat

    Sqlcmd ? S. \SQLEXPRESS -E -Q "EXEC Sp_BackupDatabases @ Sicherungspfad = hatte: \SQLBackups\', @ DatabaseName = 'USERDB', @ Sicherungsart ="F""

    Ebenso können Sie eine differenzielle Sicherung enthalten, indem einfügen würden in' für den Parameter @ Sicherungsart und einer Protokollsicherung der USERDB durch Einfügen in "L" für den Parameter @ Sicherungsart .

    Schritt C:Zeitplan einen Auftrag mithilfe der Windows-Taskplaner beim Ausführen der Batchdatei, die Sie in Schritt b erstellt 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, Systemprogrammeund klicken Sie dann auf Geplante Tasks. 
    2. Doppelklicken Sie auf Hinzufügen geplanten Task. 
    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 dann auf Öffnen. 
    5. Geben Sie den Namen des Vorgangs SQLBACKUP , klicken Sie auf täglich, und klicken Sie dann auf Weiter. 
    6. Geben Sie Informationen für einen Zeitplan zum Ausführen der Aufgabe. (Wir empfehlen, dass Sie diese Aufgabe mindestens einmal täglich ausführen.) Klicken Sie dann auf Weiter.
    7. Geben Sie im Feld Geben Sie den Benutzernamen einen Benutzernamen ein, und geben Sie ein Kennwort in das Feld eingeben das Kennwort .

      Hinweis Dieser Benutzer sollte mindestens zugewiesen werden die Rolle des BackupOperator auf SQL Server Ebene bei Verwendung einer Batch-Dateien in Beispiel 1, 3 oder 4.
    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 SQLCMD ausführbare Datei ist im Allgemeinen in der Path-Variablen für den Server nach 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).

      Beachten der folgenden, wenn Sie das Verfahren verwenden, die in diesem Artikel beschrieben ist:

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

      Weitere Verweise

    Eigenschaften

    Artikel-ID: 2019698 - Geändert am: Donnerstag, 28. Juni 2012 - Version: 1.0
    Keywords: 
    kbmt KB2019698 KbMtde
    Maschinell übersetzter Artikel
    Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
    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