MCDBA Brasil


  • Home
  • Sobre
  • Contato

Livros





Links Rápidos

SQL Server Builds (All Versions/Editions)


Download SQL Server 2017 (trial)


SQL Server 2017 Feature Pack


SQL Server 2016 Feature Pack


Cumulative Update SQL Server 2017 builds


Cumulative Update SQL Server 2016 builds


Cumulative Update SQL Server 2014 builds


Cumulative Update SQL Server 2012 builds


SQL Server 2005/2008 Samples Databases


Documentando o Servidor SQL Server


Analisando a Performance do Servidor-CheckList


Virtual PASS PT


Faça parte do maior virtual chapter do PASS com conteúdos técnicos em Português sobre SQL Server.

Todos os meses um evento Online para você! Acompanhe aqui os WebCasts já agendados

Sindicalize seu blog ou site ao VirtualPASSPT

SQL Server Blogs

SQL Server Query Processing Team


SQL Programmability & API Development Team


SQL Server Manageability Team


Latin America Support Team


Database + Disk + Performance


Microsoft SQL Server Support


SQL CLR Team


SQL Query Optimization Team


SQL 2005 Code Samples


SQL Server Express Team


SQL SMO Samples


SQL Storage Engine Team


SQL CAT Team


SQL Protocols Team


PSS SQL Server Engineers


Slava Oks on SQLOS


Ken Henderson’s blog


LUTI@Microsoft Blog


kimberly L. Trip’s blog


Fernando Garcia Blog

Dica da Semana

Automatizando Backups no SQL Server Express

por Nilton Pinheiro novembro 30, 2008 Nenhum comentário

Quem trabalha com o SQL Express já deve ter notado que este não vem com o serviço SQL Server Agent. Isto infelizmente impede que você agende Jobs para realizar backups ou qualquer outra atividade de forma automática. Nesta dica, utilizo a procedure expressmaint, desenvolvida por Jasper Smith e disponível para download em seu site, para mostrar como você pode usar esta procedure para automatizar a execução de seus backups no SQL Express.


Passos Necessários:


1) O primeiro passo é acessar seu servidor SQL Express e criar um diretório para o armazenamento dos arquivos de backup e seus respectivos logs. Como exemplo, crie o diretório Backups no disco C: (C:/Backups).
2) O segundo passo é fazer o download da procedure no site de Jasper Smith no link http://www.sqldbatips.com/showcode.asp?ID=26.
3) Selecione o link View Code e salve o script na pasta C:/Backups com o nome expressmaint.sql.
4) Agora é preciso criar esta procedure no banco de dados Master do SQL Express. Para isto, abra uma janela DOS e execute o seguinte comando:


C:/sqlcmd -S ./SQLExpress -i C:/Backups/expressmaint.sql -E


Nota: Altere as barras (/) na linha de comando acima para a barra de separação de diretório.


5) Abra a ferramenta SQL Server Surface Area Configuration (Iniciar|Programas|Microsoft SQL Server 2005|Configuration Tools)
6) Selecione o link Surface Area Configuration for Features
7) Selecione a opção OLE Automation e clique sobre Enable OLE Automation. A ativação deste feature é necessária para o correto funcionamento da procedure.
8) Clique em OK e feche a ferramenta
9) Criada a procedure e ativada a feature de OLE Automation, é preciso então criar um segundo arquivo que quando executado pelo utilitário sqlcmd.exe, irá realizar a chamada da procedure. Para isso, copie o script abaixo e salve-o como um arquivo dentro do diretório C:/Backups com o nome databasemaint.sql.


EXEC expressmaint
@database      = ‘$(DB)’,
@optype        = ‘$(TYPE)’,
@backupfldr    = ‘$(BACKUPFOLDER)’,
@reportfldr    = ‘$(REPORTFOLDER)’,
@dbretainunit  = ‘days’,
@dbretainval   = 1,
@report        = 1


Nota: Uma explicação detalhada de cada parâmetro pode ser vista no link http://www.sqldbatips.com/showarticle.asp?ID=27. Você notará que a procedure é muito poderosa e permite não só a realização de backups, mas também atividades como REINDEX, CHECKDB, REORG entre outros.


10) Criado o arquivo databasemaint.sql, pode-se então usar o utilitário sqlcmd.exe para chamar este arquivo e disparar a procedure expressmaint, executando então o backup desejado. Veja um exemplo na figura abaixo:



Observer que no exemplo o utilitário sqlcmd é chamado passando os seguintes parâmetros:
-S ==> O nome do servidor SQL Express
-E ==> Informa ao utilitário para se conectar no SQL Express usando a conta de usuário logada no Windows.
-i ==> Informa a localização do arquivo databasemaint.sql
-v ==> São os parâmetros utilizados dentro do arquivo databasemaint.sql. Neste caso, o sqlcmd substituirá a variável $(DB) (que está dentro do arquivo), pelo nome do banco passado no parâmetro DB. Aqui você pode passar o nome de um banco específico, ALL_USER para fazer backup de TODOS os bancos de usuário ou ainda ALL_SYSTEM para fazer backup apenas dos bancos de sistema (como visto no segundo exemplo da figura – janela DOS).


