Compartilhar via


Criando ou atualizando um banco de dados de relatório

Esse tópico descreve como criar ou atualizar um banco de dados de relatório para ser usado como um banco de dados evolutivo compartilhado. Um banco de dados de relatório pode ser uma cópia de um banco de dados de produção, como nesta figura, ou pode conter dados de relatório importados de um ou mais bancos de dados de produção. O processo de criar ou atualizar um banco de dados de relatório é conhecido como fase de criação ou fase de atualização, dependendo do fato de um novo banco de dados de relatório estar sendo criado ou de um banco de dados de relatório obsoleto estar sendo atualizado.

A vida de um banco de dados evolutivo compartilhado começa pela criação de um novo banco de dados de relatório em um conjunto de volumes de relatório. No final, os dados de relatório se tornam muito desatualizados para serem úteis e o banco de dados de relatório é consideradoobsoleto. Um banco de dados de relatório obsoleto é atualizado como parte de cada ciclo de atualização. A atualização de um banco de dados de relatório obsoleto envolve atualização de seus dados ou criação de uma versão completamente nova do banco de dados.

Para criar ou atualizar um banco de dados de relatório, pode-se usar qualquer um dos métodos de cópia de dados fornecido pelo SQL Server para copiar dados ou bancos de dados. Para obter mais informações, consulte “Métodos para criação ou atualização de um banco de dados de relatório”, mais adiante neste tópico.

Métodos para criação ou atualização de um banco de dados de relatório

ObservaçãoObservação

Antes de um banco de dados de relatório ser criado ou atualizado, seu conjunto de volumes de relatório deve ser montado no servidor de produção e cada um dos volumes deve ser marcado como leitura-gravação. Para uma descrição de todas as etapas desse processo, consulte "Etapas para a criação ou atualização de banco de dados", mais adiante neste tópico.

O SQL Server 2005 e versões posteriores dão suporte aos seguintes métodos para criação ou atualização de um banco de dados de relatório:

  • SQL Server Integration Services (SSIS)

    É possível criar ou copiar um banco de dados executando pacotes SSIS e usando a tarefa Executar SQL ou a tarefa Transferir Banco de Dados:

    • A tarefa Executar SQL executa instruções SQL ou procedimentos armazenados a partir de um pacote. Usando a tarefa Executar SQL é possível criar um banco de dados executando uma instrução CREATE DATABASE e populando o banco de dados fazendo cópias para uma ou mais tabelas ou exibições. Para obter mais informações, consulte Tarefa Executar SQL.

    • A tarefa Transferir Banco de Dados pode copiar um banco de dados na mesma instância de servidor ou entre instâncias. Para obter mais informações, consulte Tarefa Transferir Banco de Dados.

    ObservaçãoObservação

    Também é possível criar um banco de dados usando o Assistente de Importação e Exportação do SQL Server, mas você deve copiar pelo menos uma tabela ou exibição. Para obter mais informações, consulte Importando e exportando dados usando o Assistente de Importação e Exportação do SQL Server.

  • Backup e restauração

    Você pode restaurar um backup de um banco de dados de produção no volume de relatório. Isso envolve restaurar e recuperar um backup de banco de dados completo no volume de relatório.

    • Se você estiver usando a mesma letra de unidade, monte o volume de relatório em um host diferente e faça a conexão com uma instância de servidor para restaurar o banco de dados.

    • Se o volume de relatório usar uma letra de unidade diferente do volume de produção, deve-se adicionar uma cláusula WITH MOVE à sua instrução RESTORE DATABASE que especifica a letra de unidade do volume de relatório no nome do caminho do banco de dados restaurado.

    Para obter mais informações sobre o procedimento de backup e restauração para copiar um bancos de dados, consulte Copiando bancos de dados com backup e restauração.

  • Copiando o banco de dados de produção

    Antes de poder copiar um banco de dados manualmente ou usar o Método Desanexar e Anexar do Assistente para Copiar Banco de Dados, deve-se deixar o banco de dados offline e, depois de copiá-lo, deixá-lo novamente online. Porém, o Assistente para Copiar Banco de Dados oferece um método alternativo, o Método de Transferência SMO, que copia o banco de dados enquanto ele permanece online. Embora mais lento que o Método Desanexar e Anexar, o Método de Transferência SMO oferece a vantagem de preservar conexões ativas com o banco de dados.

    Para obter mais informações, consulte Usando o Assistente para Copiar Banco de Dados.

ObservaçãoObservação

