新足迹

 找回密码
 注册

精华好帖回顾

· (06/11更新,八个月啦)院子里突然来了一只小可爱小奶猫 (2021-4-14) eggface · 参加活动【暖胃砂锅菜】之冬令进补时宜首选の***双冬羊腩煲*** (2013-6-16) chesecake
· 告别2020,在法拉利1.0上骑行的露营日子 (完) (2021-1-21) clocktower · 花鸟画 (2008-10-21) 净心
Advertisement
Advertisement
查看: 4856|回复: 71

一个数据库server的问题 [复制链接]

退役斑竹

发表于 2012-2-8 11:43 |显示全部楼层
此文章由 月亮 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 月亮 所有!转贴必须注明作者、出处和本声明,并保持内容完整
4个sql server上共有30+个数据库,总data在1T+,最大的数据库200G(3个),最小的10多M,以每个月5-10%的速度增长,现在要把这些数据库放在一个新server上(SAN), 做几个instance适合?

另外,如果有400G fast cache,速度是不是基本可以保证,I/O方面需要考虑些什么?

不要考虑有几个硬盘,多大内存,这些都是在有了数据库设计方案之后申请的。

[ 本帖最后由 月亮 于 2012-2-8 14:13 编辑 ]
Advertisement
Advertisement

发表于 2012-2-8 11:56 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
LZ你是专家,谈谈你的想法吧,
我觉得既然现在是4个server, 不妨就用4个instance? 改变意味着麻烦。而且license什么的都不用动?

除非应用程序方面有特别的要求,

[ 本帖最后由 典 于 2012-2-8 10:58 编辑 ]

发表于 2012-2-8 11:58 |显示全部楼层
此文章由 未名湖 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 未名湖 所有!转贴必须注明作者、出处和本声明,并保持内容完整
学习

发表于 2012-2-8 12:01 |显示全部楼层
此文章由 AmandaX 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 AmandaX 所有!转贴必须注明作者、出处和本声明,并保持内容完整
说一下配置看看

退役斑竹

发表于 2012-2-8 12:04 |显示全部楼层
此文章由 月亮 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 月亮 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 AmandaX 于 2012-2-8 12:01 发表
说一下配置看看


现在的流程是先设计数据库框架,然后根据设计再向经理要求配置,比如要200G RAM,100T硬盘。。

发表于 2012-2-8 12:36 |显示全部楼层
此文章由 seth2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 seth2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
以下建议仅供参考,楼主提供的信息太少,这里只能大致囫囵一下:

1、要根据数据访问量来确定硬盘和内存的数量,不是根据数据库本身大小。
      原则是访问量大的数据库坚决分散到不同的物理硬盘上。
      且将访问量大的数据库做成单独的instance, 以求保证其有足够的内存使用。
2、对于数据的构架设计要慎重,
       最好把使用率高的ldf 文件要单独放在一个分区的多个硬盘上,这样能有效提高速度,
       但也要考虑安全和维护上的方便
3、数据每个月10%的增长是否估计太高,因为两年后会达到当前9.8倍,就是进10T的数据,
      所以磁盘阵列一定要预留足够的空间
4、对访问量的预期决定你的Server CPU和内存的选择
      可以在现有的系统上作一些测试,这样就大概知道数据库需要多少资源了
5、Backup和DR的方案也相当的重要,这一定要做实验,不论是时间和性能一定要在数据库建起来之前掌握。

评分

参与人数 3积分 +15 收起 理由
bffbffbff + 5 谢谢奉献
北风 + 5 你太有才了
月亮 + 5 谢谢奉献

查看全部评分

Advertisement
Advertisement

发表于 2012-2-8 12:50 |显示全部楼层
此文章由 北风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 北风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
说的很好啊

原帖由 seth2000 于 8/2/2012 11:36 发表
以下建议仅供参考,楼主提供的信息太少,这里只能大致囫囵一下:

