Versão Express

Anterior
Próximo
Feedback
Imprimir

Versão Express

A versão express do SQL Server não inclui o SQL Server Agent. Sendo assim, a configuração deve ser feita utilizando-se dois arquivos “.bat”. Um deles é o script que será executado pelo agendador, e o outro é responsável por criar a tarefa e adicionar no agendador do Windows. Segue abaixo o conteúdo dos arquivos que devem ser alterados conforme o ambiente do cliente:

 

Agendador: “AGENDADOR. bat”.

 

at 00:00 /every:domingo MAN_DB_EFORMS.bat

 

Neste exemplo o script de manutenção é executado todo domingo a meia noite. Para segunda-feira, por exemplo, se informaria o valor “segunda-feira”. Caso a linguagem do Windows esteja em inglês informar os dias da semana em inglês. Mais informações em http://support.microsoft.com/kb/313565 ou digitando at /? no prompt de comando.

 

Script de manutenção chamado pelo Agendador: “MAN_DB_EFORMS.bat”

 

@echo off

ECHO Iniciando rotina de manutencao no banco e-Forms

echo %date% %time%: Iniciando rotina de manutencao no banco e-Forms >> log.txt

SETLOCAL ENABLEDELAYEDEXPANSION

:: batch file for sql query

SET DBNAME='<NOME DO BANCO>'

SET DIF_MIN_IDX=1

SET DIF_MIN_STS=1

SET MED_FRAG=10

SET DUPD_STATS=0

SET VNULL='n'

SET SQLSTRING_IDX=exec TK_MAN_IDX @BASE=!DBNAME!, @DIF_MIN=!DIF_MIN_IDX!, @MED_FRAG=!MED_FRAG!;

SET SQLSTRING_STS=exec TK_MAN_STATS @BASE=!DBNAME!, @DIF_MIN=!DIF_MIN_STS!, @DUPD_STATS=!DUPD_STATS!, @VNULL=!VNULL!;

ECHO !SQLSTRING_IDX!

sqlcmd.exe -b -S localhost -E -d MASTER -Q "!SQLSTRING_IDX!" -W

echo %date% %time%: Manutenção dos indices concluida >> log.txt

ECHO !SQLSTRING_STS!

sqlcmd.exe -b -S localhost -E -d MASTER -Q "!SQLSTRING_STS!" -W

echo %date% %time%: Manutenção dos indices concluida >> log.txt

ECHO Manutencao do banco de dados eForms Concluida.

echo %date% %time%: Manutencao do banco de dados eForms Concluida. >> log.txt

 

Neste script estão sendo realizadas as invocações das procedures através do SQLCMD. Apenas alterar os valores em vermelho, que são o nome do banco (DBNAME) e os valores dos parâmetros das procedures (tópico 4.2 deste manual). No caso de existir mais de uma base criar um novo arquivo e inclui-lo também no agendador. Caso existam muitas bases de dados, informar o valor “TODOS” no DBNAME, neste caso todas as bases de dados da instância SQL sofreram manutenção.

Neste exemplo o agendamento está sendo configurado na mesma estação onde está o SQL Server e a autenticação é via Windows. Para cenários diferentes os parâmetros do SQLCMD devem ser revistos.

Exemplo de chamada usando usuário e senha:

 

SQLCMD -S SERVERNAME\INSTANCENAME –U <user> –P <password> -d MASTER

-Q "!SQLSTRING_STS!" –W

 

SQLCMD -S SERVERNAME\INSTANCENAME –U sa –P St0rangPa55w0rd -d MASTER -Q "!SQLSTRING_STS!" –W

 

Para mais detalhes do funcionamento do sqlcmd digitar sqlcmd /? no prompt de comando ou acessar http://msdn.microsoft.com/pt-br/library/ms180944.aspx :

 

Deverão ser disponibilizadas chamadas de SQLCMD para cada banco que se deseja verificar.