【问题标题】:SQL Server 2005-- How can I detach & attach a DB and not create a T-Log File?SQL Server 2005——如何分离和附加数据库而不创建 T-Log 文件?
【发布时间】:2011-04-07 22:43:32
【问题描述】:

我有一个数据库,它是每晚从另一个数据库导出的数据的容器。每天晚上,所有数据都会被删除和刷新。我们之前将此过程从 SQL 2000 迁移到 2005。该过程导致关联的 Tran Log 的大小失控。

为了解决这个问题,我决定从数据库中删除 tran 日志文件,因为数据每晚都会重新导出。

我找到了这篇文章,我一直在尝试执行第二步。

SQL SERVER – Shrinking Truncate Log File – Log Full – Part 2

我遇到的问题是,一旦我重新附加数据库,就会创建一个新的事务日志。可以肯定的是,当我附加 mdb 文件时,我会在附加屏幕上看到两个数据库文件的列表,此时我从列表中删除了日志文件。无论如何,都会创建一个新的 tran 日志文件。

日志文件失控。是否有其他方法可以从我的数据库中删除或阻止它超过不合理的大小?

我知道我可以设置最大 tran 日志文件大小,但我不确定一旦达到该限制,它是否会自动缩小日志文件或开始记录错误?任何提示或指示都会有所帮助。我不介意 tran 日志的存在,我只是希望它保持可管理的大小。

【问题讨论】:

    标签: sql sql-server sql-server-2005


    【解决方案1】:

    如果您不需要事务历史记录和时间点恢复,请将数据库恢复模式设置为“简单”。

    然后,事务日志将只存储足够的信息来回滚待处理的事务,而不是所有(大多数)数据库更改的完整日志。

    另请参阅:http://msdn.microsoft.com/en-us/library/ms175987.aspx

    也就是说,如果你像我一样在查询中按了 F5,就在你开始错误地输入“WHERE”之前:

    DELETE FROM OrderLine
    

    ....然后能够撤消最后 5 分钟的损坏非常方便。

    【讨论】:

    • (我现在总是在前面加上'x'直到我完成:xDELETE FROM OrderLine WHERE... 然后检查,删除x,然后执行..)
    • 差异归结为 - 如果您插入/更新数据,则在事务进行时更改(或回滚信息)将记录在事务日志中。如果您有完整模型,则该数据将保留在那里 - 如果您有简单模型,则不会保留。
    猜你喜欢
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多