1、要根据数据访问量来确定硬盘和内存的数量,不是根据数据库本身大小。
      原则是访问量大的数据库坚决分散到不同的物理硬盘上。
      且将访问量大的 ...
If you let people believe that you are weak, sooner or later you’re going to have to kill them.

发表于 2012-2-8 13:26 |显示全部楼层
此文章由 stevenbian 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 stevenbian 所有!转贴必须注明作者、出处和本声明,并保持内容完整
把30多个数据库区归个类,考虑一下更新数据的频率,是否需要大量的回滚,还有备份和数据恢复问题。

发表于 2012-2-8 13:28 |显示全部楼层
此文章由 梦呓人 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 梦呓人 所有!转贴必须注明作者、出处和本声明,并保持内容完整
晕啊,200G的内存。。。。。。。。

退役斑竹

发表于 2012-2-8 13:43 |显示全部楼层
此文章由 月亮 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 月亮 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 梦呓人 于 2012-2-8 13:28 发表
晕啊,200G的内存。。。。。。。。


没看见我说比如吗?比如比如。。不是事实。。

发表于 2012-2-8 13:44 |显示全部楼层
此文章由 nali 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 nali 所有!转贴必须注明作者、出处和本声明,并保持内容完整
楼主公司有没有数据库性能分析的软件.

要规划新的构架,这个应该不是靠猜的。要有具体的数据分析。 需要以前几年的数据增长和使用负载报告,以及预计3~5年内可预测的增长。

为何要加,加多少,3,5年后,是否还有扩展余地,这个都要有依据。

上到这个程度了,最好找个咨询公司做吧。
Advertisement
Advertisement

退役斑竹

发表于 2012-2-8 13:46 |显示全部楼层
此文章由 月亮 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 月亮 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 nali 于 2012-2-8 13:44 发表
楼主公司有没有数据库性能分析的软件.

要规划新的构架,这个应该不是靠猜的。要有具体的数据分析。 需要以前几年的数据增长和使用负载报告,以及预计3~5年内可预测的增长。

为何要加,加多少,3,5年后,是否还有扩展余地,这个都要有依据。

上到这个程度了,最好找个咨询公司做吧。


分析软件在我们这么抠门的公司是没有的,什么分析都靠自己做excel。。。

每个月5-10的增长是这几个月观察下来的结果。

退役斑竹 2007 年度奖章获得者 2008年度奖章获得者 特殊贡献奖章 参与宝库编辑功臣

发表于 2012-2-8 13:52 |显示全部楼层
此文章由 黑山老妖 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 黑山老妖 所有!转贴必须注明作者、出处和本声明,并保持内容完整
数据库server当然是内存越多越好,硬碟越快越好。
具体几个instance估计还是要看你的数据库的功能。把功能给partition一下。我觉得按照payroll部门的的死了不能影响sales部门的这样分比较好。
硬碟多大就按照5年的需求外加20%,过了5年upgrade hard disk。
Happy Wife = Happy Life

发表于 2012-2-8 14:05 |显示全部楼层
此文章由 YugaYuga 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 YugaYuga 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 月亮 于 2012-2-8 11:43 发表
4个sql server上共有30+个数据库,总data在1T+,最大的数据库200G,最小的10多M,以每个月5-10%的速度增长,现在要把这些数据库放在一个新server上(SAN), 做几个instance适合?

this is probably not a right question to start with... if the instances are on the same physical server then there is not much to gain from having multiple instances; doing so actually creates some overheads.
you only live once

发表于 2012-2-8 14:09 |显示全部楼层
此文章由 无视 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 无视 所有!转贴必须注明作者、出处和本声明,并保持内容完整
找一个storage的公司consulting一下,他们会让你提供throughput和i/o这种performance indicator的数据,然后他们给意见。

问问emc或者dell吧,他们有package给你选。

退役斑竹

