Condividi tramite


Passare un database di Analysis Services tra le modalità ReadOnly e ReadWrite

Spesso si verificano situazioni in cui un amministratore del database di Analysis Services vuole modificare la modalità di lettura/scrittura di un database tabulare o multidimensionale. Queste situazioni sono spesso basate sulle esigenze aziendali, ad esempio la condivisione del database tra un pool di server Analysis Services per un'esperienza utente migliore.

In un database è possibile passare da una modalità all'altra in vari modi. In questo documento vengono illustrati gli scenari comuni seguenti:

  • Uso interattivo di SQL Server Management Studio

  • A livello di programmazione tramite AMO

  • Tramite script utilizzando XMLA

Procedure

Per attivare la modalità lettura/scrittura di un database in modo interattivo tramite Management Studio

  1. Individuare il database da passare nel riquadro sinistro o destro di Management Studio.

  2. Fare clic con il pulsante destro del mouse sul database e scegliere Proprietà. Individuare la cartella del database e prendere nota del percorso. Un percorso di archiviazione del database vuoto indica che la cartella del database si trova nella cartella di dati del server.

    Importante

    Non appena il database viene scollegato, Management Studio non consente più di ottenere il percorso del database.

  3. Fare clic con il pulsante destro del mouse sul database e scegliere Scollega...

  4. Assegnare una password al database da scollegare, quindi fare clic su OK per eseguire il comando.

  5. Individuare la cartella Database nel riquadro sinistro o destro di Management Studio.

  6. Fare clic con il pulsante destro del mouse sulla cartella Database e scegliere Collega...

  7. Nella casella di testo cartella digitare il percorso originale della cartella del database. In alternativa, è possibile usare il pulsante Sfoglia (...) per individuare la cartella del database.

  8. Selezionare la modalità di lettura/scrittura per il database.

  9. Digitare la password usata nel passaggio 3 e fare clic su OK per eseguire il comando attach.

Per attivare la modalità lettura/scrittura di un database a livello di programmazione tramite AMO

  1. Nell'applicazione C# adattare il codice di esempio seguente e completare le attività indicate.

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);

}

}

  1. Nell'applicazione C# richiamare SwitchReadWrite() con i parametri necessari.

  2. Compilare ed eseguire il codice per spostare il database.

Per attivare la modalità lettura/scrittura di un database tramite script utilizzando XMLA

  1. Individuare il database da passare nel riquadro sinistro o destro di Management Studio.

  2. Fare clic con il pulsante destro del mouse sul database e scegliere Proprietà. Individuare la cartella del database e prendere nota del percorso. Un percorso di archiviazione del database vuoto indica che la cartella del database si trova nella cartella di dati del server.

    Importante

    Non appena il database viene scollegato, Management Studio non consente più di ottenere il percorso del database.

  3. Aprire una nuova scheda XMLA in Management Studio.

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

  1. Sostituire %dbName% con il nome del database e %password% con la password. I caratteri % fanno parte del modello e devono essere rimossi.

  2. Eseguire il comando XMLA.

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

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

  2. Eseguire il comando XMLA.

Vedere anche

Attach*
Microsoft.AnalysisServices.Database.Detach*
Collegare e scollegare database di Analysis Services
Percorso di archiviazione dei database
Proprietà ReadWriteMode del database
Elemento Attach
Elemento Detach
Elemento ReadWriteMode
Elemento DbStorageLocation