none
Arquivo LOG RRS feed

  • Pergunta

  • Boa tarde !!!

    No SQL Server 2008 foi descontinuado o TRUNCATE_ONLY

    EXECUTE

     

    ('BACKUP LOG ' + @Nome_Banco + ' WITH TRUNCATE_ONLY')

    Essa linha de comando faz parte de uma procedure que rodava em um banco SQL 2000 e 2005, que agora nao funciona mais.

    Eu ja vi algumas opções de diminuir o arquivo de LOG mudando o RECOVERY MODEL para SIMPLE, fazendo um SHRINK no LOG e depois retornando para FULL.

    Mas eu nao queria isso. Gostaria de implementar na minha procedure de BKP:

    1) CHECKPOINT no LOG
    1) Faz o BKP FULL do Banco + LOG
    2) SHRINK LOG

    Obrigado!!!

    terça-feira, 3 de novembro de 2009 21:11

Respostas

  • Davi,

    Não creio que seja problema manter no modo 80 enquanto se altera para SIMPLE, ele deverá limpar o log de qualquer forma.

    Então, troque seu BACKUP LOG ... WITH TRUNCATE_ONLY por ALTER DATABASE ... SET RECOVERY SIMPLE. Não esqueça de retornar depois para FULL.

    Além disso, quando retornado o modo FULL, você terá OBRIGATORIAMENTE que fazer um backup FULL. Isso pois perderá toda consistência das suas rotinas de backup.


    Abraço

    Classifiquem as respostas. O Fórum agradece!!
    quinta-feira, 12 de novembro de 2009 11:54

Todas as Respostas

  • Davi,

    Você esta certo o Backup Log Truncate_Only foi descontinuado no SQL Server 2008, alias tem mais outros comandos que também foram, segue abaixo a tabela com os comandos descontinuados.

    Seguindo as orientação do Books On-Line, para você realizar o Truncate automático do seu banco de dados, é recomendado alterar o recovery model para Simple com o nível de compatibilidade 100.

    Category Discontinued feature Replacement

    Aliases

    sp_addalias

    Replace aliases with a combination of user accounts and database roles. For more information, see CREATE USER (Transact-SQL) and CREATE ROLE (Transact-SQL). Remove aliases in upgraded databases by using sp_dropalias.

    APIs

    Registered Servers API

    Replaced by a new registered servers API that supports new SQL Server 2008 features.

    Backup and restore

    DUMP statement

    BACKUP

    Backup and restore

    LOAD statement

    RESTORE

    Backup and restore

    BACKUP LOG WITH NO_LOG

    None. The transaction log is automatically truncated when the database is using the simple recovery model. If you must remove the log backup chain from a database, switch to the simple recovery model.

    Backup and restore

    BACKUP LOG WITH TRUNCATE_ONLY

    None. The transaction log is automatically truncated when the database is using the simple recovery model. If you must remove the log backup chain from a database, switch to the simple recovery model.

    Backup and restore

    BACKUP TRANSACTION

    BACKUP LOG

    Compatibility level

    60, 65, and 70 compatibility levels

    Databases must be set to at least compatibility level 80.

    DBCC

    DBCC CONCURRENCYVIOLATION

    None

    Groups

    sp_addgroup

    Use roles.

    Groups

    sp_changegroup

    Use roles.

    Groups

    sp_dropgroup

    Use roles.

    Groups

    sp_helpgroup

    Use roles.

    Sample databases

    Northwind and pubs

    Use AdventureWorks. Northwind and pubs are available as downloads, or can be copied from a previous installation of SQL Server.

    For more information, see AdventureWorks Sample Databases.

    Tools

    Surface Area Configuration Tool

    The Surface Area Configuration Tool is discontinued for SQL Server 2008. For more information, see Backward Compatibility.

    Web Assistant

    sp_makewebtask

    sp_dropwebtask

    sp_runwebtask

    sp_enumcodepages

    We recommend that you use SQL Server Reporting Services instead.


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    terça-feira, 3 de novembro de 2009 23:48
    Moderador
  • Junior, obrigado !!!

    Meu banco esta com compatibilidade 80, ou seja, SQL Server 2000. Isso é necessario por outros problemas que encontramos com o Crystal Reports 8.5 que ocorre erro em alguns relatorios mais complexos, e como nao tivemos tempo de analisar o porque, estamos usando o SQL Server 2008 com a compatibilidade 2000.

    Dessa forma, nao teria como fazer o TRUNCATE do LOG por procedure ?

    Obrigado !!!
    quinta-feira, 12 de novembro de 2009 10:43
  • Davi,

    Não creio que seja problema manter no modo 80 enquanto se altera para SIMPLE, ele deverá limpar o log de qualquer forma.

    Então, troque seu BACKUP LOG ... WITH TRUNCATE_ONLY por ALTER DATABASE ... SET RECOVERY SIMPLE. Não esqueça de retornar depois para FULL.

    Além disso, quando retornado o modo FULL, você terá OBRIGATORIAMENTE que fazer um backup FULL. Isso pois perderá toda consistência das suas rotinas de backup.


    Abraço

    Classifiquem as respostas. O Fórum agradece!!
    quinta-feira, 12 de novembro de 2009 11:54