发表于 2012-2-8 14:09 |显示全部楼层
此文章由 月亮 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 月亮 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 黑山老妖 于 2012-2-8 13:52 发表
数据库server当然是内存越多越好,硬碟越快越好。
具体几个instance估计还是要看你的数据库的功能。把功能给partition一下。我觉得按照payroll部门的的死了不能影响sales部门的这样分比较好。
硬碟多大就按照5年的需求外加20%,过了5年upgrade hard disk。


硬盘多大,多少个硬盘都可以申请,只要合理
Advertisement
Advertisement

退役斑竹

发表于 2012-2-8 14:11 |显示全部楼层
此文章由 月亮 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 月亮 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 无视 于 2012-2-8 14:09 发表
找一个storage的公司consulting一下,他们会让你提供throughput和i/o这种performance indicator的数据,然后他们给意见。

问问emc或者dell吧,他们有package给你选。


找consulting公司需要花钱的,花的钱可以买快硬盘了,经理是绝对不会同意的。。。

退役斑竹

发表于 2012-2-8 14:14 |显示全部楼层
此文章由 月亮 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 月亮 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我修改了一下1楼,这样是不是更清楚,大家不要考虑有几个硬盘,多大内存,这些都是根据数据库的设计分配的

发表于 2012-2-8 14:25 |显示全部楼层
此文章由 无视 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 无视 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 月亮 于 2012-2-8 14:11 发表


找consulting公司需要花钱的,花的钱可以买快硬盘了,经理是绝对不会同意的。。。


不用,你装做去询价,这是free的。

他们会问你的具体情况,其中就有上面两个最重要的指标,拿到价格之后你可以选择是否继续。

其实也没有多少钱,storage+server也就是10万左右(好像是,专业人士可以纠正我一下)

2010年度奖章获得者

发表于 2012-2-8 15:05 |显示全部楼层
此文章由 JuJu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 JuJu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 梦呓人 于 2012-2-8 13:28 发表
晕啊,200G的内存。。。。。。。。


要那么多内存干吗呢? 够用就行了, 既然是用SAN, 那read/write performance 不是靠内存, 主要是要看storage 上的cache.

FAST cache 400GB, 这个说的是storage上的吧,速度保不保证还要看设计的合理不, 我的理解是FAST cache只是系统自动把最常用的data放到flash disk 上, 比一般的cache 省钱.

你先要用SQL Activity Monitor 和Performance Monitor 之类工具算出I/O, 然后看你们SAN上用的哪一种disk 来算. 假如说,你们的SAN用的是15000 RPM 的FCdisk,  那么大概能够handle 180 IOPS, 假如你算出来你们至少需要1800IOPS, 那么你们就需要1800/180 10 个spindle, 这个可以用2个4+1的RAID 5 或者5+5 RAID 1/0来实现. 当然这个算得很粗了, 要比较精细一点, 你要算IO里面有多少read, 多少write, 假如说80%是read, 20%write, 你准备用RAID 1, 那你要用这个公式算, (80%x1800+20%x1800x2)/180(2 是raid penalty for writes, raid 1 为2,raid 5  为4), 实际上需要12 个spindle.

log file 和 tempDB 最好放在RAID-1/0 上, 不要跟database files 放一起. database files可以用RAID-1/0 or RAID-5 ,如果很忙的, 就最好用RAID-1/0.

另外把storage 上的cache block 设成 8KB. 跟SQL data block size 符合.

评分

参与人数 3积分 +15 收起 理由
seth2000 + 3 很有想法,也有具体的方法,不错
梦呓人 + 4 有启发!
月亮 + 8 谢谢奉献

查看全部评分

发表于 2012-2-8 15:14 |显示全部楼层
此文章由 Fernando 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Fernando 所有!转贴必须注明作者、出处和本声明,并保持内容完整
能上SSD尽量上,IO上增强不少
Advertisement
Advertisement

2010年度奖章获得者

发表于 2012-2-8 15:15 |显示全部楼层
此文章由 JuJu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 JuJu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 无视 于 2012-2-8 14:25 发表


不用,你装做去询价,这是free的。

