Condividi tramite


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

Si applica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

SQL Server Analysis Services gli amministratori del database possono modificare la modalità di lettura/scrittura di un database tabulare o multidimensionale come parte di uno sforzo maggiore che distribuisce un carico di lavoro di query tra più server di sola query.

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 usando XMLA o TMSL

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

  1. In Esplora oggetti fare clic con il pulsante destro del mouse sul database e scegliere Proprietà.

    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.

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

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

  4. In Esplora oggetti fare clic con il pulsante destro del mouse sulla cartella Database e scegliere Collega...

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

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

  7. Digitare la password e fare clic su OK per eseguire il comando di collegamento.

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

Nell'applicazione C# richiamare SwitchReadWrite() con i parametri necessari. Compilare ed eseguire il codice per spostare il database.

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 dataDir = server.ServerProperties["DataDir"].Value;  
                 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);  
    }  
}  
  

Attivare la modalità lettura/scrittura di un database tramite script usando XMLA

Le istruzioni seguenti si applicano a database multidimensionali e tabulari in modalità di compatibilità 1050, 1100 o 1103.

  1. In Esplora oggetti fare clic con il pulsante destro del mouse sul database e scegliere Proprietà.

    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.

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

  3. Aprire una nuova scheda XMLA in Management Studio.

  4. 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>  
    
  5. Sostituire %dbName% con il nome del database e %password% con la password. I caratteri % fanno parte del modello e devono essere rimossi.

  6. Eseguire il comando XMLA.

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

  9. Eseguire il comando XMLA.

Vedere anche

Disponibilità elevata e scalabilità in Analysis Services
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