Spostare un database di Analysis Services
Spesso un amministratore di database di Analysis Services desidera spostare un database multidimensionale o tabulare in un percorso diverso. Si tratta di situazioni dovute frequentemente a esigenze aziendali, ad esempio spostare il database su un disco diverso per prestazioni migliori, guadagnare spazio per la crescita del database o aggiornare un prodotto.
Un database può essere spostato in vari modi. In questo documento vengono illustrati gli scenari comuni seguenti:
In modo interattivo tramite SSMS
A livello di programmazione tramite AMO
Tramite script utilizzando XMLA
Tutti gli scenari richiedono all'utente di accedere alla cartella del database e utilizzare un metodo per lo spostamento dei file nella destinazione finale desiderata.
[!NOTA]
Lo scollegamento di un database senza l'assegnazione di una password lascia il database in uno stato non protetto. Si consiglia di assegnare una password al database per proteggere le informazioni riservate. Inoltre, è necessario applicare la sicurezza dall'accesso corrispondente alla cartella del database, alle sottocartelle e ai file per impedire accessi non autorizzati.
Procedure
Spostamento di un database in modo interattivo tramite SSMS
Individuare il database da spostare nel riquadro sinistro o destro di SSMS.
Fare clic con il pulsante destro del mouse sul database, quindi scegliere Scollega.
Assegnare una password al database da scollegare, quindi fare clic su OK per eseguire il comando.
Utilizzare un meccanismo del sistema operativo o un metodo standard di spostamento file per spostare la cartella del database nel nuovo percorso.
Individuare la cartella Database nel riquadro sinistro o destro di SSMS.
Fare clic con il pulsante destro del mouse sulla cartella Database, quindi scegliere Collega.
Nella casella di testo cartella digitare il nuovo percorso della cartella del database. In alternativa, è possibile utilizzare il pulsante Sfoglia (…) per individuare la cartella del database.
Selezionare la modalità di lettura/scrittura per il database.
Digitare la password utilizzata nel passaggio 3, quindi fare clic su OK per eseguire il comando di collegamento.
Spostamento di un database a livello di programmazione tramite AMO
- Nell'applicazione C# adattare il codice di esempio seguente e completare le attività indicate.
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
}
}
Nell'applicazione C# richiamare MoveDb() con i parametri necessari.
Compilare ed eseguire il codice per spostare il database.
Spostamento di un database tramite script utilizzando XMLA
Aprire una nuova scheda XMLA in SSMS.
Copiare il modello di script seguente per XMLA:
<Detach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>%dbName%</DatabaseID>
<Password>%password%</Password>
</Object>
</Detach>
Sostituire %dbName% con il nome del database e %password% con la password. I caratteri % fanno parte del modello e devono essere rimossi.
Eseguire il comando XMLA.
Utilizzare un meccanismo del sistema operativo o un metodo standard di spostamento file per spostare la cartella del database nel nuovo percorso.
Copiare il modello di script seguente per XMLA in una nuova scheda 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>
Sostituire %dbFolder% con il percorso completo in formato UNC della cartella del database, %ReadOnlyMode% con il valore ReadOnly o ReadWrite corrispondente e %password% con la password. I caratteri % fanno parte del modello e devono essere rimossi.
Eseguire il comando XMLA.
Vedere anche
Riferimento
Concetti
Collegamento e scollegamento di database di Analysis Services