Partilhar via


Alternar um banco de dados do Analysis Services entre os modos ReadOnly e ReadWrite

Aplica-se a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

SQL Server Analysis Services administradores de banco de dados podem alterar o modo de leitura/gravação de um banco de dados Tabular ou Multidimensional como parte de um esforço maior que distribui uma carga de trabalho de consulta entre vários servidores somente consulta.

Um modo de banco de dados pode ser alternado de várias formas. Este documento explica os cenários comuns a seguir:

  • Usar interativamente SQL Server Management Studio

  • Usando o AMO de maneira programática

  • Script usando XMLA ou TMSL

Alterne o modo leitura/gravação de um banco de dados de maneira interativa usando o Management Studio

  1. Em Pesquisador de Objetos, clique com o botão direito do mouse no banco de dados e selecione Propriedades.

    Anote o local. Um local de armazenamento de banco de dados vazio indica que a pasta de banco de dados está localizada na pasta de dados do servidor.

  2. Clique com o botão direito do mouse no banco de dados e selecione Desanexar...

  3. Atribua uma senha ao banco de dados a ser desanexado e clique em OK para executar o comando Desanexar.

  4. Em Pesquisador de Objetos, clique com o botão direito do mouse na pasta Bancos de Dados e selecione Anexar...

  5. Na caixa de texto pasta , digite o local original da pasta do banco de dados. Como alternativa, você pode usar o botão Procurar (...) para localizar a pasta do banco de dados.

  6. Selecione o modo leitura/gravação do banco de dados.

  7. Digite a senha e clique em OK para executar o comando Anexar.

Alterne o modo leitura/gravação em um banco de dados usando o AMO de maneira programática

Em seu aplicativo C#, chame SwitchReadWrite() com os parâmetros necessários. Compile e execute seu código para mover o banco de dados.

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

Alterne o modo leitura/gravação para um banco de dados por script usando XMLA

As instruções a seguir se aplicam a bancos de dados Multidimensionais e Tabulares no modo de compatibilidade 1050, 1100 ou 1103.

  1. Em Pesquisador de Objetos, clique com o botão direito do mouse no banco de dados e selecione Propriedades.

    Anote o local. Um local de armazenamento de banco de dados vazio indica que a pasta de banco de dados está localizada na pasta de dados do servidor.

  2. Clique com o botão direito do mouse no banco de dados e selecione Desanexar...

  3. Abra uma nova guia XMLA no Management Studio.

  4. Copie o modelo de script a seguir para XMLA:

    <Detach xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">  
       <Object>  
          <DatabaseID>%dbName%</DatabaseID>  
          <Password>%password%</Password>  
       </Object>  
    </Detach>  
    
  5. Substitua %dbName% pelo nome do banco de dados e %password% pela senha. Os caracteres % fazem parte do modelo e devem ser removidos.

  6. Execute o comando XMLA.

  7. Copiar o modelo de script a seguir para XMLA em uma nova guia 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. Substitua %dbFolder% pelo caminho UNC completo da pasta do banco de dados, %ReadOnlyMode% pelo valor correspondente ReadOnly ou ReadWritee %password% pela senha. Os caracteres % fazem parte do modelo e devem ser removidos.

  9. Execute o comando XMLA.

Consulte Também

Alta disponibilidade e escalabilidade no Analysis Services
Anexar e desanexar bancos de dados do Analysis Services
Local de armazenamento do banco de dados
Banco de dados ReadWriteModes
Elemento Attach
Elemento Detach
Elemento ReadWriteMode
Elemento DbStorageLocation