我在一台服务器上有2个数据库;让我们称它们为db A和B.数据库A大约是11 GB,数据库B非常小(155mb)。数据库B有一些视图和过程,它们不断访问和更新数据库A中的数据。
有趣的是,数据库B的日志很快就会变得很大,我认为它在一周内增长到大约12 GB。数据库A的增长速度并不快。
什么可能导致我的日志增长那么多?当您从另一个数据库中选择数据时会发生什么事情,这会导致我的日志增长吗?
我知道当你对不同服务器上的数据库执行类似的操作时,数据会在加入并选中之前全部移动到调用数据库...我可以看到这会导致日志增长,可能会发生同样的事情同一台服务器?
SQL2000 SP4 STD版
完全恢复模型
提前致谢, 约翰
BTW-我意识到将恢复模式改为Simple可能会有所帮助,但我想先知道为什么会这样。答案 0 :(得分:0)
我无法想象为什么一个简单的SELECT语句会在事务日志中添加任何内容,但我对链接服务器没有太多经验,所以我无法肯定地说幕后可能会发生什么
但是,你说“数据库B有一些不断访问和更新数据库A中数据的视图和过程”,所以即使数据库A上存在基础数据,因为你的新应用程序连接到数据库B并使用它对象,这些操作记录在B的tran日志中似乎是合理的。
但这只是我的猜想。为什么不直接检查事务日志,看看它包含的内容是否合理? RedGate有一个免费的日志浏览器,可以使用SQL 2000(参见http://www.red-gate.com/products/SQL_Log_Rescue/index.htm);我之前只使用过一次,但它看起来效果很好,它确实在那个特殊情况下保存了我的培根。
我承认我对细节感到好奇,但在你的情况下,我很想抑制自己的好奇心,只是处理日志文件。毕竟,这只是暂时的,如果日志增长是链接服务器的工件,它应该在您完成新应用程序并退出数据库A后自行修复。
此外,Godeke对备份提出了一个很好的观点。如果您的日志文件过大,请更频繁地备份。备份它会截断日志,但仅限于内部;即,使用的日志文件的百分比将缩小,但在使用DBCC SHRINKFILE之前,磁盘上文件的实际大小不会改变。