Les sauvegardes de base de données ou de journal peuvent être ajoutées à n'importe quel périphérique de disque ou à bandes, ce qui permet de conserver au même emplacement physique la base de données et ses journaux de transactions.
L'instruction BACKUP n'est pas autorisée dans une transaction explicite ou implicite.
Les opérations de sauvegarde inter-plateformes, impliquant éventuellement des types de processeurs différents, peuvent être réalisées tant que le classement de la base de données est pris en charge par le système d'exploitation.
Pour plus d'informations sur la terminologie liée aux sauvegardes, les unités de sauvegarde et la gestion des sauvegardes, consultez Utilisation de supports de sauvegarde dans SQL Server.
Concurrence
SQL Server recourt à un processus de sauvegarde en ligne pour permettre qu'une base de données soit sauvegardée alors qu'elle est encore utilisée. Lors d'une sauvegarde, la plupart des opérations sont possibles ; par exemple, les instructions INSERT, UPDATE et DELETE sont autorisées.
Parmi les opérations qui ne peuvent pas être effectuées lors d'une sauvegarde de base de données ou du journal des transactions, citons :
-
Les opérations de gestion des fichiers telles que l'instruction ALTER DATABASE employée avec les options ADD FILE et REMOVE FILE.
-
Les opérations de compactage de base de données ou de fichier. Cela comprend également les opérations de compactage automatique.
Si une opération de sauvegarde chevauche une opération de compactage ou de gestion des fichiers, un conflit se produit. Quelle que soit l'opération effectuée la première, la seconde opération attend que le verrou défini par la première opération expire (le délai d'expiration est contrôlé par un paramètre d'expiration de la session). Si le verrou est libéré au cours du délai d'expiration, la seconde opération se poursuit. Si le verrou expire, la seconde opération échoue.
Formatage du support de sauvegarde
Le support de sauvegarde est formaté par une instruction BACKUP si, et uniquement si, l'une des conditions suivantes est vraie :
-
L'option FORMAT est spécifiée.
-
Le support est vide.
-
L'opération écrit sur une bande magnétique de sauvegarde consécutive.
Pour plus d'informations, consultez Création d'un nouveau support de sauvegarde.
Types de sauvegarde.
Les types de sauvegarde pris en charge dépendent du mode de récupération de la base de données conformément à ce qui suit :
-
Tous les modes de récupération prennent en charge les sauvegardes de données complètes et différentielles.
|
Étendue de la sauvegarde
|
Types de sauvegarde
|
|---|
|
Base de données entière
|
Les sauvegardes de base de données couvrent l'ensemble de la base de données.
|
|
Base de données partielle
|
Les sauvegardes partielles couvrent les groupes de fichiers en lecture/écriture et, éventuellement, un ou plusieurs fichiers ou groupes de fichiers en lecture seule.
|
|
Fichier ou groupe de fichiers
|
Les sauvegardes de fichiers couvrent un ou plusieurs fichiers ou groupes de fichiers et ne conviennent qu'aux bases de données contenant plusieurs groupes de fichiers. En mode de récupération simple, les sauvegardes de fichiers se limitent essentiellement aux groupes de fichiers secondaires en lecture seule.
|
-
En mode de restauration complète ou en mode de récupération utilisant les journaux de transactions, les sauvegardes standard incluent également les sauvegardes des journaux de transactions (ou sauvegardes de fichier journal) séquentielles qui sont requises. Chaque sauvegarde de fichier journal couvre la partie du journal des transactions qui est active au moment de la création de la sauvegarde et inclut tous les enregistrements de journal qui n'ont pas été sauvegardés lors d'une précédente sauvegarde de journal.
Remarque : |
|---|
|
Avant de pouvoir créer la première sauvegarde du fichier journal, vous devez créer une sauvegarde complète.
|
Pour plus d'informations, consultez Utilisation des sauvegardes de journaux de transactions.
-
Une sauvegarde en copie seule est une sauvegarde complète ou une sauvegarde de fichier journal qui est réalisée dans un but précis et qui est indépendante de la séquence normale des sauvegardes standard. Pour créer une sauvegarde en copie seule, spécifiez l'option COPY_ONLY dans votre instruction BACKUP. Pour plus d'informations, consultez Sauvegardes de type copie seule.
Sauvegarde de données de texte intégral
Lors d'une sauvegarde de base de données complète dans SQL Server 2005, les données de texte intégral sont sauvegardées avec les autres données de la base de données. L'opération de sauvegarde traite les catalogues de texte intégral comme des fichiers. Par exemple, les catalogues peuvent être sauvegardés en isolation au moyen de la clause FILE= pour sélectionner les catalogues. (Le nom de fichier logique de chaque catalogue de texte intégral est au format sysft_<nom de catalogue>.)
Lors de la sauvegarde, le catalogue est placé en mode lecture seule, de façon à ce que l'activité d'analyse (processus de création et de maintien d'un index de texte intégral) soit suspendue jusqu'à ce que la sauvegarde soit terminée.
Interactions de SKIP, NOSKIP, INIT et NOINIT
Ce tableau décrit les interactions entre les options { NOINIT | INIT } et { NOSKIP | SKIP }.
Remarque : |
|---|
|
Si le support de bande est vide ou que le fichier de sauvegarde sur disque n'existe pas, toutes ces interactions écrivent un en-tête de support, puis se poursuivent. Si le support n'est pas vide et qu'il ne contient pas d'en-tête de support valide, ces opérations signalent qu'il ne s'agit pas d'un support MTF valide et mettent fin à l'opération de sauvegarde.
|
|
|
NOINIT
|
INIT
|
|---|
|
NOSKIP
|
Si le volume contient un en-tête de support valide, vérifie le mot de passe du support et vérifie que le nom du support correspond à la valeur de MEDIANAME, si elle est spécifiée. Si les deux noms correspondent, ajoute le jeu de sauvegarde en gardant ceux qui existent déjà.
Si le volume ne contient pas d'en-tête de support valide, une erreur se produit.
|
Si le volume contient un en-tête de support valide, effectue les vérifications suivantes :
-
Vérifie le mot de passe du support.2
-
Si MEDIANAME a été spécifié, vérifie que le nom indiqué correspond à celui qui est mentionné dans l'en-tête du support.
-
Vérifie qu'il n'y a pas déjà sur le support des jeux de sauvegardes qui ne seraient pas encore arrivés à expiration.
S'il y en a, met fin à la sauvegarde.
Si toutes ces vérifications sont validées, écrase tous les jeux de sauvegardes présents sur le support en ne conservant que l'en-tête du support.
Si le volume ne contient pas d'en-tête de support valide, en génère un en utilisant les valeurs de MEDIANAME, MEDIAPASSWORD et MEDIADESCRIPTION si elles sont spécifiées.
|
|
SKIP
|
Si le volume contient un en-tête de support valide, vérifie le mot de passe du support et ajoute le jeu de sauvegarde, en gardant ceux qui existent déjà.
|
Si le volume contient un en-tête de support valide1, vérifie le mot de passe du support et écrase tous les jeux de sauvegardes présents sur le support en ne gardant que l'en-tête.
Si le support est vide, génère un en-tête de support en utilisant les valeurs de MEDIANAME, MEDIAPASSWORD et MEDIADESCRIPTION si elles sont spécifiées.
|
1 Pour être valide, il doit faire état du numéro de version MTF et d'autres informations d'en-tête. Si la version indiquée n'est pas prise en charge ou pas reconnue, une erreur se produit.
2 L'utilisateur doit appartenir aux rôles de serveur ou de base de données fixes appropriés et fournir le mot de passe de support correct pour effectuer une opération de sauvegarde.
Tables d'historique de sauvegarde
SQL Server intègre les tables d'historique de sauvegarde suivantes pour assurer le suivi des activités de sauvegarde :
Si une restauration est effectuée et que le jeu de sauvegarde n'est pas encore enregistré dans la base de données msdb, les tables d'historique de sauvegarde ne seront peut-être pas modifiées.
Prise en charge de la compatibilité
Attention : |
|---|
|
Les sauvegardes créées avec une version plus récente de SQL Server ne peuvent pas être restaurées dans les versions antérieures de SQL Server.
|
BACKUP prend en charge les mots clés suivants pour assurer la compatibilité descendante avec les versions antérieures de SQL Server :
-
L'option RESTART est acceptée à des fins de compatibilité, mais n'a aucun effet dans SQL Server 2005.
-
Pour garantir la compatibilité descendante, vous pouvez utiliser le mot clé DUMP au lieu du mot clé BACKUP dans vos instructions BACKUP. En outre, vous pouvez utiliser le mot clé TRANSACTION au lieu du mot clé LOG. Le moteur de base de données SQL Server interprète DUMP DATABASE ou DUMP TRANSACTION exactement de la même manière que, respectivement, BACKUP DATABASE ou BACKUP LOG.
Important : |
|---|
|
L'instruction DUMP est prise en charge pour des raisons de compatibilité descendante. Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Utilisez plutôt BACKUP.
|
Unités de sauvegarde d'un support de sauvegarde distribuée (jeu de bandes)
Un jeu de bandes est un ensemble de fichiers disque sur lesquels les données sont divisées en bloc et distribuées dans un ordre figé. Le nombre d'unités de sauvegarde utilisées dans un jeu de bandes doit rester le même (sauf si le support est réinitialisé avec FORMAT).
L'exemple suivant écrit une sauvegarde de la base de données AdventureWorks sur un nouveau support de sauvegarde distribuée qui fait appel à trois fichiers disque.
BACKUP DATABASE AdventureWorks
TO DISK='X:\SQLServerBackups\AdventureWorks1.bak',
DISK='Y:\SQLServerBackups\AdventureWorks2.bak',
DISK='Z:\SQLServerBackups\AdventureWorks3.bak'
WITH FORMAT,
MEDIANAME = 'AdventureWorksStripedSet0',
MEDIADESCRIPTION = 'Striped media set for AdventureWorks database;
GO
Lorsqu'une unité de sauvegarde a été définie comme faisant partie d'un jeu de bandes, elle ne peut plus être utilisée pour une sauvegarde d'unité unique, sauf si l'option FORMAT est spécifiée. De la même façon, une unité qui contient des sauvegardes non agrégées ne peut pas être utilisée dans un jeu d'agrégats, sauf si l'option FORMAT est spécifiée. Pour diviser un jeu de sauvegarde par bandes, utilisez l'option FORMAT.
Si ni MEDIANAME ni MEDIADESCRIPTION n'est spécifié lorsqu'un en-tête de support est écrit, le champ d'en-tête de support correspondant à l'élément non spécifié est vide.
Utilisation d'un support de sauvegarde miroir
En règle générale, les sauvegardes ne sont pas mises en miroir et les instructions BACKUP contiennent simplement une clause TO. Toutefois, il est possible de créer jusqu'à quatre miroirs par support de sauvegarde. Dans le cas d'un support de sauvegarde miroir, l'opération de sauvegarde écrit dans plusieurs groupes d'unités de sauvegarde. Chaque groupe d'unités de sauvegarde constitue un miroir au sein du support de sauvegarde miroir. Chaque miroir doit utiliser le même nombre et le même type d'unités de sauvegarde physiques, lesquelles doivent toutes avoir les mêmes propriétés.
Pour effectuer une sauvegarde dans un support de sauvegarde miroir, tous les miroirs doivent être présents. Pour effectuer une sauvegarde dans un support de sauvegarde miroir, spécifiez la clause TO pour le premier miroir et spécifiez une clause MIRROR TO pour chacun des autres miroirs.
Pour un support de sauvegarde miroir, chaque clause MIRROR TO doit contenir le même nombre et le même type d'unités que la clause TO. L'exemple suivant écrit dans un support de sauvegarde miroir contenant deux miroirs et utilisant trois unités par miroir :
BACKUP DATABASE AdventureWorks
TO DISK='X:\SQLServerBackups\AdventureWorks1a.bak',
DISK='Y:\SQLServerBackups\AdventureWorks2a.bak',
DISK='Z:\SQLServerBackups\AdventureWorks3a.bak'
MIRROR TO DISK='X:\SQLServerBackups\AdventureWorks1b.bak',
DISK='Y:\SQLServerBackups\AdventureWorks2b.bak',
DISK='Z:\SQLServerBackups\AdventureWorks3b.bak';
GO
Important : |
|---|
|
Cet exemple vous permet d'effectuer un test sur votre système local. En pratique, effectuer une sauvegarde dans plusieurs unités se trouvant sur le même lecteur nuit aux performances et élimine la redondance pour laquelle les supports de sauvegarde miroirs sont conçus.
|
Familles de supports de sauvegarde miroirs
Chaque unité de sauvegarde spécifiée dans la clause TO d'une instruction BACKUP correspond à une famille de supports. Par exemple, si la clause TO répertorie trois unités, BACKUP écrit des données dans trois familles de supports. Dans un support de sauvegarde miroir, chaque miroir doit contenir une copie de chacune des familles de supports. C'est pour cette raison que le nombre d'unités doit être identique pour tous les miroirs.
Si plusieurs unités sont spécifiées pour chaque miroir, leur ordre détermine la famille de supports qui est écrite sur chacune d'elles. Par exemple, dans chaque liste d'unités, la deuxième unité correspond à la deuxième famille de supports. Le tableau suivant établit la correspondance entre unités et familles de supports pour les unités de l'exemple ci-dessus.
|
Miroir
|
Famille de supports 1
|
Famille de supports 2
|
Famille de supports 3
|
|---|
|
0
|
C:\AdventureWorks1a.bak
|
C:\AdventureWorks2a.bak
|
C:\AdventureWorks3a.bak
|
|
1
|
C:\AdventureWorks1b.bak
|
C:\AdventureWorks2b.bak
|
C:\AdventureWorks3b.bak
|
Une famille de supports doit toujours être sauvegardée sur la même unité à l'intérieur d'un miroir donné. Par conséquent, à chaque fois que vous utilisez un support de sauvegarde existant, répertoriez les unités de chaque miroir dans l'ordre dans lequel elles ont été spécifiées au moment de la création du support de sauvegarde.
Pour plus d'informations sur les supports de sauvegarde miroirs, consultez Utilisation de supports de sauvegarde miroirs. Pour plus d'informations d'ordre général sur les supports de sauvegarde et les familles de supports, consultez Supports, familles et jeux de sauvegarde.