Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Es gibt häufig Situationen, in denen ein Analysis Services-Datenbankadministrator (dba) den Lese-/Schreibmodus einer tabellarischen oder multidimensionalen Datenbank ändern möchte. Diese Situationen werden häufig von geschäftlichen Anforderungen gesteuert, z. B. das Freigeben der Datenbank in einem Pool von Analysis Services-Servern für eine bessere Benutzererfahrung.
Ein Datenbankmodus kann auf viele Arten gewechselt werden. In diesem Dokument werden die folgenden allgemeinen Szenarien erläutert:
Interaktive Verwendung von SQL Server Management Studio
Programmgesteuerte Verwendung von AMO
Per Skript unter Verwendung von XMLA
Prozeduren
So wechseln Sie den Lese-/Schreibmodus einer Datenbank interaktiv mit Management Studio
Suchen Sie die Datenbank, die im linken oder rechten Bereich von Management Studio gewechselt werden soll.
Klicken Sie mit der rechten Maustaste auf die Datenbank, und wählen Sie "Eigenschaften" aus. Suchen Sie den Datenbankordner, und notieren Sie sich den Speicherort. Ein leerer Datenbankspeicherort gibt an, dass sich der Datenbankordner im Serverdatenordner befindet.
Von Bedeutung
Sobald die Datenbank getrennt ist, kann Management Studio Ihnen nicht mehr beim Abrufen des Datenbankspeicherorts helfen.
Klicken Sie mit der rechten Maustaste auf die Datenbank, und wählen Sie "Trennen" aus...
Weisen Sie der Datenbank ein Kennwort zu, das getrennt werden soll, und klicken Sie dann auf 'OK ', um den Befehl zum Trennen auszuführen.
Suchen Sie den Ordner "Datenbanken" im linken oder rechten Bereich von Management Studio.
Klicken Sie mit der rechten Maustaste auf den Ordner "Datenbanken ", und wählen Sie "Anfügen" aus...
Geben Sie im Ordnertextfeld den ursprünglichen Speicherort des Datenbankordners ein. Alternativ können Sie die Schaltfläche "Durchsuchen" (...) verwenden, um den Datenbankordner zu suchen.
Wählen Sie den Lese-/Schreibmodus für die Datenbank aus.
Geben Sie das Kennwort ein, das in Schritt 3 verwendet wurde, und klicken Sie auf "OK ", um den Befehl "Anfügen" auszuführen.
Um den Lese-/Schreibmodus einer Datenbank programmgesteuert mithilfe von AMO zu ändern
- Passen Sie in Ihrer C#-Anwendung den folgenden Beispielcode an, und führen Sie die angegebenen Aufgaben aus.
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[] 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);
}
}
Rufen Sie in Ihrer C#-Anwendung
SwitchReadWrite()mit den erforderlichen Parametern auf.Kompilieren und Ausführen des Codes zum Verschieben der Datenbank.
So setzen Sie den Lese-/Schreibmodus mithilfe von XMLA in eine Datenbank um
Suchen Sie die Datenbank, die im linken oder rechten Bereich von Management Studio gewechselt werden soll.
Klicken Sie mit der rechten Maustaste auf die Datenbank, und wählen Sie "Eigenschaften" aus. Suchen Sie den Datenbankordner, und notieren Sie sich den Speicherort. Ein leerer Datenbankspeicherort gibt an, dass sich der Datenbankordner im Serverdatenordner befindet.
Von Bedeutung
Sobald die Datenbank getrennt ist, kann Management Studio Ihnen nicht mehr beim Abrufen des Datenbankspeicherorts helfen.
Öffnen Sie eine neue XMLA-Registerkarte in Management Studio.
Kopieren Sie die folgende Skriptvorlage für XMLA:
<Detach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>%dbName%</DatabaseID>
<Password>%password%</Password>
</Object>
</Detach>
Ersetzen Sie
%dbName%durch den Datenbanknamen und%password%durch das Kennwort. Die % Zeichen sind Teil der Vorlage und müssen entfernt werden.Führen Sie den XMLA-Befehl aus.
Kopieren Sie die folgende XMLA-Skriptvorlage in eine neue XMLA-Registerkarte
<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>
Ersetzen Sie
%dbFolder%durch den vollständigen UNC-Pfad des Datenbankordners,%ReadOnlyMode%durch den entsprechenden Wert, entwederReadOnlyoderReadWrite, und%password%durch das Passwort. Die % Zeichen sind Teil der Vorlage und müssen entfernt werden.Führen Sie den XMLA-Befehl aus.
Siehe auch
Attach*
Microsoft.AnalysisServices.Database.Detach*
Anfügen und Trennen von Analysis Services-Datenbanken
Speicherort der Datenbank
Database ReadWriteModes
Element anfügen
Element entfernen
ReadWriteMode-Element
DbStorageLocation-Element