terça-feira, 6 de agosto de 2013

UTILIZANDO XP_CMDSHELL


Boa Tarde,

Se você precisa executar algum bat pelo SQL você poderá fazer o uso do XP_CMDSHELL.

A função que encontrei para esta ferramenta é que sempre apos finalizar o backup do SQL ele executa um bat utilizando comando robocopy que leva para o outro servidor da rede para uma segurança, como eu faço os backups do LOG a cada 15 minutos e eles vão para a fita somente a noite em caso de uma falha tenho todos os arquivos em outro servidor.

Habilitando o XP_CMDSHELL

Por padrão ela vem desabilitada no SQL, deverá proceder conforme abaixo para habilita-la.


exec sp_configure 'show advanced options', 1
go
reconfigure
go
EXEC sp_configure 'xp_cmdshell', 1
go
reconfigure
go


Comando para ser executado no SQL via JOB ou QUERY:

 exec master.dbo.xp_cmdshell 'C:\backup_sql\scripts\copia_full.cmd'


O script que rodei no robocopy foi:

net use \\IP\ipc$ /user:dom\Adm SENHA

robocopy "C:\backup_sql\log_sql" "\\IP\c$\backup_sql\log_sql" /MIR /V /NP /R:10 /W:30
net use \\IP\ipc$ /del

A função /MIR tem uma finalidade legal, que é que caso o arquivo seja excluído da origem ele será excluído também no destino, com isso eu não preciso ficar limpando a pasta