Estratégias de backup com o Analysis Services do SQL Server 2005

Publicado em: 23 de agosto de 2005
Por Edward Melomed

Resumo: este white paper aborda resumidamente várias questões relacionadas à execução do comando Backup do Analysis Services. Você aprenderá a escolher a estratégia correta de backup, conhecerá as várias opções oferecidas no comando Backup e verá um exemplo de como automatizar o backup do Analysis Services.

Nesta página

Visão geral
Interface do usuário de backup
Comando Backup
Estratégias de backup
Considerações sobre o desempenho do backup
Automatizando do backup usando trabalhos do SQL Server Agent

Visão geral

As operações de backup e restauração são uma parte integral da infra-estrutura do Analysis Services. No Analysis Services do Microsoft® SQL Server™ 2005, a operação de backup foi completamente recriada.

Vamos examinar o diagrama a seguir, que mostra a interação do Analysis Services com o backup e os arquivos de dados:

Figura 1

Figura 1

O backup e a restauração são feitos emitindo comandos do XML for Analysis para o Analysis Services.

Depois de receber um comando Backup, o Analysis Services determina quais arquivos devem constituir pacotes no arquivo único de backup. Ele se encarregará da consistência do banco de dados no momento do backup e da restauração. Ele se assegurará de que todos os objetos do arquivo de backup sejam da mesma versão.

Também é importante mencionar a granularidade do backup e da restauração. Faça o backup de todo o banco de dados do Analysis Services em um só arquivo e restaure todo o banco de dados da mesma forma.

Interface do usuário de backup

O primeiro e mais fácil local para iniciar o exame do recurso de backup é utilizar a interface do usuário de backup fornecida com o SQL Server Management Studio.

Para usar a interface do usuário de backup:

  1. Inicie o SQL Server Management Studio.

  2. Abra a conexão com o servidor do Analysis Services.

  3. Clique com o botão direito do mouse no banco de dados do qual será feito o backup e selecione Back up.

    Você verá a caixa de diálogo Backup Database, como mostrado na Figura 2. Nessa caixa de diálogo, há uma série de configurações a serem feitas.

    Figura 2

    Figura 2

  4. Insira o nome e o local do arquivo de backup.

  5. Para criptografar o arquivo de backup, selecione Encrypt backup file e forneça uma senha.

  6. É possível criar um script para o comando Backup. Clique em Script, na parte superior da caixa de diálogo, para obter um script semelhante ao seguinte:

    
    <Backup xmlns="https://schemas.microsoft.com/analysisservices/2003/engine"> 
      <Object> 
        <DatabaseID>FoodMart 2000</DatabaseID> 
      </Object> 
      <File>FoodMart 2000.abf</File> 
    </Backup>
    

    A execução desse script fará o backup do banco de dados no arquivo FoodMart 2000.abf que, por padrão, está localizado em sua pasta C:\Arquivos de Programas\Microsoft SQL Server\MSSQL.1\OLAP\Backup.

Comando Backup

A DDL do comando Backup é semelhante ao seguinte:


<Backup> 
<object>object_ref</object> 
<File>BackupFile</File>  
[<AllowOverwrite>true/false</AllowOverwrite>] 
[<BackupRemotePartitions>true/false</BackupRemotePartitions >] 
[<Locations> 
           [<Location> 
<File>BackupFile</File>  
<DataSourceID>Datasource ID</DataSourceID> 
           </Location >] 
      </Locations>] 
[<ApplyCompression>true/false</ApplyCompression >] 
[<Password>Password</Password>] 
</Backup>

Com a utilização do argumento Location do comando Backup, é possível controlar se um único comando Backup fará ou não o backup de um banco de dados que resida em vários servidores, caso haja partições remotas.

Conforme mostra a Figura 3, se houver partições remotas no servidor subordinado, com o envio do comando Backup ao servidor mestre e a especificação das informações corretas no argumento Location, é possível se assegurar de que um só comando Backup fará o backup do banco de dados inteiro. Isso fará com que os servidores mestre e subordinado criem dois arquivos de backup que constituem o backup total.

Figura 3

Figura 3

Opções do comando Backup

É possível especificar se uma operação de backup compactará os arquivos de dados. Normalmente, isso não resultará em muitas melhorias para os arquivos de partição, principalmente porque eles já são armazenados no formato compactado. No entanto, em arquivos atribuídos às dimensões, você observará alguma economia de espaço, especialmente se estiver usando várias seqüências de caracteres nas dimensões.

A opção de senha permite especificar se o arquivo de backup será ou não criptografado. O Analysis Services não armazenará a senha digitada. É responsabilidade do administrador do banco de dados mantê-la em um local seguro.

Estratégias de backup

É importante escolher a estratégia correta para o backup de bancos de dados do Analysis Services. Com a estratégia incorreta, pode-se perder muito espaço caso sejam feitos muitos backups. Ou pode-se descobrir que o backup não era recente o bastante e talvez tenha ocorrido a perda de dados.

É importante entender o modo de armazenamento de objetos do Analysis Server.

Se todas as partições e dimensões do banco de dados usam o modo de armazenamento OLAP, em vez de ROLAP e HOLAP, os dados que estão sendo importados para o banco de dados do Analysis Services são alterados apenas no momento do processamento. Portanto, faz sentido fazer o backup dos dados logo após o processamento.

Se você usa o modo de armazenamento ROLAP ou HOLAP para os objetos do banco de dados do Analysis Services, deve entender que o Analysis Services não está de fato mantendo os dados. As atualizações e os dados mais recentes serão dinamicamente lidos para você pelo Analysis Services.

Nesse caso, as informações mais importantes para o backup não são os dados que o Analysis Services mantém, mas as definições de objetos.

