Een Analysis Services-database omschakelen tussen de modus ReadOnly en de modus ReadWrite

Van toepassing op: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Sql Server Analysis Services-databasebeheerders kunnen de lees-/schrijfmodus van een tabellaire of multidimensionale database wijzigen als onderdeel van een grotere inspanning die een queryworkload over meerdere alleen-queryservers distribueert.

Een databasemodus kan op verschillende manieren worden overgeschakeld. In dit document worden de volgende veelvoorkomende scenario's uitgelegd:

  • Interactief sql Server Management Studio gebruiken

  • Programmeerbaar met behulp van AMO

  • Script met behulp van XMLA of TMSL

De lees-/schrijfmodus van een database interactief wijzigen met Management Studio

  1. Klik in Objectverkenner met de rechtermuisknop op de database en selecteer Eigenschappen.

    Noteer de locatie. Een lege opslaglocatie voor de database geeft aan dat de databasemap zich in de servergegevensmap bevindt.

  2. Klik met de rechtermuisknop op de database en selecteer Loskoppelen...

  3. Wijs een wachtwoord toe aan de database die moet worden losgekoppeld en klik vervolgens op OK om de opdracht Loskoppelen uit te voeren.

  4. Klik in Objectverkenner met de rechtermuisknop op de map Databases en selecteer Bijvoegen...

  5. Typ in het tekstvak van de map de oorspronkelijke locatie van de databasemap. U kunt ook de bladerknop (...) gebruiken om de databasemap te zoeken.

  6. Selecteer de lees-/schrijfmodus voor de database.

  7. Typ het wachtwoord en klik op OK om de opdracht attach uit te voeren.

De lees-/schrijfmodus programmatisch overschakelen naar een database met behulp van AMO

Roep SwitchReadWrite() in uw C#-toepassing aan met de benodigde parameters. Compileer en voer uw code uit om de database te verplaatsen.

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

De lees-/schrijfmodus naar een database overschakelen met behulp van XMLA

De volgende instructies zijn van toepassing op multidimensionale databases en tabellaire databases in de compatibiliteitsmodus 1050, 1100 of 1103.

  1. Klik in Objectverkenner met de rechtermuisknop op de database en selecteer Eigenschappen.

    Noteer de locatie. Een lege opslaglocatie voor de database geeft aan dat de databasemap zich in de servergegevensmap bevindt.

  2. Klik met de rechtermuisknop op de database en selecteer Loskoppelen...

  3. Open een nieuw XMLA-tabblad in Management Studio.

  4. Kopieer de volgende scriptsjabloon voor XMLA:

    <Detach xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">  
       <Object>  
          <DatabaseID>%dbName%</DatabaseID>  
          <Password>%password%</Password>  
       </Object>  
    </Detach>  
    
  5. Vervang %dbName% door de naam van de database en %password% door het wachtwoord. De % tekens maken deel uit van de sjabloon en moeten worden verwijderd.

  6. Voer de XMLA-opdracht uit.

  7. Kopieer de volgende scriptsjabloon voor XMLA op een nieuw XMLA-tabblad

    <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. Vervang %dbFolder% door het volledige UNC-pad van de databasemap, %ReadOnlyMode% door de bijbehorende waarde ReadOnly of ReadWrite, en %password% door het wachtwoord. De % tekens maken deel uit van de sjabloon en moeten worden verwijderd.

  9. Voer de XMLA-opdracht uit.

Zie ook

Hoge beschikbaarheid en schaalbaarheid in Analysis Services
Databases van Analysis Services koppelen en loskoppelen
Locatie van databaseopslag
Database ReadWriteModes
Element bijvoegen
Element loskoppelen
ReadWriteMode Element
DbStorageLocation-element