Ce que l’on doit connaître des procédures de Backup/Restore Les nouveautés dans SQL Server 2005 Les procédures de BACKUP Les procédures de RESTORE Le diagnostique de BACKUP/RESTORE
Les différents types de BACKUP (diff, base, log) Les modèles de recovery (full, bulk, simple) Les objets relatifs à une base de données Database Le journal de transaction Fichiers et groupes de fichiers Partitions Les objets physiques Pages et extents Pages d’allocation (GAM, SGAM, IAM, PFS)
Les tables dans MSDB La commande RESTORE pour voir les métadonnées d’une sauvegarde
VLF VLF0 mydb_log.ldf Log blocksEntête VLF LOP_BEGIN_XACT Log record LSN : :
La commande DBCC Les fonctions système pour voir les métadonnées du journal de transaction
Miroir de media de sauvegarde Sauvegarde partielle Sauvegarde “Copy-only” Les sauvegardes (diff, file, filegroup) incluent le log Intégration des sauvegardes full-text Restauration en ligne Vérification de sauvegarde améliorée Restauration avec erreurs
L’architecture Microsoft Tape Format (MTF) Les types de sauvegarde La vérification d’une sauvegarde Les sauvegardes en miroir
Backup buffers Read from filesWrite to target Backup Target Backup Target Backup Target Backup Target Backup Device Database files Database files Database files tlog files Post Processing Initialization
LOP_BEGIN_CKPT DATABASE BACKUP – Pas de transaction active LSN1LSN2LSN3 Premier LSN Checkpoint LSN Dernier LSN LSNn DATABASE BACKUP – Une transaction active LOP_BEGIN_XACTLOP_BEGIN_CKPTLSN1LSN2LSNn Premier LSNCheckpoint LSN Dernier LSN
Sauvegarde du log pour les sauvegardes de données (database, diff, file, filegroup) Troncature du log pour les sauvegardes de log Ecriture de la fin de marqueur MTF Gestion de l’historique de sauvegarde ERRORLOG – Trace flag 3226 le supprime MSDB Tables – Trace flag 3001 le supprime
Les threads de sauvegarde Les LSNs Les trace flags pour voir les sauvegardes en détail
MTF : format utilisé pour type de media Compatible avec Windows NTBackup MTF MTF : protocole qui définit comment les données sont organisées dans une sauvegarde
Nécessite l’option WITH CHECKSUM Deux avantages Vérifie la validité des données et du log avant sauvegarde Vérifie l’étendue des dommages causés à la sauvegarde. Checksum de page (torn page) vérifié par… Lecture de chaque extent à partir du fichier Vérifier le checksum de toute page qui a un checksum dans son entête Arrêt de la sauvegarde si la vérification échoue (Msg 3043) Backup checksum calculé pour toutes les données avant écriture Uniquement données et log. Pas sur les infos MTF Valeur écrite sur le media à la fin de la sauvegarde Valeur cumulative des checksums de toutes les pages et du log WITH CONTINUE_AFTER_ERROR passe les erreurs mais écrit les pages Backup checksum calculé sur les pages endommagées L’entête de la sauvegarde affiche checksum ou continue avec des erreurs
Backup Set 1 Backup Set 2 Media Set 1 db1 Backfile1.bakBackfile2.bakBackfile3.bak Media Family 2Media Family 3 db2 db1 db2 db1 db2 db1 Backmir1.bakBackmir2.bakBackmir3.bak db2 db1 db2 db1 db2 Backup Set 1 Backup Set 2 Media Family 1
Les « recovery paths » Le checksum de sauvegarde Scenarios de restauration Restauration en ligne (file restore) Restauration partielle (piecemeal restore) Restauration de page (page restore)
Le même LSN représentant différents log records peut exister dans différentes sauvegardes de log Full database LSN1LSN2 LSN3 LSN4LSN5 LSN4LSN5 Recovery Point Log backup 1Log backup 2 Log backup 3 last_recovery_fork_guid = first_recovery_fork_guid
C’est une vérification du média de sauvegarde Toute page ayant un checksum dans son entête est vérifiée Le checksum de backup est vérifié à la fin si aucune erreur n’a été rencontrée On ne modifie pas le checksum CONTINUE_AFTER_ERROR passe toutes les erreurs La vérification du “page checksum” (Msg 3183) permet d’évaluer les dommages Une erreur lors de la vérification du checksum de sauvegarde (Msg 3186/3189) indique Une page sans checksum est endommagée Un “log block” est endommagé
myfg1.ndfmydb1.ndf Primary FGFG2 Full BackupLog Backup 1Log Backup 2Log Tail myfg1 Time
myfg1.ndfmydb1.ndf Primary FGFG2 Full Backup Log Backup 1 Log Backup 2 Tail Log FILEGROUP = ‘FG2’ Full Backup Log Backup 1 Log Backup 2 Tail Log WITH PARTIAL Time
Similaire au “file restore” Opération en ligne nécessitant EE ou DE Solution pour Erreur de checksum sur une ou quelques pages Erreurs CHECKDB sur quelques pages “Deferred transaction” ou pages non restaurées lors de la restauration Limitations Nécessite des backups de log Ne fonctionne pas pour les pages d’allocation ainsi que les “boot pages”
Les problèmes de performance sont typiquement… Problèmes d’I/O (backup device) Problème mémoire (petits buffers requis) Les erreurs lors de sauvegarde sont dues au media Problèmes réseaux (OS error 64) Utiliser CONTINUE_AFTER_ERROR avec précaution Utiliser les LSNs (cf metadata) pour les erreurs 4305 L’erreur 3159 est là pour éviter de perdre la fin du log RESTORE VERIFYONLY WITH VERBOSE dumps out contents of backup
SQL Server 2005 Virtual Backup Device Interface (VDI) Specification SQL Server 2005 Virtual Backup Device Interface (VDI) Specification SQL Writer in SQL Server 2005: A Guide for SQL Server Backup Application Vendors SQL Writer in SQL Server 2005: A Guide for SQL Server Backup Application Vendors SQL Server 2005 Practical Troubleshooting Book SQL Server 2005 Practical Troubleshooting Book PSS SQL Blog PSS SQL Blog Storage Engine Blog Storage Engine Blog Product Feedback for SQL Server Product Feedback for SQL Server SQL Server MSDN Forums SQL Server MSDN Forums
S’informer - Un portail d’informations, des événements, une newsletter bimensuelle personnalisée Se former - Des webcasts, des articles techniques, des téléchargements, des forums pour échanger avec vos pairs Bénéficier de services - Des cursus de formations et de certifications, des offres de support technique Visual Studio Abonnement MSDN Premium Abonnement TechNet Plus : Versions d’éval + 2 incidents support