février
2008
Ce billet, que j’ecrirais en plusieurs étapes, montrera comment Sql Server 2005 gère la récupération des bases de données.
Il existe deux types de récupération : la récupération de bases de données, ce que l’on fait avec des BACKUP DATABASE maBase TO DISK='Chemin/vers/fichier.bak'
et RESTORE DATABASE maBase FROM DISK='Chemin/vers/fichier.bak'
, on distinguera les sauvegardes compétes et différentielles. Le deuxième type de récupération est celui du journal des transactions. Le journal des transactions est un fichier qui conserve toutes les requêtes modifiantes d’une base de données (insert, update, delete, etc.). Grace au journal des transactions, on peut récupérer les données insérées ou modifiées entre deux backups, la couverture de la base de données est totale !
Dans la récupération des BD avec le journal des transaction, on peut distinguer trois modes :
– Complet : le journal charge toutes les requêtes, validées et non validées.
– Simple : le journal efface les requêtes validées et charge une version allégée des requêtes non validées.
– Journalisé en bloc : très utile pour ne pas surcharger inutilement le fichier journal. C’est un mode qui journalise de façon minimale les chargements en bloc. Ce mode est très utile dans le cas d’un ETL qui chargerait des données dans un entrepôt. Puisque les chargements en bloc ne sont pas journalisés, la récupération en cas de défaillance rendra la base de données exactement comme elle l’était avant le chargement !!!! Pas de demi chargement, pas de recherche des données réscement insérées…
Le mode de journalisation est configuré avec la commande :
ALTER DATABASE [base_de_données] SET RECOVERY [FULL|SIMPLE|BULK_LOGGED]