Bienvenue > Blog sur la sauvegarde et la restauration > Comment sauvegarder une base de données SQL ? Aperçu technique de Bacula Systems.
1 Star2 Stars3 Stars4 Stars5 Stars
(28 votes, average: 5,00 out of 5)
Loading...

Comment sauvegarder une base de données SQL ? Aperçu technique de Bacula Systems.

  • juillet 7, 2021, Rob Morrison

SQL est devenu la norme industrielle pour la manipulation et l'interrogation des données dans une base de données relationnelle. En conséquence, l'un des aspects critiques de tout plan de sauvegarde, y compris de nombreuses stratégies efficaces de restauration après sinistre, est la sauvegarde sûre, efficace et rapide des bases de données SQL - et encore plus important - la restauration. Une mise en œuvre et des politiques correctes sont nécessaires pour que cela fonctionne de manière fiable, et cette partie est l'objet principal de cet article. Cette page aborde les principaux types de sauvegarde et certaines bonnes pratiques générales de sauvegarde. Elle en fait ensuite la démonstration en pratique, en expliquant également comment configurer la sauvegarde de votre base de données SQL avec Bacula.

Types de sauvegarde des bases de données SQL

  • Sauvegarde complète

La sauvegarde "complète" de SQL Server est probablement le niveau de sauvegarde le plus simple - la seule règle est de sauvegarder littéralement tout, des données normales aux tables système, aux objets, etc. Ces sauvegardes restaureront l'ensemble de votre système dans l'état où il se trouvait au moment de la dernière sauvegarde. La troncature du journal des transactions n'est pas effectuée lors des sauvegardes complètes, mais il est conseillé d'envisager d'utiliser la sauvegarde des journaux des transactions en même temps que les sauvegardes complètes, afin de minimiser et d'aider à identifier la quantité de données qui pourraient être perdues dans un scénario de catastrophe.

  • Sauvegarde du journal des transactions

C'est un peu différent, puisque le journal des transactions vise à sauvegarder tout ce qui s'est passé, en termes de base de données, depuis la dernière sauvegarde du journal, complétée par une troncature. Il est utilisé pour capturer toutes les interactions au sein de la base de données, y compris DML (Data Manipulation Language) et DDL (Data Definition Language). La sauvegarde du journal des transactions vous permet de restaurer votre base de données à presque n'importe quel moment, y compris juste avant un désastre qui a causé la perte ou la corruption de données.

  • Sauvegarde de fichiers / groupes de fichiers

