Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

Comment planifier et automatiser les sauvegardes de bases de données avec SQL Express

Extended support for SQL Server 2005 ends on April 12, 2016

If you are still running SQL Server 2005 after April 12, 2016, you will no longer receive security updates and technical support. We recommend upgrading to SQL Server 2014 and Azure SQL Database to achieve breakthrough performance, maintain security and compliance, and optimize your data platform infrastructure. Learn more about the options for upgrading from SQL Server 2005 to a supported version here.

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 2019698
Résumé

Éditions SQL Server Express n'offrent pas un moyen de planifier des travaux ou des plans de maintenance, car le composant de SQL Server Agent n'est pas inclus dans ces éditions. Par conséquent, vous devez adopter une approche différente pour sauvegarder vos bases de données lorsque vous utilisez ces éditions.   

Actuellement les utilisateurs de SQL Server Express peuvent sauvegarder leurs bases de données à l'aide d'une des méthodes suivantes :

Utilisez SQL Server Management Studio Express. Il est installé avec SQL Server Express Advanced Services ou SQL Server Express Shared Computer Toolkit. Pour plus d'informations, consultez le site Web Microsoft Developer Network (MSDN) suivant :

Créer une sauvegarde complète de base de données (SQL Server)

  • Utiliser un script Transact-SQL qui utilise la famille de sauvegarde de base de données des commandes. Pour plus d'informations, accédez au site Web MSDN suivant :

    SAUVEGARDE (Transact-SQL)

    Cet article décrit comment utiliser un script Transact-SQL avec le Planificateur de tâches Windows pour automatiser les sauvegardes de bases de données SQL Server Express sur une base planifiée.

  • Plus d'informations

    Vous devez suivre ces trois étapes pour sauvegarder vos bases de données SQL Server à l'aide du Planificateur de tâches de Windows :

    Étape A: utiliser SQL Server Management Studio Express ou Sqlcmd pour créer la procédure stockée suivante dans votre base de données master :

    Copyright © Microsoft Corporation.  Tous droits réservés.

    Ce code publié selon les termes de la

    / / Licence publique de Microsoft (MS-PL,http://opensource.org/licenses/ms-pl.html.)

    Utilisation [master]
    GO 
    / *** Objet :StoredProcedure [dbo].[sp_BackupDatabases] *** /
    option SET ANSI_NULLS ON
    Aller
    SET QUOTED_IDENTIFIER ON
    Aller
    --===
    --auteur : Microsoft
    --date de création : 06-02-2010
    --Description : bases de données de sauvegarde pour SQLExpress
    --paramètre1 : databaseName
    --paramètre2 : type_sauvegarde F = complet, D = différentielle, L = journal
    --paramètre3 : emplacement du fichier de sauvegarde
    --===
    CREATE PROCEDURE [dbo]. [sp_BackupDatabases]
    @databaseName sysname = null,
    @backupType char (1),
    @backupLocation nvarchar(200)
    en tant que
    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
                     Supprimer @DBs où dans DBNAME ('tempdb », « Northwind », 'pubs', 'AdventureWorks')
    fin
    ELSE IF @backupType = avait '
    commencer
    @DBs supprimer où dans DBNAME ('tempdb', 'Comptoirs', 'pubs', 'master', 'AdventureWorks')
    fin
    ELSE IF @backupType = 'L'
    commencer
    @DBs supprimer où dans DBNAME ('tempdb', 'Comptoirs', 'pubs', 'master', 'AdventureWorks')
    fin
    ELSE
    commencer
    retourner
    fin
    --déclarer des variables
    varchar (100) DECLARE @BackupName
    varchar (100) DECLARE @BackupFile
    DECLARE @DBNAME varchar(300)
    DECLARE @sqlCommand NVARCHAR(1000)
    DECLARE @dateTime nvarchar (20)
    @ boucle déclarer int
    --effectue une boucle sur les bases de données une par une
    sélectionnez @ boucle = min(ID) de @DBs
    lors de la @Loop est pas NULL
    commencer
    --les noms de base de données doit être en format [dbname] dans la mesure où certaines ont - ou _ dans leur nom de
         Ensemble @DBNAME = '[' +(SELECT DBNAME FROM @DBs WHERE ID = @Loop) +']'
    --définir le format de n yyyyhhmmss date et l'heure en cours
    @dateTime jeu de = remplacer (convertir (VARCHAR, GETDATE(),101),'/','') + '_' +remplacer (convertir (VARCHAR, GETDATE(),108),':','')
    --créer le fichier de sauvegarde au format path\filename.extension pour les sauvegardes complète et de journal, diff
    IF @backupType = 'F'
    SET @BackupFile = @backupLocation + remplacer (remplacer (@DBNAME, ' [', ''),'] ','') @dateTime+ + '_FULL_' '.BAK'
    ELSE IF @backupType = avait '
    SET @BackupFile = @backupLocation + remplacer (remplacer (@DBNAME, ' [', ''),'] ','') + '_DIFF_' + @dateTime+ '.BAK'
    ELSE IF @backupType = 'L'
    SET @BackupFile = @backupLocation + remplacer (remplacer (@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
    fin

    Étape B: dans un éditeur de texte, créez un fichier de commandes nommé Sqlbackup.bat, puis copiez le texte à partir d'un des exemples suivants dans ce fichier, en fonction de votre scénario :

    Example1 :Sauvegardes complètes detoutes les bases de données dans l'instance locale nommée de SQLEXPRESS à l'aide de l'authentification Windows

    SQLBackup.bat

    sqlcmd -S. \EXPRESS – E -Q "EXEC sp_BackupDatabases @backupLocation = a: \SQLBackups\', @backupType = 'F'" 

    Example2 :les sauvegardes différentielles detoutes les bases de données dans l'instance locale nommée de SQLEXPRESS à l'aide d'un SQLLogin et son mot de passe

    SQLBackup.bat

    SQLCMD - U -P SQLLogin mot de passe -S. \SQLEXPRESS -Q "EXEC sp_BackupDatabases@backupLocation = 'D:\SQLBackups', @BackupType = avait '"

    Remarque: shouldhave du SQLLogin au moins le rôle d'opérateur de sauvegarde dans SQL Server.


    Exemple 3:Sauvegardes des journaux detoutes les bases de données dans une instance nommée locale de SQLEXPRESS à l'aide de l'authentification Windows

    SQLBackup.bat

    Sqlcmd -S. \SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation = a: \SQLBackups\', @backupType = 'L' »

    L'exemple 4:Sauvegardes complètes de la base de données USERDB dans l'instance de SQLEXPRESS nommé locale à l'aide de l'authentification Windows

    SQLBackup.bat

    Sqlcmd -S. \SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation = a: \SQLBackups\', @databaseName = 'USERDB', @backupType = 'F' »

    De même, vous pouvez effectuer une sauvegarde différentielle sauvegarde de USERDB en collant dans serait ' pour le paramètre @backupType et une sauvegarde du journal de USERDB en collant « L » pour le paramètre@backupType .

    Étape c :Planifier une tâche à l'aide du Planificateur de tâches Windows pour exécuter le fichier batch que vous avez créé à l'étape B. Pour ce faire, procédez comme suit :

    1. Sur l'ordinateur qui exécute SQL Server Express, cliquez surDémarrer, pointez surTous les programmes, surAccessoires, surOutils système, puis cliquez surtâches planifiées. 
    2. Double-cliquez surAjouter une tâche planifiée. 
    3. Dans l'Assistant tâche planifiée, cliquez sursuivant. 
    4. Tapez SQLBACKUP pour le nom de la tâche et cliquez surtous les jours, puis cliquez sur suivant. 
    5. Spécifiez les informations pour une planification d'exécution de la tâche. (Nous vous conseillons d'exécuter cette tâche au moins une fois par jour.) Ensuite, cliquez sursuivant.
    6. Dans le champEntrez le nom d'utilisateur , tapez un nom d'utilisateur, puis tapez un mot de passe dans le champEntrez le mot de passe .

      Remarque : Cet utilisateur doit au moins être attribué le rôle de BackupOperator au niveau de SQL Server si vous utilisez l'un des fichiers de commandes dans l'exemple 1, 3 ou 4.
    7. Cliquez sursuivant, puis cliquez sur Terminer. 
    8. Exécuter la tâche planifiée au moins une fois afin de vous assurer que la sauvegarde est créée avec succès.

      Remarque :Le dossier de l'exécutable SQLCMD est généralement dans les variables de chemin d'accès du serveur une fois que SQL Server est installé, mais si la variable de chemin d'accès ne comporte pas ce dossier, vous le trouverez sous< emplacement d'installation > \90\Tools\Binn (par exemple : C:\Program Files\Microsoft SQL Server\90\Tools\Binn).

      Être conscient des éléments suivants lorsque vous utilisez la procédure décrite dans cet article :

      • Le service Planificateur de tâches Windows doit être en cours d'exécution au moment où la tâche est planifiée pour s'exécuter. Nous vous conseillons de définir le type de démarrage pour ce service sous la forme automatique. Cela permet de s'assurer que le service va s'exécuter même sur un redémarrage.
      • Il faut beaucoup d'espace sur le lecteur sur lequel les sauvegardes sont écrits. Nous vous recommandons de nettoyer les anciens fichiers dans le dossier de sauvegarde régulièrement pour vous assurer que vous n'exécutez pas suffisamment d'espace disque. Le script ne contient-elle pas la logique de nettoyage des anciens fichiers.

      Références supplémentaires

    Propriétés

    ID d'article : 2019698 - Dernière mise à jour : 06/23/2014 15:46:00 - Révision : 2.0

    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

    • kbmt KB2019698 KbMtfr
    Commentaires