首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server数据库增长过快

Server数据库增长过快
EN

Database Administration用户
提问于 2013-08-05 10:08:13
回答 3查看 9K关注 0票数 1

我对一个数据库有问题。问题如下:在过去6年中,数据库在Server 2000标准上以完全恢复模式运行。

在今年夏天开始的时候,数据库大约是5GB。

从那以后,我们所做的唯一超出正常使用范围的事情就是删除了一些内容。

本周,PC出现了问题,我被迫在SQLServer2008R2 Express上进行备份和恢复,并在2008年模式下设置数据库。

备份文件大约是1GB。当我恢复它时,MDF是9GB的大小!我检查了旧的中密度纤维板,它的尺寸是一样的。

我检查了表的大小,它们无法达到所报告的9GB!

我做了心理医生,但尺寸没有改变。

有什么线索或者去哪里查?

是否有可能完全恢复,会影响MDF文件的大小?

我正在考虑将恢复模型设置为简单、备份和恢复它.会有什么不同吗?我能在现场数据库上做吗?

提前鸣谢!

更新:数据库的初始大小为1306 MB。

UPDATE2 sp_spaceused:数据库Size=8646.88 MB未分配的Space= 0.00 MB

reserved=1336984 KB data=1020376 KB index_size=210408 KB unused=106200 KB

EN

回答 3

Database Administration用户

发布于 2013-08-05 13:09:54

该数据库在过去6年中一直以完全恢复模式在Server 2000标准上运行。

这是fin,只要您正在进行常规的完整备份和日志备份,以控制日志文件大小。这里有很多关于日志管理的文章和问题。

在今年夏天开始的时候,数据库大约是5GB。从那以后,我们所做的唯一超出正常使用范围的事情就是删除了一些内容。

大的删除是可以的,但要理解的是,除非您缩小了数据文件,否则不会将所使用的数据空间释放回操作系统。

本周,PC出现了问题,我被迫在SQLServer2008R2 Express上进行备份和恢复,并在2008年模式下设置数据库。

我希望你测试了你的代码!从SQL 2000到SQL 2008 R2,to语法发生了很大的变化.我支持许多数据库,这些数据库都是由于这些更改而崩溃的。还请注意,Express对数据库的大小有限制,使用SQL 2008 R2为10 R2

备份文件大约是1GB。当我恢复它时,MDF是9GB的大小!我检查了旧的中密度纤维板,它的尺寸是一样的。我检查了表的大小,它们无法达到所报告的9GB!

当您对数据库进行备份时,备份只会获取数据本身以及数据库的一些配置信息。其中一个配置项是数据和日志文件的初始大小。如果您检查了数据库属性,您可能会发现数据文件(MDF)的初始大小设置为9GB。

我做了心理医生,但尺寸没有改变。

数据库收缩很可能是您执行的。虽然不明智,但如果您需要重新获得磁盘空间,或者只是将数据库的数据文件(MDF)置于控制之下,则需要执行data文件收缩。同样,在MSDN和博客文章中也有很多文章提供了这样做的方法。

是否有可能完全恢复,会影响MDF文件的大小?

不是的。

我正在考虑将恢复模式设置为简单、备份和恢复.会有什么不同吗?

和你的数据文件一样大,不是。

票数 2
EN

Database Administration用户

发布于 2013-08-05 15:04:10

试着运行以下代码:

代码语言:javascript
复制
EXEC sp_msforeachtable 'EXEC sp_spaceused [?]'

如果您注意到任何表的unused列中的值过多,则运行以下命令:

代码语言:javascript
复制
ALTER INDEX ALL ON <TableName> REBUILD

或者使用您选择的重建索引方法。但是,您想要进行完全重建,因为我不相信reorg会清理不必要的未使用的空间。

Fyi的excessive,我指的是任何在10-100毫巴范围或更高的表上,实际上是使用不到两倍的自由空间。或者任何一张桌子有一个很大的未使用空间。我不想亲自在5GB的桌子上看到1GB的未使用的空间。虽然我通常不会检查这个,除非有实际的空间问题。

对于unnecessary unused space,我的意思是,您的一个或多个表可能保留了大量的空间,而这些空间可能是不太可能使用的,或者根本无法使用。只有当它变得过分时,才会有问题。

一旦重建(S)完成,尝试sp_spaceused,看看它是否解决了问题。如果是的话你可以再试一次你的心理医生。要指出的是,这是少数几个心理医生是合理的案例之一。您有一个数据库,在还原之前(2000年)是5 GB,现在在恢复之后是9 GB,因此希望不需要额外的空间。

如果我不得不猜测,额外的空间是由2000年到2008年的R2升级造成的。我以前从来没有试过这么大的一次跳,所以我不能确定。希望上面的内容能消除它造成的任何额外空间。

票数 2
EN

Database Administration用户

发布于 2013-08-05 11:21:21

是的,这是你的恢复模式,如果你使用的是稳定的和备份的,而且不是很大的数据库。(高达100 GB)它的好处是使用简单的恢复模型。

请参考下面的链接。它解释了复苏模型。

http://msdn.microsoft.com/en-us/library/ms189275.aspx

在这一变化中没有这样的问题。

但问题是,你不能恢复事务类的东西,或中间的东西。

否则就很好了。

问候

阿舒托什·阿里亚

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/47563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档