Verschieben einer Analysis Services Datenbank
Häufig entstehen Situationen, in denen ein Analysis Services-Datenbankadministrator (dba) eine mehrdimensionale oder tabellarische Datenbank an einen anderen Speicherort verschieben möchte. Dies geschieht häufig in Fällen, in denen eine Datenbank zur Leistungsverbesserung auf einen anderen Datenträger verschoben wird, Platz für ein größeres Datenbankvolumen geschaffen oder ein Upgrade für ein Produkt ausgeführt werden soll.
Es stehen zahlreiche Möglichkeiten zum Verschieben einer Datenbank zur Verfügung. In diesem Dokument werden die folgenden gängigen Szenarien erläutert:
Interaktiv mithilfe von SSMS
Programmgesteuert mithilfe von AMO
Mit einem Skript mithilfe von XMLA
In allen Szenarien muss der Benutzer auf den Datenbankordner zugreifen und eine Methode zum Verschieben der Dateien an das gewünschte endgültige Ziel verwenden.
Hinweis |
---|
Wenn Sie eine Datenbank trennen, ohne ihr ein Kennwort zuzuweisen, befindet sich die Datenbank in einem ungesicherten Zustand. Es wird daher empfohlen, dass Sie der Datenbank ein Kennwort zuweisen, um vertrauliche Informationen zu schützen. Zudem sollten Sie die entsprechende Zugriffssicherheit auf den Datenbankordner, die Unterordner und die Dateien anwenden, um den nicht autorisierten Zugriff darauf zu verhindern. |
Verfahrensweisen
Interaktives Verschieben einer Datenbank mithilfe von SSMS
Suchen Sie im linken oder rechten Bereich von SSMS nach der zu verschiebenden Datenbank.
Klicken Sie mit der rechten Maustaste auf die Datenbank, und wählen Sie Trennen… aus.
Weisen Sie der Datenbank, die getrennt werden soll, ein Kennwort zu, und klicken Sie dann auf OK, um den Befehl zum Trennen auszuführen.
Verwenden Sie einen Mechanismus des Betriebssystems oder eine Standardmethode zum Verschieben des Datenbankordners an einen neuen Speicherort.
Suchen Sie im linken oder rechten Bereich von SSMS nach dem Ordner Datenbanken.
Klicken Sie mit der rechten Maustaste auf den Ordner Datenbanken, und wählen Sie Anfügen aus.
Geben Sie im Textfeld Ordner den neuen Speicherort des Datenbankordners ein. Alternativ können Sie über die Schaltfläche zum Durchsuchen (…) nach dem Datenbankordner suchen.
Wählen Sie den Lese-/Schreibmodus für die Datenbank aus.
Geben Sie das in Schritt 3 verwendete Kennwort ein, und klicken Sie auf OK, um den Befehl zum Anfügen auszuführen.
Programmgesteuertes Verschieben einer Datenbank mithilfe von AMO
- Passen Sie in der C#-Anwendung den folgenden Beispielcode an, und führen Sie die angegebenen Aufgaben aus.
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
}
}
Rufen Sie in der C#-Anwendung MoveDb() mit den erforderlichen Parametern auf.
Kompilieren Sie den Code, und führen Sie ihn zum Verschieben der Datenbank aus.
Verschieben einer Datenbank mit einem Skript mithilfe von XMLA
Öffnen Sie in SSMS eine neue XMLA-Registerkarte.
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 Namen der Datenbank und %password% durch das Kennwort. Die %-Zeichen sind Teil der Vorlage und müssen entfernt werden.
Führen Sie den XMLA-Befehl aus.
Verwenden Sie einen Mechanismus des Betriebssystems oder eine Standardmethode zum Verschieben des Datenbankordners an einen neuen Speicherort.
Kopieren Sie die folgende Skriptvorlage für XMLA 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 ReadOnly oder ReadWrite und %password% durch das Kennwort. Die %-Zeichen sind Teil der Vorlage und müssen entfernt werden.
Führen Sie den XMLA-Befehl aus.