我现在正在将我公司的数据库服务器从
Windows 2000 / sql Server 2000更改为Windows 2003 R2 / sql Server 2005.它拥有30个数据库,每个数据库的大小约为7GB,但其中一个是30gb.现在我想知道我是否应该利用这个机会在这个数据库上使用文件组.
但我以前从未使用它,而且我不知道数据库的内容那么好.但它是一个经济体系,所以我认为在过去8年的生产中,它拥有大量历史“只读”信息.
但我以前从未使用它,而且我不知道数据库的内容那么好.但它是一个经济体系,所以我认为在过去8年的生产中,它拥有大量历史“只读”信息.
任何人都可以给我一些关于我是否应该拆分的提示和提示?
我现在有2个单独的磁盘,一个用于日志文件,另一个用于数据库.
如果有人能给我一些意见,我会很感激:)
解决方法
您想将数据库拆分为多个文件组,还是将多个文件添加到现有的主文件组?
在第一种情况下,您需要将对象(表,索引)移动到新添加的文件组中,否则它将保持为空.这样做需要您非常好地理解所述对象的使用模式,以便您可以确定哪些对象在哪里.之后的优点是,您将能够根据访问方式将文件组分配到单独的IO路径(单独的磁盘/ LUN).另一个优点是,您可以更轻松地管理备份/还原,允许您进行零碎还原并允许您进行单个文件组备份.我会说在数据库中分配文件组是一个设计时决定,现在你有点晚了.
第二种情况,您只需将更多文件添加到PRIMARY文件组,以便将IO分布到多个磁盘上.除非你确实有IO问题,并且你确实有多个IO路径(即单独的磁盘/阵列/ luns以将文件放到其上),添加多个文件没有任何优势.您可能会遇到建议将数据库固定到相同大小的N个文件中的建议,其中N是cpu核心数,但该建议已过时,因为sql 2005/2008处理SGAM / GAM分配争用比sql 2000好得多,不再需要拆分.
根据您对问题和环境的描述,我坦率地认为没有理由进行任何拆分:您不会制定任何花哨的恢复计划以允许零碎还原(除了它只有30Gb,这是相当小的),并且你只有一个磁盘,所以多个文件没有任何优势.