Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Il existe souvent des situations où un administrateur de base de données Analysis Services (dba) souhaite déplacer une base de données de modèle multidimensionnelle ou tabulaire vers un autre emplacement. Ces situations sont souvent pilotées par les besoins métier, tels que le déplacement de la base de données vers un autre disque pour améliorer les performances, gagner de la place pour la croissance de la base de données ou mettre à niveau un produit.
Une base de données peut être déplacée de plusieurs façons. Ce document décrit les scénarios courants suivants :
Utilisation interactive de SSMS
Utilisation par programmation d’AMO
Par script à l’aide de XMLA
Tous les scénarios nécessitent 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 attribuer de mot de passe laisse la base de données dans un état non sécurisé. Nous vous recommandons d’affecter un mot de passe à la base de données pour protéger les informations confidentielles. En outre, la sécurité d’accès correspondante doit être appliquée au dossier de base de données, aux sous-dossiers et aux fichiers pour empêcher l’accès non autorisé à ces derniers.
Procédures
Déplacement interactif d’une base de données à l’aide de SSMS
Recherchez 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 sélectionnez Détacher...
Affectez un mot de passe à la base de données à détacher, puis cliquez sur OK pour exécuter la commande détacher.
Utilisez n’importe quel mécanisme de système d’exploitation ou votre méthode standard pour déplacer les 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 du dossier , tapez le nouvel emplacement du dossier de base de données. Vous pouvez également utiliser le bouton Parcourir (...) pour localiser le dossier de base de données.
Sélectionnez le
ReadWritemode de la base de données.Tapez le mot de passe utilisé à l’étape 3, puis cliquez sur OK pour exécuter la commande attach.
Déplacement d’une base de données par programmation à l’aide d’AMO
- Dans votre application C#, adaptez l’exemple de code suivant et effectuez 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 votre 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 n’importe quel mécanisme de système d’exploitation ou votre méthode standard pour déplacer les 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 valeurReadOnlycorrespondante ouReadWritepar%password%le mot de passe. Les caractères % font partie du modèle et doivent être supprimés.Exécutez la commande XMLA.
Voir aussi
Attach*
Microsoft.AnalysisServices.Database.Detach*
Attacher et détacher des bases de données Analysis Services
Emplacement du stockage de base de données
Modes de Lecture/Écriture de la Base de Données
Attacher l'élément
Détacher l’élément
Élément ReadWriteMode
Élément DbStorageLocation