Cette sauvegarde fonctionne le mieux avec les bases de données de très grande taille. La différence entre cette sauvegarde et la sauvegarde complète est que la première stocke toutes les données dans des fichiers / groupes de fichiers (s'il y en a plusieurs). Ce type particulier exige également que le journal des transactions soit sauvegardé et prêt à restaurer avec succès toutes les données requises à partir de cette sauvegarde particulière.

  • Sauvegarde différentielle

En tant que niveau de sauvegarde complémentaire, le but de la sauvegarde différentielle de SQL Server est de maintenir la séquence d'opérations complète de votre base de données sans stocker les mêmes données plusieurs fois. Un point de départ typique d'une sauvegarde différentielle est la dernière sauvegarde complète effectuée avec la base de données. Bien qu'elle ne soit utile que lorsqu'elle est utilisée avec la sauvegarde complète, elle permet potentiellement une grande réduction de la quantité de données perdues si une sorte de violation ou de perte de données se produit soudainement.

  • Sauvegarde en copie seule

La sauvegarde par copie seulement peut être considérée comme une réserve dans une réserve, car la plupart du temps elle est effectuée sur une base ad hoc, sans perturber le processus de sauvegarde existant de la base de données. C'est exactement la même chose qu'une sauvegarde complète, avec une différence significative - la sauvegarde par copie du journal des transactions ignore complètement ce type de sauvegarde. C'est pourquoi les sauvegardes différentielles et du journal des transactions ne sont pas utilisées avec ce type de sauvegarde particulier.

Différentes méthodes pour créer une sauvegarde du serveur SQL

Il y a plusieurs façons d'effectuer une sauvegarde et une restauration SQL en utilisant un certain nombre d'outils, depuis le logiciel de gestion générale intégré comme SSMS (SQL Server Management Studio), ou certaines parties spécifiques de celui-ci, comme SQL Server Agent, ou même l'outil de sauvegarde SQL le plus basique - la ligne de commande.

Tout d'abord, SSMS est un logiciel relativement puissant qui peut effectuer un grand nombre d'opérations liées au serveur SQL, comme l'administration, la configuration et la gestion de différents composants du serveur SQL. Parmi la grande variété de capacités de SSMS, il y a aussi la possibilité de sauvegarder la base de données du serveur SQL.

Nous pouvons discerner trois principaux types de sauvegarde qui peuvent être créés à l'aide de SQL Server Management Studio - sauvegarde et restauration du serveur SQL à l'emplacement par défaut, sauvegarde de la base de données SQL à l'emplacement personnalisé et sauvegardes vers un conteneur de service de stockage Azure Blob déjà existant.

Le premier type de sauvegarde est très probablement le plus facile à réaliser :

  1. Vous commencerez par vous connecter à l'instance correcte du serveur SQL en utilisant SSMS.
  2. L'étape suivante consiste à développer l'arborescence du serveur dans la fenêtre "Explorateur d'objets".
  3. Dans le dossier "Databases", vous trouverez votre base de données dont vous voulez créer une sauvegarde.
  4. En cliquant avec le bouton droit de la souris sur ladite base de données, vous obtenez un certain nombre d'options, vous devez survoler l'option "Tasks" et choisir l'option "Back Up..." dans la deuxième partie du menu.
  5. Puisque la sauvegarde est effectuée à l'emplacement par défaut, il n'est pas nécessaire de modifier quoi que ce soit dans la fenêtre "Back Up Database", vous pouvez donc simplement lancer le processus de sauvegarde avec le bouton "OK".
  6. Une fois le processus de sauvegarde terminé, cliquer sur "OK" dans la fenêtre d'état vous permet de terminer l'ensemble du processus de sauvegarde.

Gardez à l'esprit qu'il s'agira d'une sauvegarde complète, et qu'elle peut prendre un temps considérable, en fonction de la taille totale du serveur.

L'exécution d'une sauvegarde de base de données SQL avec un chemin d'accès personnalisé est légèrement différente du processus ci-dessus, la seule différence commence après que les 4 premières étapes aient été effectuées. Le processus continue donc avec l'étape 5 :

  1. Dans la fenêtre "Back Up Database", vous devrez choisir "disk" dans le menu déroulant à la ligne "Back up to :".
  2. Vous devrez également supprimer tous les chemins de sauvegarde existants en utilisant le bouton "Supprimer" jusqu'à ce qu'il ne reste plus rien, puis vous pourrez utiliser le bouton "Ajouter..." pour accéder à la fenêtre "Sélectionner la destination de la sauvegarde".
  3. L'étape suivante consiste à spécifier le chemin d'accès et le nom du fichier de l'emplacement de sauvegarde cible (l'utilisation de .bak comme extension du fichier cible est également recommandée pour simplifier la classification).
  4. En cliquant sur le bouton "OK" dans cette fenêtre et de nouveau dans la fenêtre "Back Up Database", le processus de sauvegarde démarre, et en cliquant sur "OK" une fois de plus après cela, vous pouvez fermer la boîte d'état de sauvegarde de SSMS.

En parlant d'emplacements de stockage personnalisés, il est également possible de créer une base de données SQL de sauvegarde et de l'enregistrer sur le conteneur Azure Blob. Le processus est le même pour les quatre premières étapes, et la principale différence se situe, encore une fois, dans la fenêtre "Back Up Database" :

  1. À la ligne "Back up to :", sélectionnez "URL" au lieu de "disk", et cliquez sur le bouton "Add...".
  2. Cliquez sur "Nouveau conteneur" si vous n'avez pas encore enregistré un conteneur de stockage Azure, ou choisissez celui qui existe déjà si vous l'avez déjà dans la liste.
  3. La connexion à votre compte Microsoft est obligatoire et peut être effectuée dans la fenêtre de dialogue "Connexion à un compte Microsoft".
  4. Dans cette même boîte de dialogue, vous aurez la possibilité de sélectionner le compte de stockage, de sélectionner le conteneur blob qui servira de stockage et de sélectionner la date d'expiration de la politique d'accès partagé que vous créez. Le processus de création peut être effectué via le bouton "Create Credential".
  5. Cliquez sur "OK" devrait fermer la fenêtre "Connexion à un compte Microsoft" et vous ramener à la boîte de dialogue "Sélectionner une destination de sauvegarde".
  6. Modifiez le nom du fichier de sauvegarde si vous le souhaitez, et cliquez à nouveau sur le bouton "OK" pour fermer cette fenêtre. La sauvegarde elle-même peut être lancée en cliquant une fois de plus sur le bouton "OK" - au bas de la fenêtre "Back Up Database".

