我正在使用SQL Express 2005并且每晚都备份所有数据库.我注意到一个DB变得越来越大.我看着数据库,看不出为什么它变得如此之大!我想知道它是否与日志文件有关?
寻找有关如何找到它变得如此之大的原因,当它没有得到那么多的数据时 - 还有如何优化/减小尺寸?
mar*_*c_s 16
要检查的几件事:
您的数据库处于"简单"恢复模式?如果是这样,它将产生更少的事务日志条目,并且备份将更小.推荐用于开发 - 但不适用于生产
如果它处于"FULL"恢复模式 - 您是否定期进行事务日志备份?这应该限制事务日志的增长,从而减少整体备份大小
你DBCC SHRINKDATABASE(yourdatabasename)最近跑了吗?这可能有所帮助
你的数据库中是否有任何日志/日志记录表随着时间的推移而填满?你能删除其中一些条目吗?
您可以通过转到对象资源管理器找到数据库的恢复模型,右键单击数据库,选择"属性",然后在对话框中选择"选项"选项卡:
alt text http://i31.tinypic.com/14dlkci.jpg
渣
小智 10
如果它是不断增长和增长的备份,我遇到了同样的问题.当然,这不是一个"问题",这是通过设计实现的 - 您只是进行备份'设置',只需扩展直到占用所有可用空间.
为避免这种情况,您必须更改覆盖选项.在SQL管理工作室中,右键单击数据库,TASKS - BACKUP,然后在备份窗口中,您将看到它默认为"常规"页面.将其更改为"选项",您将获得一组不同的选择.
顶部的默认选项是"附加到现有媒体集".这使您的备份无限期增加.将其更改为"覆盖所有现有备份集",备份将始终只有一个完整备份,即最新备份.
(如果您有一个SQL脚本执行此操作,请将'NOINIT'转换为'INIT')
注意:这意味着备份只是最新的更改 - 如果你在三天前犯了一个错误,但你只有昨晚的备份,那么你就会被填满.如果您的备份机制每天将.bak文件复制到另一个位置,则只能使用此方法,因此您可以返回前几天中的任何一个文件.