Para o parâmetro TYPE, você pode passar:
DB – Para backup Full
DIFF – Para backup differencial
LOG – Para backup de Log
CHECKDB – Para checar a integridade da base ou bases
REINDEX – Para executar um REINDEX nas bases
REORG – Para executar uma reorganização de todos os índices


Os parâmetros BACKUPFOLDER e REPORTFOLDER informam o caminho para armazenar os backups e seus respectivos logs.


11) Uma vez que os backups estão sendo executados com sucesso, você pode automatizar o processo para que este seja executado de forma automática. Como o SQL Express não possui o serviço SQL Serve Agent – que lhe permitiria criar jobs para a execução destas tarefas, a alternativa é criar os jobs através do Scheduled Tasks do Windows. Para isso, efetue um duplo-click na opção Scheduled Tasks no painel de controle do Windows.
12) Execute um duplo-click sobre a opção Add Scheduled Tasks para iniciar o Winzard.
13) Clique sobre o botão Browse e localize o utilitário sqlcmd.exe (por default está em C:|Program Files|Microsoft SQL Server|90|Tools|Binn).
14) Entre com um nome para o job (exemplo BackupSQLExpress), escolha a periodicidade de execução do job (por exemplo Daily) e clique em Next.
15) Entre com um horário para execução do job e clique em Next
16) Entre com o usuário e senha que será usado para executar o job. Use um usuário que seja administrador no Windows e no SQL Express.
17) Clique em Next e selecione a opção para abrir as propriedades avançadas do job. Clique em Finish.
18) Na caixa Run, apague o conteúdo existente e entre com:


sqlcmd -S ./SQLEXPRESS -E -i”C:/Backups/databasemaint.sql” -v DB=”DBTESTE” -v TYPE=”DB” -v BACKUPFOLDER=”C:/backups” -v REPORTFOLDER=”C:/backups”


Nota: Novamente não esqueça de substituir as barras (/) da linha acima pela barra de separação de diretório. Observe a figura abaixo.



19) Clique em OK e confirme a senha para o usuário novamente.


Pronto, agora o job está criado e será executado automaticamente pelo Windows nos horários e dias agendados. Para testar o job clique sobre o mesmo com o botão direito e selecione a opção Run. Verifique se os arquivos de backups e logs foram criados no diretório C:/Backups. Caso ocorra algum problema, certifique-se de ter alterar a barra (/) na linha de comando e de ter digitado a senha correta para o usuário.


Um abraço
Nilton Pinheiro

Avaliação:
Compartilhe:
  • Anterior Particionando Tabelas e Índices no SQL Server 2005 – Parte II17 anos atrás
  • Próximo SQL Server 2008 Upgrade Technical Reference Guide17 anos atrás

Deixe uma resposta Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

MVP Reconnect Award

Categorias

  • Artigos (359)
  • Dica da Semana (95)
  • Documentação (54)
  • Downloads (113)
  • MSDE 2000 (3)
  • Sem categoria (1)
  • Tutoriais (9)

Posts recentes

  • #FechouBrasil #PartiuPortugal
  • Brigando com o erro “The cached MSI file is missing”
  • MCDBABRASIL está de volta
  • Documentando o Servidor SQL Server
  • Brigando com os Erros 17182, 17826 e 17120

SQL Server AlwaysOn Video Series

Video1: Introdução ao SQLServer2012 AlwaysOn


Video2: Introdução ao SQLServer2012 AlwaysOn Availability Group


Video3: Introdução ao SQLServer2012 AlwaysOn AVG-Demo


Video4: Introdução ao SQLServer2012 AlwaysOn Listener


Video5: Introdução ao SQLServer2012 AlwaysOn Readable Secondaries


Video6: Introdução ao SQLServer2012 AlwaysOn Readable Secondaries-Demo


Video7: Introdução ao SQLServer2012 AlwaysOn Failover Clustering


Serie SQL Server Failover Clustering End-to-End

Parte 1: Configuração da Rede e Ambiente


Parte 2: Configurando o Windows 2008 R2 Domain Controler e DNS


Parte 3: Preparando os nós para o Failover Cluster


Parte 4: Configurando um Failover Cluster de 2 nós


Parte 5: Configurando as LUNs no iSCSI Software Target (Parte 1)


Parte 6: Configurando as LUNs no iSCSI Software Target (Parte 2)


Parte 7: Apresentando as LUNs para os nós do Failover Cluster


Parte 8: Configurando os discos no Failover Cluster


Parte 9: Instalando a primeira instância virtual do SQL Server 2008


Parte 10: Instalando a segunda instância virtual do SQL Server 2008


Parte 11: Instalando e Configurando o MSDTC no Failover Cluster


Parte 12: Configurando Mount Points no Cluster e SQL Server 2008


Vídeo Extra: Removendo uma Instância do SQL Server 2008 R2 em Cluster


Alta Disponibilidade no SQL Server 2008 R2: Failover Clustering Overview


Alta Disponibilidade no SQL Server 2008 R2: Failover Clustering na Prática

Menu

  • Home
  • Sobre
  • Contato

Mais

  • RSS Feeds
2025 MCDBA Brasil.