vendredi 12 décembre 2008

Sql Server - Archiver des données

Voici une petite marche à suivre pour archiver les données d'une DB.
Ce cas de figure s'applique à l'archivage partiel d'une DB ou d'une table.

Etape 1
Faire un dump/unload des données dans des fichiers.
voir cet article à propos de BCP.

Etape 2
Effacer les records archivés.
Attention à la méthode utilisée! Un delete de plusieurs milliers/millions de records peuvent facilement engorger le transaction log (ou le disque dur)
Voir cet article proposant des méthodes alternatives.

Etape 3
Si nécessaire, tronquer le data file avec l'instruction DBCC SHRINKFILE.
DBCC SHRINKFILE ne require pas lock particulier sur la DB, cette commande pourra donc être utilisée sans risque pendant son utilisation.
Pour connaîte le nom du data file, il faut utiliser la commande sp_helpfile .

DBCC SHRINKFILE ('MyDatabase_Data')

Etape 4
Si nécessaire, réduire la taille du transaction Log avec la store procedure sp_force_shrink_log.
Si cette store procedure n'est pas encore installée, voir cet article pour en localiser le code source.

Aucun commentaire: