Usuário com melhor resposta
backup

Pergunta
-
Boa Tarde!
alguem poderia me ajudar, Criei a rotina abaixo porem esta apresentando erro
DECLARE @name VARCHAR(50) -- database name
DECLARE @path VARCHAR(256) -- path for backup files
DECLARE @fileName VARCHAR(256) -- filename for backup
DECLARE @fileDate VARCHAR(20) -- used for file name
-- specify database backup directory
SET @path = 'E:\Program Files\Microsoft SQL Server\MSSQL13.DBADMSEG\MSSQL\Backup\'
-- specify filename format
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN ('master','model','msdb','tempdb') -- exclude these databases
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + '_dbf_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName
WITH COMPRESSION
SET @fileName = @path + @name + '_log_' + @fileDate + '.BAK'
BACKUP LOG @name TO DISK = @fileName
WITH COMPRESSION
FETCH NEXT FROM db_cursor INTO @name
END
CLOSE db_cursor
DEALLOCATE db_cursorPorem ele apresenta o erro abaixo
Processed 472432 pages for database 'CORRETORA', file 'CORRETORA' on file 4.
Processed 4 pages for database 'CORRETORA', file 'CORRETORA_log' on file 4.
BACKUP DATABASE successfully processed 472436 pages in 11.282 seconds (327.149 MB/sec).
Msg 4208, Level 16, State 1, Line 27
The statement BACKUP LOG is not allowed while the recovery model is SIMPLE. Use BACKUP DATABASE or change the recovery model using ALTER DATABASE.
Msg 3013, Level 16, State 1, Line 27
BACKUP LOG is terminating abnormally.
Processed 1312 pages for database 'PASSAPORTE_PRD', file 'PASSAPORTE_PRD' on file 4.
Processed 2 pages for database 'PASSAPORTE_PRD', file 'PASSAPORTE_PRD_log' on file 4.
BACKUP DATABASE successfully processed 1314 pages in 0.119 seconds (86.265 MB/sec).
Msg 4208, Level 16, State 1, Line 27
The statement BACKUP LOG is not allowed while the recovery model is SIMPLE. Use BACKUP DATABASE or change the recovery model using ALTER DATABASE.
Msg 3013, Level 16, State 1, Line 27
BACKUP LOG is terminating abnormally.
Processed 11192 pages for database 'cepbr', file 'cepbr' on file 5.
Processed 2 pages for database 'cepbr', file 'cepbr_log' on file 5.
BACKUP DATABASE successfully processed 11194 pages in 0.771 seconds (113.428 MB/sec).
Msg 4208, Level 16, State 1, Line 27
The statement BACKUP LOG is not allowed while the recovery model is SIMPLE. Use BACKUP DATABASE or change the recovery model using ALTER DATABASE.
Msg 3013, Level 16, State 1, Line 27
BACKUP LOG is terminating abnormally.
Processed 129808 pages for database 'DBA', file 'DBA' on file 4.
Processed 2 pages for database 'DBA', file 'DBA_log' on file 4.
BACKUP DATABASE successfully processed 129810 pages in 3.339 seconds (303.725 MB/sec).
Processed 7 pages for database 'DBA', file 'DBA_log' on file 4.
BACKUP LOG successfully processed 7 pages in 0.018 seconds (3.038 MB/sec).
Valeu
Respostas
-
O erro acontece porque vocês está fazendo um bkp full e em seguida um de log em um banco em modo de recuperação simple, neste trecho do código:
SET @fileName = @path + @name + '_log_' + @fileDate + '.BAK'
BACKUP LOG @name TO DISK = @fileName
WITH COMPRESSIONAconselho a usar o método deste site: https://ola.hallengren.com/
Além de backup, ele faz outras coisas como manutenção de índices e estatísticas e checagem de integridade da base.
Uso em meus clientes há mais de 5 anos com extrema eficiência.
Att;
João Paulo
- Sugerido como Resposta Junior Galvão - MVPMVP quinta-feira, 4 de outubro de 2018 12:03
-
Fernando, olá!
Complementando a resposta do JPaulo, eu não vejo muito sentido em você fazer o backup full e de log na mesma rotina. Digo isso porque normalmente fazemos, por exemplo, backup de log de hora em hora e um Full diário.
Ou log a cada meia hora, full semanal e um diff diário..
Enfim a estratégia de backup depende das necessidades de cada ambiente/cliente. Qual é a sua?
Separando full de log, no backup de log você deveria pegar apenas as bases com recovery model FullMariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */
- Sugerido como Resposta Junior Galvão - MVPMVP quinta-feira, 4 de outubro de 2018 12:03
Todas as Respostas
-
O erro acontece porque vocês está fazendo um bkp full e em seguida um de log em um banco em modo de recuperação simple, neste trecho do código:
SET @fileName = @path + @name + '_log_' + @fileDate + '.BAK'
BACKUP LOG @name TO DISK = @fileName
WITH COMPRESSIONAconselho a usar o método deste site: https://ola.hallengren.com/
Além de backup, ele faz outras coisas como manutenção de índices e estatísticas e checagem de integridade da base.
Uso em meus clientes há mais de 5 anos com extrema eficiência.
Att;
João Paulo
- Sugerido como Resposta Junior Galvão - MVPMVP quinta-feira, 4 de outubro de 2018 12:03
-
Fernando, olá!
Complementando a resposta do JPaulo, eu não vejo muito sentido em você fazer o backup full e de log na mesma rotina. Digo isso porque normalmente fazemos, por exemplo, backup de log de hora em hora e um Full diário.
Ou log a cada meia hora, full semanal e um diff diário..
Enfim a estratégia de backup depende das necessidades de cada ambiente/cliente. Qual é a sua?
Separando full de log, no backup de log você deveria pegar apenas as bases com recovery model FullMariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */
- Sugerido como Resposta Junior Galvão - MVPMVP quinta-feira, 4 de outubro de 2018 12:03