Script para fazer o Backup e em seguida um shrinkFile no log

113 views
Skip to first unread message

Carmem Almeida

unread,
Jun 5, 2019, 10:56:15 AM6/5/19
to SQL Server Brasil
Bom dia a todos

Preciso criar uma procedure que vai  2x ao dia.

Na mesma procedure quero fazer o backup e após o término já fazer o shrinkFile .

Exemplo:

create procedure dbo.ms_Backup_Banco
as

--aqui vai o comando de backup. 
BACKUP DATABASE []....



--aqui eu preciso ver se o backup já acabou.

Fiz algumas pesquisas e encontrei o  sys.dm_exec_requests.

Só que para ver se está completo é preciso estar rodando? Como não tem nenhum backup rodando ele me retorna vazio.

SELECT
session_id as SPID,
command, s.text AS Query,
start_time,
percent_complete,
dateadd(second,estimated_completion_time/1000, getdate()) as estimated_completion_time
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) s
WHERE r.command in ('BACKUP DATABASE')
AND SESSION_ID = 53



--se tiver acabado tenho que dar o shrinkFile  


Nada impede de eu rodar em arquivos distintos. Mas antes preciso saber se o backup rodou.

Obrigada







Roger Camatini

unread,
Jun 5, 2019, 11:09:43 AM6/5/19
to sql-serv...@googlegroups.com
Carmen,

Cria um plano de manutenção com estas duas instruções ( backup e shrink) colocando o backup na posição acima do shrink. Assim que o backup terminar ja entra o shrink. Criado o plano de manutenção ja agenda o job que vai executar.

image.png

Atenciosamente,

Rogério Camatini



--
--
----------------------
Você recebeu essa mensagem porque você esta inscrito no grupo "SQL Server Brasil" do Google Groups.
Para postar nesse grupo, envie mensagem para sql-serv...@googlegroups.com
Para sair desse grupo, envie mensagem para sql-server-bra...@googlegroups.com
Para mais opções, visite a página desse grupo em http://groups.google.com/group/sql-server-brasil
----------------------
You received this message because you are subscribed to the Google Groups "SQL Server Brasil" group.
To post to this group, send email to sql-serv...@googlegroups.com
To unsubscribe from this group, send email to sql-server-bra...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sql-server-brasil
---
Você recebeu essa mensagem porque está inscrito no grupo "SQL Server Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para sql-server-bra...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/sql-server-brasil/095b6914-9934-4eec-848d-2d221238ed02%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Carmem Almeida

unread,
Jun 5, 2019, 11:28:08 AM6/5/19
to SQL Server Brasil
Infelizmente a versão Express não tem.

Obrigada pela dica.


Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para sql-serv...@googlegroups.com.

Roger Camatini

unread,
Jun 5, 2019, 12:14:45 PM6/5/19
to sql-serv...@googlegroups.com
Tu não tinha informado a versão. Mas deixo um script básico para tua necessidade. Não é preciso verificar se o backup está executando, a instrução de backup e shrink ficam no mesmo script e são executadas na sequencia.

-- Script criar procedure

USE TEU_DATABASE
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE PRC_BACKUP_AND_SHRINK
AS
BEGIN

BACKUP DATABASE [TEU_DATABASE] TO  DISK = N'M:\Microsoft SQL Server\MSSQL13.BDGD2019\MSSQL\Backup\TEU_DATABASE.bak' WITH NOFORMAT, NOINIT,  
NAME = N'TEU_DATABASE-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10


DBCC SHRINKFILE (TEU_DATABASE_LOG, 1000)

END;

-- Para executar

EXEC PRC_BACKUP_AND_SHRINK

Atenciosamente,

Rogério Camatini



Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para sql-server-bra...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/sql-server-brasil/bfe4e27f-ae4b-43c7-b799-f4da569e656a%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages