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

Spesso un amministratore di un database di Analysis Services desidera modificare la modalità lettura/scrittura di un database tabulare o multidimensionale. Queste situazioni sono dovute frequentemente a esigenze aziendali, ad esempio condividere il database fra un pool di server Analysis Services per una migliore esperienza utente.

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

  • In modo interattivo tramite 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 di cui cambiare la modalità nel riquadro sinistro o destro di Management Studio.

  2. Fare clic con il pulsante destro del mouse sul database, quindi 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.

    Nota importanteImportante

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

  3. Fare clic con il pulsante destro del mouse sul database, quindi 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, quindi scegliere Collega.

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

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

  9. Digitare la password utilizzata nel passaggio 3, quindi fare clic su OK per eseguire il comando di collegamento.

Per attivare la modalità lettura/scrittura 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 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 di cui cambiare la modalità nel riquadro sinistro o destro di Management Studio.

  2. Fare clic con il pulsante destro del mouse sul database, quindi 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.

    Nota importanteImportante

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

  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

Riferimento

Elemento Attach

Elemento Detach

Elemento ReadWriteMode

Elemento DbStorageLocation

Attach

Detach

Concetti

Collegamento e scollegamento di database di Analysis Services

Percorso di archiviazione dei database

Proprietà ReadWriteMode del database