他们会问你的具体情况,其中就有上面两个最重要的指标,拿到价格之后你可以选择是否继续。

其实也没有多少钱,storage+server也就是10万左右(好像是,专业人士可以纠正我一下)


比较小的, 他们不是太爱理. 我一个朋友是一个学校的IT MANAGER, 想找EMC咨询买个小的SAN, 等了好几个月还没人去

退役斑竹

发表于 2012-2-8 15:16 |显示全部楼层
此文章由 月亮 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 月亮 所有!转贴必须注明作者、出处和本声明,并保持内容完整
专家来了。

我们公司穷,RAID 10肯定用不起的,估计只能用RAID 5, data, log, temp, index可以做到分开。

fast cache是storage上的,请教JuJu, 一般1T大小的数据库,用400G的fast cache,正常使用,是不是就够用了?

目前4个server每个20G的内存,速度可以。

发表于 2012-2-8 15:17 |显示全部楼层
此文章由 未名湖 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 未名湖 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 JuJu 于 2012-2-8 15:05 发表


要那么多内存干吗呢? 够用就行了, 既然是用SAN, 那read/write performance 不是靠内存, 主要是要看storage 上的cache.

FAST cache 400GB, 这个说的是storage上的吧,速度保不保证还要看设计的合理不, 我的理解是F ...


学习先

2010年度奖章获得者

发表于 2012-2-8 15:18 |显示全部楼层
此文章由 JuJu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 JuJu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
专家不敢当的, 那个storage上除了fast cache还有普通的cache 吗?
头像被屏蔽

禁止访问

发表于 2012-2-8 15:19 |显示全部楼层
此文章由 dlcat 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dlcat 所有!转贴必须注明作者、出处和本声明,并保持内容完整
其实这上边问不出太好的结果,给LZ推荐一个问问题的好地方,chinaunix,上边搜搜或者问问,应该会给出很多启发。

我一直很好奇,除了电信级别的用户,别的什么行业的数据量能这么庞大。
Advertisement
Advertisement

发表于 2012-2-8 15:21 |显示全部楼层
此文章由 chinara 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 chinara 所有!转贴必须注明作者、出处和本声明,并保持内容完整
进来学习一下sql server,现在找人的都恨不得找个全才。。

发表于 2012-2-8 15:24 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
1 TB 不算特别大的数据库吧,
感觉JUJU的回答很专业,
怎么现在都流行SAN了,我们公司也在移,
头像被屏蔽

禁止访问

发表于 2012-2-8 15:30 |显示全部楼层
此文章由 dlcat 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dlcat 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我上一个维护的系统是一个同时长期2000人在线的视频多媒体学习服务器,测试到过万人左右同时在线,再大的极限没测试过,后台数据库记录客户所有的操作动作。

前台是f5分流,后台双视频服务器,只有一个光纤盘柜,几乎无任何读写瓶颈,只要网络带宽能保证,所以你的应用,我觉得速度方便根本不用考虑。

最大的问题是数据库的崩溃问题,我觉得应该主要考虑这个,尤其是这么大的数据库,一旦崩溃,很难补救啊。起码天天自动备份一下。我们曾经崩溃过一次,数据回写什么的很不顺手,还是导出数据那种有效。

发表于 2012-2-8 15:31 |显示全部楼层

回复 JuJu 20# 帖子

此文章由 seth2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 seth2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这个说到点子上了。

强烈建议用RAID-1/0,楼主对硬盘价格不敏感的话,这个可以相当程度上减少后面的维护。

不过内存当然是越多越好,sql server肯定能用上的, 这主要看操作系统的限制。

看楼主介绍,这个project的buget也不多,那么猜想数据访问量也不会大到离谱。所以也不用规划太细,比照原服务器,直接四个4个sql server做成4个instant, 至少省了无数重新编程的遇到麻烦。

其他什么参数,除了硬盘X10 外其他通通X2 就好了,选定了参数再写个所谓方案,交活jiupai

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部