Implementando Política de Recuperação para os Bancos de Dados do Sistema Os bancos de dados Master, MSDB e Model constituem o cerébro do servidor SQL Server. Cada um deles exerce funcionalidades distintas e importantes para o bom funcionamento geral do SGBD. Realizar qualquer alteração das informações contidas nestes banco de dados deve ser implementada com precaução. Realizar modificações no seu servidor de banco de dados, alterando o tamanho dos bancos de dados ou adição de novos usuários, por exemplo, além de informações de configuração do SQL Server são situações onde é necessário possuímos uma cópia de segurança, a fim de que possamos garantir que em caso de alguma falha ou indisponibilidade destas bases de dados, possamos recuperá-los. Conhecendo o Banco de Dados Máster O banco de dados Master contém os metadatas dos seus bancos de dados (configuração de banco de dados e localização de arquivos), logins e informações de configuração de sua instância SQL Server. Se este importante banco de dados for perdido, o seu servidor SQL pode não ser capaz de iniciar. Execute a seguinte consulta, onde é possível verificar quais bancos de dados estão instalados no servidor, como mostra a Figura 1. A função deste de banco de dados foi um pouco diminuída no SQL Server 2005 com a adição do banco de dados Resource, mas ele não é menos importante. A principal diferença entre eles é que o banco de dados Master mantém dados específicos para a instância, enquanto o banco de dados de Resource apenas mantém o schema e stored procedures necessários para execução de sua instância. Os seguintes itens devem provocar a realização de uma cópia de segurança para a base de dados Master: Instrução SQL de CREATE, ALTER ou DROP. Alteração no Log de Transações Adição ou remoção de um dispositivo espelhado Adição ou remoção de servidores remotos Adição ou remoção de um login Qualquer alteração na configuração do seu servidor SQL Server. O tamanho do banco de dados Master é outra consideração importante. Por padrão, nas versões atuais do SQL Server 2005, a base de dados Master é definida em 25 Mb. Este valor é totalmente dependente do sistema que ele deve suportar. Conhecendo o Banco de Dados MODEL O banco de dados MODEL é uma referência para criar novos bancos de dados definidos por usuário. As tabelas de sistema de bancos de dados definidos pelo usuário são armazenadas no Model. Qualquer store procedure ou usuários que necessitam existir em todos os bancos de dados devem ser colocados no banco de dados Model. Colocando-os nesse banco de dados, eles serão copiados para cada banco de dados sucessivo que é criado. A única vez que isto não se aplica é quando restauramos ou anexarmos um banco de dados de um servidor diferente. Importante: Cuidado em colocar objetos neste banco de dados. Esta ação aumentará o tamanho mínimo dos seus bancos de dados e pode acrescentar objetos desnecessários a estas bases de dados. Conhecendo o Banco de Dados Msdb O MSDB é um banco de dados do sistema que contém informações usadas pelo agente do SQL Server, log shipping, o SSIS e o sistema de backup e restauração para o mecanismo de banco de dados relacional. Ele é basicamente uma lista de tarefas do seu servidor. Você pode acrescentar tarefas a este banco de dados que será executada em uma determinada base de dados. O banco de dados armazena todas as informações sobre os jobs, operadores, alertas e histórico de jobs. Porque ela contém este dados importantes ao nível do sistema, devemos realizar backup deste banco de dados regularmente. Este banco de dados Msdb permite que você gerencie pro ativamente o seu servidor SQL Server. Usado principalmente pelo serviço SQL Executive que proporciona agendamento de tarefas, replicação e gerenciamento de alertas. Conhecendo o Banco de Dados Tempdb Mesmo não fazendo parte das bases de dados do sistema que caracterizam o coração do SQL Server, entender como funcionar o Tempdb poderá auxiliá-lo no refinamento de uma estratégia de backup. O banco de dados Tempdb assemelha-se como arquivo de swap para seu banco de dados. É usado para manter objetos temporários de todos os logins e o servidor pode usar este banco de dados para manter temporariamente tabelas para resultados intermediários através da ordenação. O banco de dados Tempdb é criado cada vez que reiniciamos o SQL Server. Ele será recriado para seu tamanho original quando o SQL Server é parado. Como o banco de dados é recriado cada vez, não há nenhuma razão para realizar backups. Quando criamos um objeto temporário no banco de dados Tempdb, ele grava informações mínimas no arquivo de log. É importante ter espaço suficiente alocado para o banco de dados Tempdb, porque muitas operações que podemos usar em nossas aplicações de banco de dados usam o Tempdb. Em geral, precisamos definir o Tempdb com Autogrow como ele precisa de espaço. Se houver espaço suficiente, o usuário pode receber uma das seguintes erros: Tabela 1. Mensagens de erros mais comuns quando não há espaço suficiente no banco de dados Tempdb. Implementando a restauração das bases de dados do sistema 1. Realize cópia de segurança para os bancos de dados master, msdb e model, como mostra a Figura 1. 2. Realize cópia Feche o SQL Server Management Studio e quaisquer outros programas que tenham alguma conexão com o seu servidor. 3. Devemos parar qualquer serviço que estiver executando no SQL Server. Para isso, no menu Start, selecione All Programs, Microsoft SQL Server 2005, Configuration Tools e escolha a ferramenta de configuração SQL Server Configuration Manager. Nesse passo, é importante você registra quais serviços estavam rodando para que possa iniciá-los novamente mais tarde. Depois de todos os serviços interrompidos, deve ficar assim, como mostra a Figura 2. 4. Devemos iniciar o SQL Server no modo de administração single-user para executamos a restauração da base de dados Master. No menu Start, escolha Execute e digite cmd para podemos utilizar um prompt de comando. Vá para o diretório dos arquivos binários de seu SQL Server, o caminho padrão utilizado pela configuração do SQL Server. C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn 5. Neste diretório execute a seguinte instrução para que possamos iniciar o SQL Server. C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn>sqlservr –m 6. Abra um outro prompt de comando deixando o anterior aberto. Digite sqlcmd –E para conectar-se ao SQL Server. 7. Execute a seguinte instrução T-SQL para restauração do banco de dados Master. Ao inserir uma instrução, pressione a tecla Enter para adicionar uma nova linha e por fim GO para que possa ser executada a instrução completa, como mostra a Figura 3. 8. Mude para o primeiro prompt de comando criado. O SQl Server emitiu um desligamento automático. Agora os prompts de comandos podem ser fechados. 9. No SQL Server Configuration Manager inicie apenas o serviço SQL Server(MSSQLSERVER). Apenas o banco de dados Master deve ser restaurado através de linha de comando os demais bancos de dados, inclusive o MSDB e MODEL podem ser restaurados na ferramenta SQL Server Magament Studio. Como nenhuma conexão com os bancos de dados é permitida durante a restauração, iniciamos apenas o serviço MSSQLSERVER, conforme visto anteriormente. 10. Abra uma nova janela para executar as seguintes instruções T-SQL para recuperar os bancos de dados msdb e model, como mostra a Figura 4. 11. Agora podemos iniciar os demais serviços no SQL Server Configuration Manager que havíamos interrompidos anteriormente. Conclusão Este artigo visa preencher uma lacuna na implementação de backups, mostrando que a execução de backups para os banco de dados de sistema são de extrema necessidade e não podemos deixar de fazê-los.