在SQL Server 2005主数据库中创建表

时间:2010-08-25 14:49:16

标签: sql sql-server sql-server-2005

我正在添加一个监控脚本来检查我的数据库文件的大小,这样我就可以发送一份每周报告,显示每个文件的大小以及它在上周的增长量。为了获得增长,我只是每周将记录记录到每个数据库大小的表中,然后与前一周的结果进行比较。唯一的诀窍是保留该表的位置。使用主数据库而不是仅创建新数据库来保存这些日志有什么权衡? (我假设将来我们会添加其他监视器)

4 个答案:

答案 0 :(得分:5)

主要原因是master没有针对额外负载进行校准:它没有安装在具有适当容量规划的IO系统上,很难移动到新的IO位置,它的维护计划需要备份和日志备份对于非常低的活动量而言,其频率与预期相同,其初始规模和增长率的计划就像预计不会发生变化一样。反对它的另一个原因是许多故障排除方案您希望检查数据库的副本,但是您必须将新的master附加到您的实例。这些是不鼓励向master添加对象的主要原因。此外,许多管理员可以理解地更喜欢使用它自己的数据库,因此可以正确地计算,并最终轻松卸载。

msdb存在类似的问题,但如果推动推出,最好将应用数据存储在msdb而不是master,因为前者是普通数据库(尽管普遍存在)相信是系统,实际上并非如此。

答案 1 :(得分:2)

Master DB是属于SQL Server的系统数据库。它不应该用于任何其他目的。创建自己的数据库来保存日志。

答案 2 :(得分:1)

我不会把任何东西放在master中,它可以在升级时被覆盖/重新创建。

我已经在每台服务器上放置了一个仅限DBA的ServerInfo数据库用于这样的用途,以及任何特定于应用程序的环境事物(prod,test和dev之间的区别)。

答案 3 :(得分:1)

您应该为日志记录添加separat数据库。如果您将对象留在那里,那么主数据库不会破坏下一个sql server补丁,这是不能保证的。

微软本身建议你不要这样做。 http://msdn.microsoft.com/en-us/library/ms187837.aspx