CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

数据库 | Oracle | DB2 | SQL Server | MySQL | 商业智能 | BI | DBA | Sybase| SQL Server 2008

分析和修改过大的SQL Server MSDB数据库

作者: Echo,  出处:IT专家网, 责任编辑: 李书琴, 
2008-03-26 17:14
  

  【IT专家网独家】

  问题:

  我注意到我们一部份MSDB数据库作为系统数据库来说有点太大,有的MSDB数据库甚至超过2GB,这让我们很困惑,因为我们并没有在这些数据库里面创建任何用户定义对象。你能告诉我这可能是什么原因造成的吗?我知道我们以前用SQL Server 2000和2005的时候都有这种情况发生。

  专家解答:

  我们在一些不同的SQL Server实例里看到过大小超过1GB的MSDB数据库。每种情况下,造成MSDB数据库过大的原因都不一样,所以不同的情况可以让我们对于MSDB数据库的使用都有新的发现和了解。我们现在可以先来看看如何诊断出“病因”,然后再“对症下药”:

  在每个SQL Server实例里对MSDB数据库进行备份

  尽管MSDB数据库可能已经很大了,但是出于合理的技术或商业原因,可能会在每个SQL Server实例里都对MSDB数据库进行备份。因为,在对数据库做任何改动之前(比如,移动对象、删除对象、重命名对象等等),明智的做法是先对MSDB数据库进行备份,以便以后需要恢复。

  备份脚本

  BACKUP DATABASE MSDB TO DISK = 'C:\MSDBPreliminaryBackup.bak' WITH INIT

  GO

  用户定义对象

  如果MSDB数据库里有用户定义对象(MSDB里的表、存储过程、视图等等这些不是作为安装或者服务包的一部份创建的对象),你可以考虑找出它们为什么存在,看看这些对象是否可以移动到现有的或新的数据库里。如果你的数据库管理对象在MSDB数据库里,可以考虑把它们移动到一个DBA数据库里,只供SQL Server管理使用。

  由于MSDB数据库里存在大量的SQL Server系统表(整合服务、备份和恢复、监控从表等等),最好查看这些表是否MSDB系统表。

  从解决问题的方向考虑的话,可以参考以下建议:

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅


    
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2007, ChinaByte
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i