Déplacer une base de données Analysis Services
Il existe souvent des situations dans lesquelles un administrateur de base de données Analysis Services souhaite déplacer une base de données multidimensionnelle ou tabulaire vers un autre emplacement. Ces situations sont souvent induites par des impératifs professionnels, tels que déplacer la base de données vers un autre disque pour de meilleures performances, gagner de la place pour la croissance des bases de données ou mettre à niveau un produit.
Une base de données peut être déplacée de différentes façons. Ce document explique les scénarios courants suivants :
Par interaction à l'aide de SSMS
Par programmation à l'aide d'AMO
Par script à l'aide de XMLA
Tous les scénarios requièrent que l'utilisateur accède au dossier de base de données et utilise une méthode pour déplacer les fichiers vers la destination finale souhaitée.
[!REMARQUE]
Détacher une base de données sans lui assigner un mot de passe laisse la base de données dans un état non protégé. Nous recommandons d'assigner un mot de passe à la base de données pour protéger les informations confidentielles. De même, la sécurité d'accès correspondante doit s'appliquer au dossier de base de données, aux sous-dossiers et aux fichiers pour empêcher leur accès non autorisé.
Procédures
Déplacement interactif d'une base de données à l'aide de SSMS
Localisez la base de données à déplacer dans le volet gauche ou droit de SSMS.
Cliquez avec le bouton droit sur la base de données et choisissez Détacher.
Attribuez un mot de passe à la base de données à détacher, puis cliquez sur OK pour exécuter la commande de détachement.
Utilisez tout mécanisme du système d'exploitation ou votre méthode standard de déplacement des fichiers pour déplacer le dossier de base de données vers le nouvel emplacement.
Recherchez le dossier Bases de données dans le volet gauche ou droit de SSMS.
Cliquez avec le bouton droit sur le dossier Bases de données et sélectionnez Attacher.
Dans la zone de texte dossier, tapez le nouvel emplacement du dossier de base de données. Vous pouvez également utiliser le bouton Parcourir (.) pour rechercher le dossier de base de données.
Sélectionnez le mode lecture/écriture pour la base de données.
Entrez le mot de passe utilisé dans l'étape 3 et cliquez sur OK pour exécuter la commande d'attachement.
Déplacement par programmation d'une base de données à l'aide d'AMO
- Dans votre application C#, adaptez l'exemple de code suivant et complétez les tâches indiquées.
private void MoveDb(Server server, string dbName,
string dbInitialLocation, string dbFinalLocation,
string dbPassword, ReadWriteMode dbReadWriteMode)
{
//Verify dbInitialLocation exists before continuing
if (server.Databases.ContainsName(dbName))
{
Database db;
//Save current cursor and change cursor to Cursors.WaitCursor
db = server.Databases[dbName];
db.Detach(dbPassword);
//Add your own code to copy the database files to the destination where you intend to attach the database
//Verify dbFinalLocation exists before continuing
server.Attach(dbFinalLocation, dbReadWriteMode, dbPassword);
//Restore cursor to its original
}
}
Dans votre application C#, appelez MoveDb() avec les paramètres nécessaires.
Compilez et exécutez le code pour déplacer la base de données.
Déplacement d'une base de données par script à l'aide de XMLA
Ouvrez un nouvel onglet XMLA dans SSMS.
Copiez le modèle de script suivant pour XMLA :
<Detach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>%dbName%</DatabaseID>
<Password>%password%</Password>
</Object>
</Detach>
Remplacez %dbName% par le nom de la base de données et %password% par le mot de passe. Les caractères % font partie du modèle et doivent être supprimés.
Exécutez la commande XMLA.
Utilisez tout mécanisme du système d'exploitation ou votre méthode standard de déplacement des fichiers pour déplacer le dossier de base de données vers le nouvel emplacement.
Copiez le modèle de script suivant pour XMLA dans un nouvel onglet XMLA.
<Attach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Folder>%dbFolder%</Folder>
<ReadWriteMode xmlns="https://schemas.microsoft.com/analysisservices/2008/engine/100">%ReadOnlyMode%</ReadWriteMode>
</Attach>
Remplacez %dbFolder% par le chemin UNC complet du dossier de base de données, %ReadOnlyMode% par la valeur ReadOnly correspondante ou ReadWrite, et %password% par le mot de passe. Les caractères % font partie du modèle et doivent être supprimés.
Exécutez la commande XMLA.
Voir aussi
Référence
Concepts
Attacher et détacher des bases de données Analysis Services