Spostare un database di Analysis Services
Si applica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
Spesso si verificano situazioni in cui un amministratore del database (dba) SQL Server Analysis Services vuole spostare un database modello multidimensionale o tabulare in una posizione diversa. Queste situazioni spesso sono determinate da esigenze aziendali, ad esempio lo spostamento del database in un disco diverso per migliorare le prestazioni, la necessità di ottenere più spazio per la crescita del database oppure per 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 e 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 e scegliere Collega...
Nella casella di testo cartella digitare il nuovo percorso della cartella del database. In alternativa, è possibile usare il pulsante sfoglia (...) per individuare la cartella del database.
Selezionare la modalità di lettura/scrittura per il database.
Digitare la password usata 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="http://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="http://schemas.microsoft.com/analysisservices/2003/engine">
<Folder>%dbFolder%</Folder>
<ReadWriteMode xmlns="http://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 ReadWritecorrispondente e%password%
con la password. I caratteri % fanno parte del modello e devono essere rimossi.Eseguire il comando XMLA.
Vedere anche
Collegare e scollegare i database di Analysis Services
Percorso di archiviazione dei database
Proprietà ReadWriteMode del database
Elemento Attach
Elemento Detach
Elemento ReadWriteMode
Elemento DbStorageLocation