Alors que SSMS permet plutôt d'effectuer des sauvegardes manuellement, des applications comme SQL Server Agent permettent plutôt de créer des tâches et de les planifier spécifiquement, ce qui est naturellement un peu plus complexe que de créer chaque sauvegarde par soi-même.

L'agent du serveur SQL a également deux façons différentes de créer/planifier des sauvegardes - en utilisant différents travaux, et en utilisant des plans de maintenance du serveur.

Pour utiliser les jobs comme une partie du processus de sauvegarde et de restauration du serveur SQL, il y a un modèle spécifique que vous devez suivre :

  1. Naviguez vers le dossier "Jobs" et cliquez dessus avec le bouton droit de la souris. Dans le menu suivant, choisissez l'option "New Job...".
  2. Dans la boîte de dialogue suivante, vous aurez la possibilité de spécifier le nom de votre travail.
  3. La majorité de la personnalisation des tâches peut être effectuée via des instructions SQL. En voici une qui crée une nouvelle étape de sauvegarde (sous l'onglet "Steps") :

USE CurrencyExchange

GO

BACKUP DATABASE [CurrencyExchange]

TO  DISK = N'G:\DatabaseBackups\CE.bak'

WITH CHECKSUM;

  1. SQL statements can also specify the backup type for the job:

BACKUP DATABASE [CurrencyExchange]

   TO  DISK = N'G:\DatabaseBackups\CE.bak'

   WITH DIFFERENTIAL;

   WITH CHECKSUM; 

GO

  1. ...Les sauvegardes du journal des transactions peuvent également être effectuées avec la commande suivante :

BACKUP LOG [CurrencyExchange]

   TO  DISK = N'F:\TLogBackups\CE.log';

GO

Il y a plusieurs choses à mentionner ici. Tout d'abord, le type de sauvegarde spécifié ci-dessus est différentiel, et une condition absolue pour ce niveau de sauvegarde est que la sauvegarde "complète" existe au préalable.

Le deuxième point concerne les différents types de sauvegarde en général - même s'il ne s'agit que de Full, Differential et Transaction Log. En espaçant ces sauvegardes, vous serez en mesure de garder votre base de données en sécurité et prête pour la restauration à tout moment avec peu ou pas de perte de données (si vous faites, par exemple, une sauvegarde complète toutes les 24 heures, une sauvegarde différentielle toutes les 6 heures, et le journal des transactions deux fois par heure).

  1. Après avoir déterminé les bons paramètres de planification, vous pouvez terminer cette étape en cliquant sur "OK" pour ajouter une étape et sur "OK" à nouveau pour créer le travail en premier lieu.
  2. Dès que vous avez terminé de créer la tâche, vous pouvez commencer à la planifier. Dans l'onglet "Planification", cliquez sur l'option "Nouveau" dans la boîte de dialogue "Travail".
  3. L'onglet "Planification du job" vous permet de spécifier la fréquence et la date de début de votre job.
  4. Sélectionnez "OK" pour terminer la configuration de la planification et utilisez l'option "Start Job at Step..." pour lancer votre nouveau travail.

Une autre façon de travailler avec l'agent SQL Server est liée aux capacités du plan de maintenance du serveur. Cela peut être fait de deux manières différentes : créer la sauvegarde planifiée manuellement ou utiliser l'assistant de plan de maintenance.

Bien que l'utilisation de l'assistant de plan de maintenance soit un peu plus facile, nous commencerons par la création manuelle du plan de sauvegarde planifiée :

  1. Le dossier "Plan de maintenance" se trouve sous le nœud "Gestion", un clic droit sur celui-ci vous permet de choisir l'option "Nouveau plan de maintenance..." pour démarrer le processus.
  2. Sélectionnez "Tâche de sauvegarde de la base de données", et cliquez sur le plan nouvellement créé pour le configurer.
  3. Les options d'ordonnancement peuvent être modifiées à l'aide de la catégorie "Ordonnancement du sous-plan".
  4. Après avoir terminé le processus de configuration, vous pouvez terminer le processus en cliquant sur "Enregistrer", ce qui créera la tâche de sauvegarde que vous voulez.

L'assistant de plan de maintenance est plus simple que cela, mais il est également moins personnalisable :

  1. Juste sous l'option "Nouveau plan de maintenance...", vous trouverez l'option "Assistant plan de maintenance" pour démarrer le processus.
  2. L'onglet "Propriétés du plan" vous permet de modifier le nom de la tâche, l'horaire de cette tâche, et quelques autres choses.
  3. L'étape suivante comprend un certain nombre d'options que vous pouvez cocher ou décocher si vous le souhaitez, notamment le type de sauvegarde (complète, différentielle, journal des transactions), la vérification de l'intégrité de la base de données, le nettoyage de l'historique, etc.
  4. La dernière étape configurable concerne la configuration des tâches, comme la vérification de l'intégrité de la sauvegarde, les bases de données cibles, les sous-répertoires pour chaque base de données différente, etc.
  5. Avant de lancer le processus de création, vous serez en mesure de visualiser l'ensemble de la tâche dans une seule fenêtre. Après avoir tout confirmé, cliquez sur "Terminer", et le processus de création commencera.

Les plans de maintenance peuvent sembler très pratiques, mais ils sont également assez limités. Ils conviennent aux utilisateurs moins expérimentés, mais la complexité toujours croissante du serveur entraînerait probablement une masse énorme de tâches de sauvegarde différentes qui seraient difficiles à gérer.

Il existe également une autre alternative lorsqu'il s'agit de créer une sauvegarde du serveur SQL dans le cadre du processus de sauvegarde et de restauration SQL - en utilisant uniquement la ligne de commande. La séquence de commandes appropriée vous permet d'extraire une base de données depuis un administrateur Windows :

SqlCmd -E -S MyServerMyInstance –Q “BACKUP DATABASE [MyDB] TO DISK=’D:BackupsMyDB.bak'”

Vous êtes libre de changer l'emplacement de la sauvegarde (après le "TO DISK='), et la base de données cible est nommée "MyDB" dans ce cas.

