0

我在一台服务器上有 2 个数据库;我们称它们为 db A 和 B。数据库 A 大约 11 GB,数据库 B 非常小(155mb)。数据库 B 有一些视图和过程,它们不断访问和更新数据库 A 中的数据。

有趣的是,数据库 B 的日志迅速增长到巨大的大小,我认为它在一周内增长到大约 12 GB。数据库 A 并没有增长得那么快。

什么可能导致我的日志增长这么多?当您从另一个数据库中选择数据时,是否发生了一些事情,这会导致我的日志像那样增长?

我知道当你对不同服务器上的数据库执行类似操作时,数据在加入和选择之前全部移动到调用数据库......我可以看到这导致日志增长,同一台服务器上是否会发生同样的事情?

SQL2000 SP4 STD 版
完全恢复模型

在此先感谢,约翰

顺便说一句-我意识到将我的恢复模式更改为简单可能会有所帮助,但我想知道为什么会首先发生这种情况。

4

1 回答 1

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 来这样做。

于 2008-10-19T02:21:58.953 回答