Compartilhar via


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

Geralmente há situações em que um administrador de banco de dados do Analysis Services (dba) desejar alterar o modo de leitura/gravação de um banco de dados tabular ou multidimensional. Essas situações frequentemente são conduzidas pelas necessidades comerciais, como compartilhar o banco de dados em um pool de servidores do Analysis Services para melhorar a experiência do usuário.

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

  • Usando o SQL Server Management Studio de modo interativo

  • Usando o AMO de maneira programática

  • Por script usando XMLA

Procedimentos

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

  1. Localize o banco de dados a ser alternado no painel esquerdo ou direito do Management Studio.

  2. Clique com o botão direito do mouse no banco de dados e selecione Propriedades. Localize a pasta do banco de dados e 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.

    Observação importanteImportante

    Assim que o banco de dados for desanexado, o Management Studio já não pode lhe ajudar a obter o local do banco de dados.

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

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

  5. Localize a pasta Bancos de Dados no painel esquerdo ou direito do Management Studio.

  6. Clique com o botão direito do mouse na pasta Bancos de Dados e selecione Anexar...

  7. Na caixa de texto pasta, digite o local original da pasta do banco de dados. Opcionalmente, você pode usar o botão Navegar (.) para localizar a pasta do banco de dados.

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

  9. Digite a senha usada na etapa 3 e clique em OK para executar o comando Anexar.

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

  • Em seu aplicativo C#, adapte o seguinte código de amostra e conclua as tarefas indicadas.

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. Em seu aplicativo C#, chame SwitchReadWrite() com os parâmetros necessários.

  2. Compile e execute seu código para mover o banco de dados.

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

  1. Localize o banco de dados a ser alternado no painel esquerdo ou direito do Management Studio.

  2. Clique com o botão direito do mouse no banco de dados e selecione Propriedades. Localize a pasta do banco de dados e 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.

    Observação importanteImportante

    Assim que o banco de dados for desanexado, o Management Studio já não pode lhe ajudar a obter o local do banco de dados.

  3. Abra uma nova guia XMLA em Management Studio.

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

<Detach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">

<Object>

<DatabaseID>%dbName%</DatabaseID>

<Password>%password%</Password>

</Object>

</Detach>

  1. Substitua %dbName% pelo nome do banco de dados e %password% pela senha. Os caracteres % fazem parte do modelo e devem ser removidos.

  2. Execute o comando XMLA.

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

  2. Execute o comando XMLA.

Consulte também

Referência

Elemento Attach

Elemento Detach

Elemento ReadWriteMode

Elemento DbStorageLocation

Attach

Detach

Conceitos

Anexar e desanexar bancos de dados do Analysis Services

Local de armazenamento do banco de dados

Banco de dados ReadWriteModes