Recomenda-se que você use sempre o mesmo nome de caminho para os bancos de dados de produção e relatório ao criar um banco de dados de relatório, e, se possível, a mesma letra de unidade para o volume de produção e de relatório (quando montado nos servidores de relatório).

Isso pode ser útil para otimizar o banco de dados de relatório para a carga de trabalho de consulta antecipada. Tais otimizações podem incluir:

  • Atualização ou criação de estatísticas em tabelas e índices afetados, conforme necessário.

  • Reconstrução de índices com um fator de preenchimento 100.

  • Colocação do banco de dados de relatório em modo de recuperação simples e execução de um ponto de verificação para truncar o log de transações e salvar espaço de log.

ObservaçãoObservação

Para diretrizes sobre como usar um banco de dados de relatório como banco de dados evolutivo compartilhado, consulte Assegurando um ambiente correto para um banco de dados compartilhado evolutivo.

Quando o banco de dados estiver pronto, deve-se marcar os volumes de relatório como somente leitura e desmontá-los do servidor de produção. Para obter mais informações, consulte "Etapas da fase de criação ou atualização”, mais adiante neste tópico.

Etapas da fase de criação ou atualização

ObservaçãoObservação

Antes de poder atualizar um banco de dados de relatório, seu conjunto de volumes de relatório deve ter sido desmontado de todos os servidores de relatório. Para obter mais informações, consulte Desanexando um banco de dados compartilhado evolutivo.

Para criar ou atualizar um banco de dados de relatório, faça o seguinte no servidor de produção:

  1. Usando os utilitários de seu vendedor de hardware, tire a máscara do LUN (número de unidade lógica) que corresponde a cada volume de relatório para tornar o volume acessível ao servidor de produção. Se o banco de dados usar vários volumes de relatório, execute essa etapa para cada um dos volumes.

  2. Monte cada volume de relatório e marque-os como leitura-gravação. O comando DiskPart listar volumes que exibe todos os discos e volumes em um computador é útil para obter informações de volume. Para usar o utilitário DiskPart para montar o volume, digite os seguintes comandos no prompt de comando:

    DiskPart

    DISKPART> select volume=<drive-number>

    DISKPART> assign letter=<drive-letter>

    DISKPART> attribute clear readonly

    DISKPART> exit

    Onde <drive-number> é o número de volume atribuído pelo sistema operacional do Windows e <drive-letter> é a letra atribuída ao volume de relatório. Se o banco de dados usar vários volumes de relatório, execute essa etapa para cada um dos volumes.

  3. Se você estiver atualizando um banco de dados de relatório existente:

  4. Crie ou atualize o banco de dados.

    O administrador cria ou atualiza o banco de dados usando qualquer um dos métodos, criando ou atualizando um banco de dados de relatório. O banco de dados de relatório pode usar qualquer nome de banco de dados válido. Para obter mais informações, consulte “Métodos para criação ou atualização de um banco de dados”, já mencionado neste tópico.

    ObservaçãoObservação

    Em bancos de dados de relatório, recomendamos que PAGE_VERIFY seja definido como CHECKSUM, o padrão. Para obter mais informações, consulte ALTER DATABASE (Transact-SQL).

  5. Desanexe o banco de dados da instância do servidor de produção.

    Você pode fazer isso usando a seguinte instrução Transact-SQL:

    sp_detach_db @dbname='<database_name>'
    

    Onde <database_name> é o nome do banco de dados.

    ObservaçãoObservação

    Por padrão, sp_detach_db executa UPDATE STATISTICS para criar nova amostra das estatísticas. Porém, algumas implementações podem exigir que você execute UPDATE STATISTICS separadamente com a opção FULL SCAN.

  6. Marque cada volume de relatório como somente leitura e desmonte-os do servidor de produção.

    Para usar o utilitário DISKPART para desmontar o volume, digite os seguintes comandos no prompt de comando:

    DiskPart

    DISKPART> select volume=<drive-number>

    DISKPART> attribute set readonly

    DISKPART> remove

    Onde <drive-number> é o número de volume atribuído pelo sistema operacional do Windows e <drive-letter> é a letra atribuída ao volume de relatório. Se o banco de dados usar vários volumes de relatório, execute essa etapa para cada um dos volumes.

    Observação importanteImportante

    Volumes de relatório devem ser somente leitura antes de serem desmontados do servidor de produção.

Agora, o banco de dados de relatório pode ser disponibilizado como um banco de dados evolutivo compartilhado. Para obter mais informações, consulte Anexando um banco de dados de relatório como um banco de dados compartilhado evolutivo.