Conseils utiles de sauvegarde de SQL Server

  • Programmes de sauvegarde SQL

Ne pensez pas que vous en avez fini avec les sauvegardes après avoir effectué une fois une sauvegarde réussie. Par conséquent, la possibilité de reproduire à nouveau toutes ces tâches sans avoir à utiliser des commandes manuelles pour chaque sauvegarde est très importante. C'est là que la planification entre en jeu. Elle est utilisée à la fois pour réduire votre charge de travail en ne vous obligeant pas à effectuer chaque sauvegarde par vous-même - et pour garantir la sécurité de vos données en cas de scénario catastrophe.

Lorsque vous configurez vos sauvegardes planifiées de SQL Server, vous devez choisir le délai souhaité entre les sauvegardes. Gardez à l'esprit que vous devrez choisir entre effectuer des sauvegardes fréquentes et payer le coût accru d'un espace de stockage supplémentaire mais perdre moins de données en cas de catastrophe, ou effectuer des sauvegardes moins fréquentes, payer moins pour le stockage mais perdre plus de données en cas de catastrophe.

N'oubliez pas non plus la façon dont votre entreprise travaille avec les données. Par exemple, une société informatique voudra probablement sauvegarder ses données aussi souvent que possible, mais ce n'est peut-être pas une exigence pour d'autres entreprises qui n'ont pas d'énormes quantités de données changeant en permanence.

  • Test de restauration des sauvegardes SQL

Les sauvegardes SQL doivent également être vérifiées de temps en temps, car une sauvegarde est inutile si vous ne pouvez pas récupérer vos données à partir de celle-ci. Vos sauvegardes doivent répondre à un grand nombre d'exigences professionnelles différentes, et plus vous vérifiez les données souvent, moins il y a de chances que certaines d'entre elles soient corrompues au moment où vous en avez le plus besoin.

