我的 SQL Server 2008 数据库文件 (.mdf) 大小接近 24 MB,但日志文件却增长到了 15 GB。如果我想缩小数据库,需要考虑哪些要点?
收缩是否会导致索引碎片,并且会影响我的数据库性能?
答案1
您的问题是您没有对事务日志进行备份,因此它无法删除日志中的任何值。这与备份数据库不同,应每天至少进行一次(我们每 15 分钟进行一次)。除非您解决这个问题,否则收缩对您没有任何好处!
阅读在线书籍中有关事务日志备份的部分。如果您处于完整或批量日志恢复模式,则这是必需的操作。还请阅读有关缩小事务日志的部分。如果您有生产数据库,这是您需要了解的重要信息。
答案2
建议您对该数据库进行事务日志备份,并且如果需要,缩小该数据库的日志文件。
答案3
首先,它是生产环境吗?对于生产环境,建议使用完整恢复模型
您始终可以在文件级别或数据库级别进行收缩,就我个人而言,我总是在收缩之前进行日志备份,因此如果需要任何恢复,您都可以对其进行备份。
在没有备份日志的情况下收缩可能会有风险,事务日志包含对数据库进行的每个操作,因此它可以恢复以前的状态(谈论完整恢复模式)。有时收缩对减少日志大小没有太大帮助,如果您没有备份,则没有可用空间,请记住,您看到的空间并不总是数据库实际使用的空间,它只是保留的。
它不会导致索引碎片,向表中插入新数据会导致其索引碎片,并且为了提高性能,嗯...人们可以在收缩的同时工作...但是收缩数据库或文件本身...会消耗一些服务器资源并增加服务器的整体负载,所以建议您收缩或备份操作时间。
希望能帮助到你