mardi 22 février 2011

Attach/Detach manuel sur SSAS 2005

Le procédé de mise en ligne/mise hors ligne ou Attach/Detach d'une base (bien pratique quelque fois) est une feature apparue à partir de 2008.
Forcément en 2005, gros soucis pour réaliser cette opération, d'où mon problème du jour : la réinstallation d'une instance AS 2005 dont seuls les disques de données de l'ancienne instance ont été conservés (avec les répertoire ".db", c'est déjà ça) : bien entendu, on veut récupérer ces bases dont on ne dispose pas de backups (seulement les répertoires contenant les data file).

Si vous gérez vos instances 2005 avec SSMS 2008, effectivement, dans le menu contextuel il y a bien possibilité de faire un Detach de votre base : autant vous dire tout de suite que ça ne fonctionne pas.

Donc deux solutions :
  • Soit vous modifiez dans le fichier de configuration de votre instance AS la propriété Datadir en renseignant le chemin du répertoire qui contient vos anciennes données, puis redémarrage de l'instance pour prendre en compte cette modification, puis backup des bases, puis re-changement du Datadir avec le chemin du répertoire de données initial, puis re-redémarrage de l'instance et enfin un Restore des backups nouvellement créés. Méthode la plus propre, mais lourde, surtout si vous avez 20 bases à sauvegarder puis à remonter.
  • Ou L'AUTRE méthode, un peu plus brutale mais qui permet de gagner du temps : un copier-coller des anciens répertoires ".db", des fichiers XML ".db.xml", du master.vmp et du CryptKey.bin dans votre répertoire de données actuel, un redémarrage de l'instance et le tour est joué. Bien entendu, ceci fonctionne avec une instance "à vide", sans base de données présente au préalable. Sinon, elle seront supprimées au redémarrage de l'instance car non référencées dans le nouveau (ancien) fichier master.vmp.

2 commentaires:

  1. Osé mais sympa! A l'époque j'avais essayé de merger violemment les deux vmp (après tout c'est du XML) pour le faire sur un serveur déjà utilisé mais je ne me rappelle pas y être arrivé... Tu as tenté?

    RépondreSupprimer
  2. Yes, j'ai tenté la fusion des vmp, comme ça j'aurai pu mettre que cette bidouille permet également de conserver les bases déjà présentes sur l'instance en plus du merge avec les anciennes. Mais ça ne fonctionne pas. Le merge des vmp est effectif, ma base importée par un copier-coller est visible, seulement, la partie cryptée des données l'a été avec le CryptKey de l'ancienne instance, du coup, impossible de processer cette base importée par exemple. Voilà pourquoi je précise que lors du copier-coller, il faut que le fichier CryptKey le soit également.

    RépondreSupprimer