De nombreuses variables sont incluses dans les tests de sauvegarde, comme les fenêtres de perte de données, le seuil de perte de données, l'environnement, le délai de restauration, etc.

  • Emplacement géographique

La raison pour laquelle vous devez conserver au moins une copie de sauvegarde ailleurs que sur votre site de travail principal est qu'un événement susceptible d'endommager vos bases de données et serveurs principaux pourrait également endommager vos disques de sauvegarde et vos sauvegardes en général. C'est pourquoi il est fortement conseillé d'utiliser une installation distante pour stocker au moins une de vos sauvegardes, que ce soit via le cloud ou par tout autre moyen, comme une bande emportée pour un stockage hors site.

Il est important de mentionner que sans commandes spécifiques, les sauvegardes de la base de données SQL seront enregistrées dans le stockage par défaut, ce qui pourrait être exactement ce que vous ne voulez pas faire. Il y a aussi le fait que le changement d'emplacement de sauvegarde ne déplace pas en soi les sauvegardes précédentes - le système ne fait que sauvegarder les nouvelles sauvegardes à cet endroit particulier.

Bacula est particulièrement doué pour la sauvegarde des bases de données - Son architecture signifie que n'importe quel moteur de base de données SQL peut être utilisé, et que les bases de données SQL peuvent être sauvegardées avec fiabilité et rapidité. Par conséquent, en termes de rapidité, d'efficacité et de simplicité, Bacula est aussi puissant - voire plus puissant - que toute autre solution de sauvegarde et de restauration pour SQL.

L'informatique d'entreprise est en constante évolution, apportant de nouvelles tendances et de nouvelles façons d'aborder la fourniture de services et de données critiques. De la virtualisation au cloud, des conteneurs à l'infrastructure convergente, une chose est restée constante. Les serveurs de bases de données restent un élément clé de la plupart des organisations, et contiennent souvent les informations les plus critiques pour la continuité des opérations. Au final, quelle que soit la virtualisation et la haute disponibilité de l'infrastructure, être capable de sauvegarder les bases de données et de récupérer les éléments critiques des bases de données à un moment donné reste un élément nécessaire d'une stratégie efficace de reprise après sinistre, de continuité des activités et de sécurité.

Bacula Enterprise permet de sauvegarder de nombreuses bases de données critiques, dont Oracle, MSSQL, SAP HANA, MySQL et Postgresql, tout en offrant les options de restauration à un moment précis et hors ligne nécessaires.

Le guide qui suit vous montrera comment sauvegarder des bases de données SQL Server à l'aide de l'interface de périphérique virtuel Linux de Microsoft.

Configuration de la sauvegarde des bases de données SQL avec Bacula

1. Depuis la page de configuration de BWeb, cliquez sur "Ajouter une nouvelle sauvegarde".

backup sql database

2. Cela fait apparaître l'assistant pour ajouter une nouvelle tâche de sauvegarde de la base de données SQL. Donnez d'abord un nom et une description à la tâche. Il est également possible ici de sélectionner des valeurs par défaut communes à d'autres tâches de sauvegarde, appelées JobDefs dans Bacula, si nécessaire. Idéalement, le nom de la tâche doit correspondre au nom de l'hôte ainsi qu'à un descripteur pour le service sauvegardé sur cet hôte, afin de faciliter l'analyse des journaux.

sql server backup

3. Ensuite, le client sur lequel réside la base de données SQL est sélectionné dans la liste déroulante du client.

sql backup database

4. Après avoir choisi le client, BWeb demandera quelle base de données SQL doit être sauvegardée. C'est ce qu'on appelle le Fileset dans Bacula. Il n'y a pas de modèle existant pour ce type particulier de sauvegarde SQL, il faudra donc le créer en cliquant sur le lien "maintenant" dans la description.

backup sql database

5. Le nouveau jeu de fichiers aura besoin d'un nom, et dans ce cas, le nom est spécifique à cette tâche de sauvegarde. Le même jeu de fichiers peut également être partagé entre plusieurs tâches de sauvegarde de bases de données SQL qui partagent les mêmes paramètres. Après avoir donné un nom au jeu de fichiers, cliquer sur "Ajouter une liste d'inclusion" fait apparaître la fenêtre de configuration suivante où les données à sauvegarder sont configurées.