Se o seu banco de dados for completamente ROLAP, você poderá emitir o mesmo comando Backup e fazer o backup de seu banco de dados em um arquivo comparativamente pequeno.

Se você usar HOLAP ou algum tipo de solução proativa de cache, provavelmente será melhor criar um script para os objetos do banco de dados usando as interfaces fornecidas pelos AMOs (Analysis Management Objects). Fazer backup em um caso como esse seria um exagero. Os dados que passariam por backup seriam apenas um cache que poderia ser recriado quando o banco de dados voltasse a ficar online.

O que nos leva ao caso em que você já tem um backup do banco de dados relacional e tem certeza absoluta de que poderá reprocessar o banco de dados do Analysis Services quando restaurar a parte relacional do data warehouse.

Nesse caso, para preservar o espaço para backup e o tempo necessário para fazê-lo, convém fazer o backup apenas da instrução Create do banco de dados.

Observe que, nesse caso, será necessário reprocessar completamente o banco de dados do Analysis Services depois de criá-lo a partir do zero. Antes de escolher essa estratégia, faça um teste de execução de seu procedimento de restauração, assegurando-se de que poderá reverter tudo.

Write-back

Se você estiver usando o recurso Write-back do Analysis Services, faça o backup de suas tabelas relacionais de write-back.

Log de consulta

Se você usar o log de consulta para coletar informações estatísticas de seu banco de dados para, posteriormente, poder otimizar o desempenho da consulta usando a análise com base na utilização, também deverá fazer o backup da tabela de logs de consulta.

Observe que a tabela de logs de consulta contém informações sobre todos os bancos de dados no servidor. A restauração da tabela de logs de consulta redefinirá as estatísticas de todos os bancos de dados.

Use a coluna Database da tabela de logs de consulta para determinar quais informações são relacionadas com o banco de dados e faça backup apenas dessas informações.

Segurança do backup

A operação de backup deve ser executada por administradores do Analysis Services ou por administradores do banco de dados.

Considerações sobre o desempenho do backup

Há duas operações principais executadas pelo Analysis Services durante o backup:

  1. Saber quais arquivos serão transmitidos para o arquivo de backup.

  2. Criar o arquivo de backup.

A primeira operação é extremamente rápida, e você não observará nenhuma atividade significativa do processador durante essa fase.

A segunda parte é uma operação com muito movimento de E/S.

O Analysis Services iniciará a transmissão dos arquivos de dados para um arquivo de backup.

Colocar o arquivo de backup em uma unidade separada melhora o desempenho da operação de backup. Isso impede a colisão das operações de leitura com as operações de gravação.

A operação de backup obterá um bloqueio de leitura no banco de dados no qual ela estiver operando. Você está apto a iniciar a operação de processamento. No entanto, a operação de processamento só poderá ser confirmada após a conclusão do backup.

Backup bruto

Em determinadas situações, é possível fazer o backup de toda a pasta de dados, para garantir a possibilidade de recuperação em caso de desastres.

Alguns clientes do Analysis Services do SQL Server 2000 usaram esse método para fazer backup de seus sistemas.

No Analysis Services do SQL Server 2005, essa abordagem não é recomendada até que você tenha certeza de ter feito uma análise completa da configuração e de ter levado em consideração todas as advertências.

A seguir está um exemplo de lista de preocupações.

  • Só é possível fazer backup de toda a pasta de dados que contém todos os dados do Analysis Services, e não somente de um banco de dados.

  • Ao usar a propriedade StorageLocation em uma partição, é necessário manter controle sobre todas as partições colocadas em diferentes locais do sistema de arquivos.

  • Se você estiver usando partições remotas e pretender restaurar a pasta de dados em uma máquina com outro nome, será necessário ajustar todas as fontes de dados utilizadas para especificar os locais das partições remotas.

Automatizando do backup usando trabalhos do SQL Server Agent

Há várias maneiras de se automatizar um backup do Analysis Services.

Vamos examinar a automatização oferecida pelos trabalhos do SQL Server Agent.

Para gerenciar um backup usando os trabalhos do SQL Server Agent:

  1. Clique com o botão direito do mouse no nó Jobs sob SQL Server Agent no SQL Server Management Studio e inicie a criação de um novo trabalho.

    Você verá a caixa de diálogo da Figura 4.

    Figura 4

    Figura 4

  2. Atribua um nome ao trabalho na caixa de texto Name.

  3. Clique no nó Steps, no painel esquerdo, e clique em New para criar uma nova etapa no trabalho. Você verá a caixa de diálogo mostrada na Figura 5.

  4. Atribua um nome à etapa e escolha o tipo de etapa SQL Server Analysis Services Command.

  5. Forneça o nome do servidor do Analysis Services no qual deseja executar esse comando. Em seguida, copie e cole na janela Command o comando Backup que será executado.

    Figura 5

    Figura 5

  6. Clique em OK na caixa de diálogo New Job Step (Figura 5) e em OK na caixa de diálogo New Job (Figura 4).

  7. Volte ao SQL Management Studio e você encontrará um novo nó para o trabalho recém-criado.

  8. Clique com o botão direito do mouse no novo nó e inicie o trabalho.

    Você verá uma caixa de diálogo de andamento e, então, verá o backup criado.

A partir deste ponto, você pode usar toda a potência do SQL Server Agent para gerenciar o trabalho.

Por exemplo, é possível adicionar outra etapa para copiar o arquivo do banco de dados em um lugar seguro e assim por diante.

O SQL Server Agent também oferece a capacidade de examinar o histórico da execução dos trabalhos e vários outros recursos interessantes.

Depois de aprender todas as opções do comando Backup, escolher a estratégia correta de backup e assegurar-se de que os scripts de automatização estejam funcionando, você estará mais confiante em sua capacidade de se recuperar de um desastre.