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.
S’applique à :
SQL Server Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
Les administrateurs de base de données SQL Server Analysis Services peuvent modifier le mode lecture/écriture d’une base de données tabulaire ou multidimensionnelle dans le cadre d’un effort plus important qui distribue une charge de travail de requête entre plusieurs serveurs de requête uniquement.
Un mode de base de données peut être basculé de plusieurs façons. Ce document décrit les scénarios courants suivants :
Utilisation interactive de SQL Server Management Studio
Utilisation programmatique d'AMO
Script à l’aide de XMLA ou TMSL
Changer le mode lecture/écriture d’une base de données de manière interactive à l’aide de Management Studio
Dans l’Explorateur d’objets, cliquez avec le bouton droit sur la base de données et sélectionnez Propriétés.
Notez l’emplacement. Un emplacement de stockage de base de données vide indique que le dossier de base de données se trouve dans le dossier de données du serveur.
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.
Dans l’Explorateur d’objets, cliquez avec le bouton droit sur le dossier Bases de données et sélectionnez Attacher...
Dans la zone de texte du dossier , tapez l’emplacement d’origine 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 mode lecture/écriture de la base de données.
Tapez le mot de passe et cliquez sur OK pour exécuter la commande attach.
Basculer le mode lecture/écriture vers une base de données par programmation à l’aide d’AMO
Dans votre application C#, appelez SwitchReadWrite() avec les paramètres nécessaires. Compilez et exécutez votre code pour déplacer la base de données.
private void SwitchReadWrite(Server server, string dbName, ReadWriteMode dbReadWriteMode)
{
if (server.Databases.ContainsName(dbName))
{
Database db;
string databaseLocation;
db = server.Databases[dbName];
databaseLocation = db.DbStorageLocation;
if (databaseLocation == null)
{
string dataDir = server.ServerProperties["DataDir"].Value;
string dataDir = server.ServerProperties["DataDir"].Value;
string dataDir = server.ServerProperties["DataDir"].Value;
String[] possibleFolders = Directory.GetDirectories(dataDir, string.Concat(dbName,"*"), SearchOption.TopDirectoryOnly);
if (possibleFolders.Length > 1)
{
List<String> sortedFolders = new List<string>(possibleFolders.Length);
sortedFolders.AddRange(possibleFolders);
sortedFolders.Sort();
databaseLocation = sortedFolders[sortedFolders.Count - 1];
}
else
{
databaseLocation = possibleFolders[0];
}
}
db.Detach();
server.Attach(databaseLocation, dbReadWriteMode);
}
}
Basculer le mode lecture/écriture vers une base de données en script à l’aide de XMLA
Les instructions suivantes s’appliquent aux bases de données multidimensionnelles et aux bases de données tabulaires en mode de compatibilité 1050, 1100 ou 1103.
Dans l’Explorateur d’objets, cliquez avec le bouton droit sur la base de données et sélectionnez Propriétés.
Notez l’emplacement. Un emplacement de stockage de base de données vide indique que le dossier de base de données se trouve dans le dossier de données du serveur.
Cliquez avec le bouton droit sur la base de données et sélectionnez Détacher...
Ouvrez un nouvel onglet XMLA dans Management Studio.
Copiez le modèle de script suivant pour XMLA :
<Detach xmlns="http://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.
Copiez le modèle de script suivant pour XMLA dans un nouvel onglet XMLA
<Attach xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <Folder>%dbFolder%</Folder> <ReadWriteMode xmlns="http://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 ou ReadWrite correspondante 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
Haute disponibilité et scalabilité dans Analysis Services
Joindre et séparer des bases de données Analysis Services
Emplacement du stockage de base de données
ReadWriteModes de la base de données
Élément d'attache
Détacher l’élément
Élément ReadWriteMode
Élément DbStorageLocation