6. Choisissez le client, et BWeb se connectera et affichera le système de fichiers disponible pour la sauvegarde. Plutôt que de sauvegarder des fichiers dans cet exemple, la configuration est celle d'un plugin pour sauvegarder une base de données. En cliquant sur "Edit Plugins", la liste des plugins apparaît.

7. Dans cette liste, le plugin de sauvegarde de base de données SQL est choisi, ce qui fait apparaître l'écran de configuration.

8. Sur l'écran de configuration se trouvent les différentes options disponibles pour le plugin de sauvegarde du serveur SQL. Par défaut, le plugin s'authentifie via le compte de service local sous lequel le File Daemon de Bacula est exécuté sur le serveur SQL (voir la capture d'écran de configuration pour une façon possible d'autoriser Bacula à accéder aux bases de données), puis sauvegarde toutes les bases de données du serveur. Les options de la liste permettent de configurer le plugin pour utiliser une authentification alternative, sauvegarder uniquement des bases de données spécifiques ou exclure les bases de données correspondant à un modèle, ainsi que d'autres options. Veuillez consulter le livre blanc du plugin de sauvegarde des bases de données SQL de Bacula Enterprise pour plus de détails sur toutes les options de configuration disponibles. Dans cet exemple, les valeurs par défaut sont utilisées pour sauvegarder toutes les bases de données du serveur.

9. Enfin, le plugin est ajouté au jeu de fichiers et toutes les options finales sont configurées, comme l'activation de la déduplication pour tout travail utilisant ce jeu de fichiers. Le manuel principal de Bacula Enterprise couvre en détail chacune des options de configuration disponibles, et le Support Systèmes de Bacula peut vous aider à optimiser les options du jeu de fichiers.

10. Après avoir appliqué les modifications et enregistré le jeu de fichiers, un programme doit être choisi dans la liste disponible des programmes de sauvegarde configurés, ou un nouveau programme peut être créé. Si aucun programme n'est choisi, la tâche sera exécutée manuellement.

11. Enfin, la tâche est prête à être sauvegardée. Toutes les options avancées peuvent être changées, ajoutées ou modifiées maintenant. Dans l'exemple présenté ici, aucune modification supplémentaire n'est nécessaire et le travail peut être enregistré, puis validé et le directeur doit être rechargé. Le rechargement de la configuration du directeur n'affecte pas les travaux en cours.

12. Le nouveau job est prêt à être lancé. Une exécution manuelle permet de vérifier que tout est configuré comme souhaité.

13. Après une exécution manuelle de la tâche, un examen du journal de la tâche montre les bases de données et les fichiers associés sauvegardés, les éventuelles erreurs ou avertissements, ainsi que les statistiques totales de la tâche et le statut de Bacula. Dans ce cas, le travail de sauvegarde SQL est OK, donc la tâche de configuration est terminée.

Dernières observations sur la façon de sauvegarder une base de données SQL :

  • Il s'agit d'un guide de configuration de base ; veuillez-vous référer à la documentation et au support de Bacula Enterprise pour plus de détails et d'options de configuration avancées.
  • Vérifier et documenter le processus de restauration est une étape importante.
  • Les instructions de configuration à l'aide d'un éditeur de texte et des fichiers de configuration Bacula sont disponibles dans la documentation du plugin MSSQL-VDI
À propos de l’auteur

Rob Morrison Rob sur LinkedIn

Rob Morrison est le directeur marketing de Bacula Systems. Il a commencé sa carrière dans le marketing informatique chez Silicon Graphics en Suisse, où il a obtenu de bons résultats dans divers rôles de gestion du marketing pendant près de 10 ans. Au cours des 10 années suivantes, Rob a également occupé divers postes de gestion du marketing chez JBoss, Red Hat et Pentaho, assurant la croissance des parts de marché de ces sociétés bien connues. Il est diplômé de l'université de Plymouth, titulaire d'un diplôme spécialisé en médias et communications numériques, et a suivi un programme d'études à l'étranger.

laissez un commentaire

Votre adresse email ne sera pas publiée. Les champs requis sont indiqués *