none
backup RRS feed

  • 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_cursor

    Porem 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

    quarta-feira, 3 de outubro de 2018 15:31

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 COMPRESSION

    Aconselho 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

    quarta-feira, 3 de outubro de 2018 15:43
  • 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 Full


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    quarta-feira, 3 de outubro de 2018 17: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 COMPRESSION

    Aconselho 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

    quarta-feira, 3 de outubro de 2018 15:43
  • 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 Full


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    quarta-feira, 3 de outubro de 2018 17:03