Sauvegarde des bases de données en lecture seule

 Cette rubrique présente des recommandations sur la sauvegarde des bases de données en lecture seule ou qui étaient en lecture seule lors de la dernière sauvegarde.

Pour une base de données en lecture seule, le fichier primaire ne peut pas être mis à jour au cours d'une sauvegarde. La méthode recommandée pour une base de données en lecture seule consiste à effectuer une sauvegarde complète. Cependant, si une base de données alterne entre la lecture seule et la lecture-écriture, il est logique de sauvegarder la base de données lorsqu'elle est en lecture-écriture. Ensuite, tant que la base de données reste en lecture-écriture, si la portée des modifications est limitée, vous pouvez effectuer des sauvegardes différentielles.

[!REMARQUE]

Vous ne pouvez pas changer la propriété IsReadOnly d'un groupe de fichiers durant une sauvegarde. Cette tentative produit une erreur et entraîne un échec.

Sauvegardes partielles après la conversion d'une base de données en lecture-écriture

La sauvegarde partielle d'une base de données en lecture seule contient uniquement le groupe de fichiers principal. Si la base de données est convertie ensuite en base de données lecture-écriture, des groupes de fichiers secondaires peuvent ne pas figurer dans la sauvegarde partielle. Dans ce cas, si vous tentez d'effectuer une sauvegarde partielle différentielle, la sauvegarde échoue. Pour pouvoir créer une sauvegarde partielle différentielle de la base de données, vous devez créer une autre sauvegarde partielle. La nouvelle sauvegarde partielle contient tous les groupes de fichiers secondaires en lecture-écriture qui peuvent servir de base pour les sauvegardes partielles différentielles.

Sauvegardes différentielles des bases de données en lecture seule

Pour les bases de données en lecture seule, les sauvegardes complètes utilisées seules sont plus aisées à gérer que lorsqu'elles sont utilisées avec des sauvegardes différentielles. Lorsqu'une base de données est en lecture seule, les opérations de sauvegarde et les autres opérations ne peuvent pas modifier les métadonnées contenues dans le fichier. Par conséquent, les métadonnées nécessaires à une sauvegarde différentielle, telles que le numéro séquentiel dans le journal de début de la sauvegarde différentielle (LSN de base différentiel), sont stockées dans la base de données master. Si la base différentielle s'effectue lorsque la base de données est en lecture seule, la bitmap différentielle indique un nombre de modifications qui est supérieur au nombre réel depuis la sauvegarde de base. Les données supplémentaires sont lues par la sauvegarde mais ne sont pas écrite dans celle-ci, parce que differential_base_lsn stocké dans la table système backupset sert à déterminer si les données ont changé depuis la base.

Lorsqu'une base de données en lecture seule est reconstruite, restaurée ou détachée et rattachée, les informations de base différentielle sont perdues. Cela tient au fait que la base de données master n'est pas synchronisée avec la base de données utilisateur. Le moteur de base de données SQL Server ne peut pas détecter, ni éviter ce problème. Les sauvegardes différentielles suivantes ne reposent pas sur la dernière sauvegarde complète et peuvent fournir des résultats inattendus. Pour créer une base différentielle, nous vous recommandons de créer une sauvegarde complète de la base de données.

Méthodes recommandées pour l'utilisation des sauvegardes différentielles avec une base de données en lecture seule

Après avoir créé une sauvegarde complète d'une base de données en lecture seule, sauvegardez la base de données master si vous voulez créer ensuite une sauvegarde différentielle.

Si vous perdez la base de données master, restaurez-la avant de restaurer une sauvegarde différentielle d'une base de données utilisateur.

Si vous détachez et attachez une base de données en lecture seule pour laquelle vous envisagez ensuite d'utiliser des sauvegardes différentielles, créez dès que possible une sauvegarde complète de la base de données en lecture seule et de la base de données master.