Sauvegarde des bases SQL Express Sauvegarder les bases de données avec SQL Expr

Sauvegarde des bases SQL Express Sauvegarder les bases de données avec SQL Express Dans les différents articles concernant SQL Server 2005 Express Edition, une problématique revient régulièrement : • Comment sauvegarder les bases de données ? Introduction Dans les différents articles consacrés à SQL Server 2005 Express Edition, nous avons découvert les capacités de ce moteur prouvent aller jusqu'à sa mise en place sur des serveurs de production. La demande se présente alors concernant la sauvegarde des bases de données hébergées par notre moteur SQL Express. Nous verrons donc dans cet article les différentes méthodes pour effectuer cette sauvegarde. Présentation Il existe deux types de sauvegarde sous SQL Server : • La sauvegarde des fichiers de données • La sauvegarde des fichiers de log de transaction Il faut donc savoir à quoi correspond chacun de ces fichiers. En faisant très simple, le fichier de données stocke toutes les données de la base, le fichier de log stocke les transactions jouées depuis l a dernière vidange de celui-ci. Nous verrons quelle est la commande de Backup, puis comment effectuer une sauvegarde avec le client graphique (SSMSE) et enfin comment planifier une sauvegarde quotidienne. La commande TSQL BACKUP La commande TSQL BACKUP permet d'envoyer au moteur SQL Server la demande de sauvegarde. Vous trouvez toute la documentation nécessaire sur cette commande dans la documentation MSDN : • BACKUP TSQL Cette commande de sauvegarde est dépendante du mode de journalisation actif sur votre base. En effet, les logs de transaction enregistrent toutes les transactions jouées sur votre base de données, ceci suivant le mode de journalisation : • Complet (code 1) : Toutes les transactions sont enregistrées • Journalisé en bloc (code 2) : N'enregistre pas les insertions en bloc • Simple (code 3) : Pas d'enregistrement des transactions Vous trouverez une explication des modes de récupération sur le site MSDN : • Modes de récupération et gestion des journaux de transactions Ainsi dans le cas de la récupération (ou journalisation) en mode simple, vous n'avez pas besoin de faire une sauvegarde du journal de transaction, pour les deux autres cas, cette sauvegarde est obligatoire pour vider le fichier de journal. Si vous avez d'ailleurs un problème de croissance exagérée de ce fichier de journalisation, je vous invite à consulter l'article sur le sujet : • MS SQL Server et les problématiques du journal de transaction Pour savoir dans quelle configuration se trouvent vos bases de données : • SQL SERVER 2005 - LISTER LES MODES DE RECUPERATION DE TOUTES LES BASES DE DONNEES DU SERVEUR Maintenant que nous savons quelles sont les configurations de chaque base, nous pouvons voir comment effectuer une sauvegarde d'une des bases et de son journal sur le disque C du serveur. Nous travaillerons avec la base de données exemple de SQL Server 2005 : • SQL Server 2005 Samples and Sample Databases Sauvegarde du Journal de transaction Si notre base de données n'est pas en mode simple, nous devons obligatoirement effectuer une sauvegarde de ce fichier. Cette sauvegarde doit se faire avant celle du fichier de données. Pour effectuer une sauvegarde depuis SQL Server, il suffit donc d'utiliser la commande TSQL "BACKUP", celle-ci exige une liste minimale de paramètres : USE [master] BACKUP LOG [AdventureWorks] TO DISK = N'C:\AdventureWorks_LOG.TRN' WITH NOFORMAT, NOINIT, NAME = N'AdventureWorks-Journal des transactions Sauvegarde' GO Nous pouvons dès lors effectuer une sauvegarde complète de la base de données. Sauvegarde du fichier de données Cette sauvegarde permet de remonter la base de données comme elle était lors de la sauvegarde. Cette tâche est obligatoire pour toutes les utilisations de moteur relationnel afin d'éviter au maximum la perte de données. La commande est similaire à la précédente : USE [master] BACKUP DATABASE [AdventureWorks] TO DISK = N'C: \AdventureWorks_DATAS.BAK' WITH NOFORMAT, NOINIT, NAME = N'AdventureWorks-Complète Base de données Sauvegarde' GO Les extensions BAK et TRN ne sont pas obligatoires, ce sont juste des normes d'usage, vous pouvez utiliser toute autre extension. Maintenant que nous savons comment effectuer un backup d'une base de données en TSQL, nous voulons savoir comment effectuer un backup depuis SQL Server Management Studio Express, puis surtout comment mettre en place une sauvegarde automatique sur notre serveur. Sauvegarde avec SSMS Express Nous a llons maintenant voir comment effectuer une sauvegarde à un moment donné depuis SQL Server Management Studio Express. Cet outil étant l'outil de gestion et de requête graphique des moteurs SQL Server 2005 Express Edition. Nous travaillerons avec la configuration que nous utilisons depuis plusieurs articles comprenant : • Windows 2003 Server • SQL Server 2005 Express Edition With Advanced Services • Windows SharePoint Services V2 • Windows SharePoint Services V2 • SQL Server 2005 Management Studio Express Edition • La base de données IISLOG Depuis le panneau "Explorateur d'objets", il faut cliquer avec le bouton droit sur la base puis Tâches et Sauvegarder. On atteint alors un écran que l'on doit paramétrer, nous sélectionnons dans la liste une sauvegarde complète, le nom que l'on veut donner à cette sauvegarde, le chemin d'accès au fichier de sauvegarde (C:\IISLOG_DATAS.BAK). Nous devons ajouter une vérification de la sauvegarde (dans l'écran des options). Enfin nous cliquons sur OK afin de faire cette sauvegarde. Attention : Il faut bien sur que le compte d'exécution du moteur SQL Server ait les droits d'écriture sur dans le répertoire défini. Mise en place d'une sauvegarde automatique La mise en place d'une sauvegarde automatique implique le passage par un agent de planification. Contrairement à MSDE ou les versions payantes de SQL Server 2005, SQL Server 2005 Express Edition ne possède pas le module SQL Agent qui est l'agent de planification de SQL Server. La solution est donc d'utiliser l'agent de planification de Windows (Task Scheduler). En effet, celui-ci permet d'exécuter des taches (Applications, fichier Batchs, ...) à des heures (ou dans des cas) bien spécifiées. Il nous faut donc créer un BATCH qui va effectuer une sauvegarde spécifique. Le batch devra lancer l'outil en ligne de commande d'exécution de script de SQL Server 2005 : • Microsoft SQLCMD Il s'agit du remplaçant de l'ancien outil : • Microsoft OSQL Si nous reprenons notre exemple de sauvegarde de la base de données AdventureWorks, voici donc le fichier "SauvegardeADW.bat" qu'il faut créer (sur une seule ligne) : sqlcmd -S MONSERVEUR\SQLEXPRESS -U sa -P MotDePasse -Q "BACKUP DATABASE [AdventureWorks] TO DISK = N'C: \AdventureWorks_DATAS.BAK' WITH NOFORMAT, NOINIT, NAME = N'AdventureWorks-Complète Base de données Sauvegarde'" Vous aurez alors le résultat suivant en exécutant la commande : Il ne reste donc plus qu'à créer le fichier BATCH avec cette commande et de planifier ce BATCH avec le planificateur de tâches de Windows. Vous le trouverez en allant dans : • Panneau de Configuration > Tâches planifiées A ce stade, nous savons comment exécuter une sauvegarde spécifique sur une base de données voulue. En revanche, il est beaucoup plus intéressant de faire la sauvegarde de l'ensemble des bases de données hébergées sur notre machine SQL Server 2005 Express Edition. Mise en place d'une sauvegarde de toutes les bases de données Pour effectuer ce travail, nous allons utiliser un script mis à disposition de tous : • SQL SERVER - PROCÉDURE STOCKÉE FAISANT UN BACKUP DE TOUTES LES BASES ET JOURNAUX DE TRANSACTION AUTOMATIQUEMENT Ce script permet de créer une Procédure Stockée afin d'effectuer la sauvegarde de l'ensemble des bases de données et journaux de transaction, puis de compacter ces fichiers avec l'outil de Microsoft MakeCab. Ainsi, il faut déjà commencer par modifier un paramètre de notre serveur SQL Express afin d'autoriser l'exécution des commandes externes depuis le moteur SQL Server. Ceci se fait en allant dans : • Démarrer > Programmes > Microsoft SQL Server 2005 > Outils de configuration > Configuration de la surface d'exposition SQL Server Si vous souhaitez plus d'informations, vous trouverez l'explication sur la configuration : • Les Outils de Configuration de SQL Server 2005 Express Edition Il faut alors cliquer sur "Configuration de la surface d'exposition pour les fonctionnalités" afin d'activer la possibilité de lancer des commandes XP_CMDSHELL. On valide par OK. On peut donc maintenant exécuter le script de création de notre procédure stockée : • master.dbo.SP_System_SauvegardesTotales Comme expliqué sur le site, nous avons plusieurs mode d'exécution de ce script, nous prendrons celui qui effectue le backup des logs de transaction et le backup des fichiers de données. Nous sauvegarderons tous ces fichiers dans le répertoire créé à cet effet "C:\BackupExpress\". Cela se traduit donc par la commande suivante : • EXEC master.dbo.SP_System_SauvegardesTotales 1, 1, 'C:\BackupExpress\' Une fois cette commande exécutée, nous trouvons un ensemble de fichiers CAB au format : • NomDB_Date.CAB : pour les fichiers de données • NomDBLog_Date.CAB : Pour les fichiers de log Nous pouvons maintenant créer notre fichier BATCH qui va simplement effectuer l'exécution de cette procédure stockée avec les paramètres précédents. sqlcmd -S MONSERVEUR\SQLEXPRESS -U sa -P MotDePasse -Q "EXEC master.dbo.SP_System_SauvegardesTotales 1, 1, 'C:\BackupExpress\'" Nous pouvons donc maintenant planifier cette exécution automatique dans le planificateur des taches de Windows. Conclusion Nous avons vu précédemment que la plateforme SQL Express permet de monter des uploads/Finance/ sql.pdf

  • 46
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mar 09, 2022
  • Catégorie Business / Finance
  • Langue French
  • Taille du fichier 0.1265MB