Freigeben über


Verschieben einer Analysis Services-Datenbank

Es gibt häufig Situationen, in denen ein Analysis Services-Datenbankadministrator (dba) eine multidimensionale oder tabellarische Modelldatenbank an einen anderen Speicherort verschieben möchte. Diese Situationen werden häufig von geschäftlichen Anforderungen gesteuert, z. B. das Verschieben der Datenbank auf einen anderen Datenträger, um eine bessere Leistung zu erzielen, Platz für datenbankwachstum zu gewinnen oder ein Produkt zu aktualisieren.

Eine Datenbank kann auf viele Arten verschoben werden. In diesem Dokument werden die folgenden allgemeinen Szenarien erläutert:

  • Interaktive Verwendung von SSMS

  • Programmgesteuerte Verwendung von AMO

  • Per Skript unter Verwendung von XMLA

Für alle Szenarien muss der Benutzer auf den Datenbankordner zugreifen und eine Methode zum Verschieben der Dateien in das gewünschte endgültige Ziel verwenden.

Hinweis

Wenn Sie eine Datenbank trennen, ohne ihr ein Kennwort zuzuweisen, bleibt die Datenbank in einem unsicheren Zustand. Es wird empfohlen, der Datenbank ein Kennwort zum Schutz vertraulicher Informationen zuzuweisen. Außerdem sollte die entsprechende Zugriffssicherheit auf den Datenbankordner, Unterordner und Dateien angewendet werden, um nicht autorisierten Zugriff darauf zu verhindern.

Prozeduren

Interaktives Verschieben einer Datenbank mithilfe von SSMS

  1. Suchen Sie die Datenbank, die im linken oder rechten Bereich von SSMS verschoben werden soll.

  2. Klicken Sie mit der rechten Maustaste auf die Datenbank, und wählen Sie "Trennen" aus...

  3. Weisen Sie der Datenbank ein Kennwort zu, das getrennt werden soll, und klicken Sie dann auf 'OK ', um den Befehl zum Trennen auszuführen.

  4. Verwenden Sie einen beliebigen Betriebssystemmechanismus oder Ihre Standardmethode zum Verschieben von Dateien, um den Datenbankordner an den neuen Speicherort zu verschieben.

  5. Suchen Sie den Ordner "Datenbanken" im linken oder rechten Bereich von SSMS.

  6. Klicken Sie mit der rechten Maustaste auf den Ordner "Datenbanken ", und wählen Sie "Anfügen" aus...

  7. Geben Sie im Textfeld "Ordner " den neuen Speicherort des Datenbankordners ein. Alternativ können Sie die Schaltfläche "Durchsuchen" (...) verwenden, um den Datenbankordner zu suchen.

  8. Wählen Sie den ReadWrite Modus für die Datenbank aus.

  9. Geben Sie das in Schritt 3 verwendete Kennwort ein, und klicken Sie auf "OK ", um den Befehl "Anfügen" auszuführen.

Programmgesteuertes Verschieben einer Datenbank mithilfe von AMO

  1. Passen Sie in Ihrer 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

}

}

  1. Rufen Sie in Ihrer C#-Anwendung MoveDb() mit den erforderlichen Parametern auf.

  2. Kompilieren und Ausführen des Codes zum Verschieben der Datenbank.

Verschieben einer Datenbank mit einem Skript unter Verwendung von XMLA

  1. Öffnen Sie eine neue XMLA-Registerkarte in SSMS.

  2. Kopieren der folgenden Skriptvorlage für XMLA

<Detach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">

<Object>

<DatabaseID>%dbName%</DatabaseID>

<Password>%password%</Password>

</Object>

</Detach>

  1. Ersetzen Sie %dbName% durch den Datenbanknamen und %password% durch das Kennwort. Die % Zeichen sind Teil der Vorlage und müssen entfernt werden.

  2. Führen Sie den XMLA-Befehl aus.

  3. Verwenden Sie einen beliebigen Betriebssystemmechanismus oder Ihre Standardmethode zum Verschieben von Dateien, um den Datenbankordner an den neuen Speicherort zu verschieben.

  4. 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>

  1. Ersetzen Sie %dbFolder% durch den vollständigen UNC-Pfad des Datenbankordners, %ReadOnlyMode% durch den entsprechenden Wert, entweder ReadOnly oder ReadWrite, und %password% durch das Passwort. Die % Zeichen sind Teil der Vorlage und müssen entfernt werden.

  2. 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