1、我们先来看一个很有意思的表格,它可以告诉你什么样的应用选择什么类型的数据库软件:商业应用类型 服务器性能描述数据库类型 大型数据库(ERP,OLAP,data mart)服务器仅用于运行数据库,或仅运行单一的应用。数据库的容量在 10OGB 以上,需要有较高的 CPU 处理能力,大容量内存为数据缓存服务,并需要很好的 IO 性能,使用这类应用时,通常需要有较高的 CPU 主频中型数据库(ERP,OLTP,etc)服务器仅用于运行数据库,或仅运行单一的应用。数据库的容量在 100GB 以下,需要有较高的 CPU 处理能力,大容量内存为数据缓存服务,并需要很好的 IO 性能,使用这类应用时,通常需
2、要有较高的 CPU 主频。数据仓库OLAPData mining大型商业数据存储,编目、索引、数据分析等。例如:OLAP(联机事务处 理),高速商业计算,需要有良好的IO 性能。基本应用与 web 服务 电子商务 Ecommerce功能与典型的应用服务器相同,性能视商业应用和用户数量而定,可能会需要一定的数据安全传输与存储,或作为存储数据的主机。需要一定的 CPU 和内存处理能力,通常,带有四路 Pentium Ill Xeon 处理器以及大容量数据存储的服务器可以基本满足要求。(可以满足每秒几千条请求)。 文件及打印服务器 仅用来将数据从一处传递到另一处,对 CPU 的处理能力要求较低。常规
3、服务器域代理防火墙服务器为了能够使域服务器和防火墙服务器有快速的响应能力,因此它们需要具 备较高的 CPU 处理能力,代理服务器需要有较大的内存用来存储和作为高 速缓存存储 Web 地址,代理服务器还需要有较大的存贮容量。建议选择机 柜式服务器可以节省占地空间互联网服务应用LinuxWindows NTNovell当互联网服务商针对专用的服务器比如邮件服务器、浏览服务器需要扩充 时,服务器应当具有价格低廉、小巧、高性能、通常一个或两个 CPU 基本 可以满足要求,而四路处理器的服务器则有些浪费。建议选择机柜式服务 器以节省占地空间。通讯服务器MessagingE-mail快速的 IO 是这类应
4、用的关键,磁盘的 IO(编目、存储信息)是主要瓶颈。 许多用户为了保证所存储的信息的可用性,采用 RAID 5 阵列方式,但在 一定程度上会影响IO 的性能,通常 1 个或 2 个 CPU 基本可以满足用户的 需求。这种服务器用户对于实时响应要求不高,用户所占用资源一般不超 过 10,所以最需要考虑的是数据信息的备份,以及如何在 26 小时能 将信息恢复正常。建议选择机柜式服务器以节省占地空间。浏览服务器(动态) 通过存储在服务器中的网页可以构建网络空间,例如使用微软公司的技术 ASP。与静态网页相比,这种应用需要更高的 CPU 处理能力,建议选择机 柜式服务器以节省占地空间。高速的网络通讯能
5、力也是必不可少的。浏览服务器(静态)静态网页通常是指有文本和图片共同组合存储的服务器中。通常变化不 大。使用两个 CPU 和 100MBS 的网卡可以非常轻松的满足极高的点击 率。当使用双路处理器的服务器时,可以完全满足每秒钟千次的点击。IGB 内存作为网页的高速缓存。也可以使用四路处理器并额外添加内存与网 卡。应用服务器 应用服务器(clientserver,ERP)任何一种客户机服务器的网络系统比如 ERP,最典型的商业应用,客户 机在一端,而数据库服务器在另一端,它们通过网络系统通讯。系统具有 良好的扩展和调整能力,可以将不同应用安装到不同的服务器上,也可以 将在每个服务器上安装多个应用
6、。ERP 系统需要两个或更多的 CPU 以及 512MB 以上的内存。具体数量视用户数量而定。工作流服务器CollaborationGroopare使用类似于 Lotus Notes, groupware, calendaring等等。对网络服务器的 CPU 和内存处理能力要求属于中等。不需要额外投资大量的硬件资 源。多应用服务器多种应用程序以及它们使用的数据库共同运行在同一台服务器上,可以替 代多台小型的服务器。建议使用多个CPU 可以获得较好的使用效果。通常 使用多个速度稍低的 CPU 的效果好于使用一个高速的 CPU。小型/专用服务器特定的应用系统,医疗、零售、经销商等特定的应用。使用带
7、有两个 CPU 的级别的服务器可以支持数百的用户终端。通常塔式服务器是首 选。终端服务器基于运算服务在多用户环境下,所有的硬件及软件资源都可以通过终端服务器共享给网络上的所有的用户,应用程序运行在服务器上,用户可以通过用户终 端使用所有的应用程序。使用多处理器将可以有效改善系统的性能。内存的配置非常关键,通常需要有 16MB 内存分配给 Windows NT,有 32MB 内 存分配给终端服务器,每个用户需要有 4-8MB 内存。软件的使用与硬件的资源有很大的关系,通常使用带有两路处理器和 IGB 内存的服务器可以 支持大约50 个用户,带有四路处理器和 4GB 内存的服务器可以支持 100
8、个用户,带有 8 路处理器及 4GB 内存的服务器可以支持大约 200 个用户。提到 ORACLE,不得不详细介绍一下,因为它是目前业内公认最牛 X 的数据库系统,广泛用于大型商业、高等院校和科学研究领域:ORACLE 是以高级结构化查询语言 (SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器(CLIENT/SERVER)体系结构的数据库之一。ORACLE7.X 以来引入了共享 SQL 和多线索服务器体系结构。这减少了 ORACLE 的资源占用,并增强了 ORACLE 的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的
9、用户,而在高档平台上可以支持成百上千个用户。ORACLE 数据库提供了基于角色(ROLE)分工的安全保密管理,在 数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。ORACLE 数据库提供了与第三代高级语言的接口软件 PRO*系列,能在 C,C+等主语言中嵌入 SQL 语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵。加上它有许多优秀的前台开发工具如 POWER BUILD、SQL*FORMS、VISIA BASIC 等,可以快速开发生成基于客户端 PC 平台的应用程序,并具有良好的移植性。另外,ORACLE 数据库提供了新的分布式数据库能力,可通过网络较方便地读写远端数
10、据库里的数据,并有对称复制的技术。OK,下面分析一下 ORACLE 数据库:根据实际使用测试的经验,不少程序员都已经确认 ORACLE 数据库在运行时效率是非常高的,大家发现这其实是因为它非常巧妙而合理的使用了系统内存,当然,它同时也是大量的使用了系统内存,至于其目的究竟是为了缓解硬盘缓存压力还是基于其他因素,我们就不深入探讨,我们可以明确的一点就是,ORACLE 数据库要有足够容量的系统内存进行支持才能较好的发挥其性能优势,尤其是那些数据库写入工作(例如 UPDATE、INSERT/ADDNEW 等动作)比较频繁的应用,使用大容量内存非常有必要。因此,如果您是使用 ORACLE 数据库,可以
11、在系统内存容量方面进行提升,现在的Nocona、Opteron 处理器已经突破传统 4GB 内存直接寻址的限制了,但服务器主板的设计对于大容量内存系统的限制还是存在,大家还得注意这个问题;在内存控制方面表现比较出色的是 IBM 和 HP,这两家公司的内存自主研发技术比较多也比较强大,尤其是 IBM,不仅可以有效实现内存的大容量扩展,还能提供多种纠错和备份保护,对于企业级应用是非常适合的。另外,数据库对内存系统要求高并不是说一味提升内存容量就 OK 了,整体性能的提高无论任何时候都是真理;对于一些中高端的应用,我们推荐大家使用 8 路或更8 路以上的服务器,特别是 AMD 的 Opteron 8
12、XX 系列,性能确实非常强悍,而且其独到的 HyperTransport 技术可以为多路系统提供足够的总线,加上内存控制器内嵌于核心之上,使得它的前端系统性能要比 Intel 的 MP 更为抢眼,如果是 Unix 系统,还可以使用 IBM 的Power 5 系统,Power 5 处理器是 IBM 自家的 RISC(精简指令集)架构处理器,采用双核设计,性能也非常强悍。至于磁盘系统,基本上是取决于使用什么样的 RAID 控制卡和使用什么 RAID 工作模式,关于这方面的问题大家可以参看我们的 磁盘阵列技术文章,相信会找到一个满意的答案,这里就不进行详述了。MS SQL Server这是微软的商业
13、数据库系统,有多个版本,最强大的是 Enterprise Edition,需要在Windows 2000 Advanced Server 或 Windows 2003 Server Enterprise Edition 上面才能安装。微软之前的数据库一直被指性能不佳,不登大雅之堂,于是比尔高薪挖来很多牛人开发出这套 MicroSoft SQL Server,目前常用的版本还是 MS SQL Server 2000,尽管新版本已经问世。这套数据库系统性能表现也是可圈可点,彻底改变了微软没有高性能大型数据库的局面,由于有自家操作系统做后盾,加上 Visual Studio 开发软件的强力支持,该数
14、据库系统在国内应用也非常普及,各种中小型商业和院校应用都看得到它的身影,大部分以IISASP/.NET 模式运行的中等以上规模 WEB 站点都是使用这套数据库。MS SQL Server 对服务器设备的要求并不像 ORACLE 那么高,但是根据大多数程序员使用的感受,要提高 MS SQL Server 的性能在处理器和磁盘系统上做文章效果比较明显。鉴于 MS SQL Server 的主流应用环境一般都是双路 XEON(这东西还不能移植到 Unix 系统,而且性能不如 ORACLE,因此一般不用于高端领域) ,因此我们针对这类数据库提出的建议是:使用高频的 Xeon 处理器,建议使用双路,另外,
15、 Opteron 表现确实非常优秀,也可以适当考虑;磁盘系统采用 RAID 0 或者 RAID 1 用户可以自己决定,如果有配阵列卡,组个 RAID 5 也可以;特别说明一下,Windows 2003 Server Enterprise Edition 执行效率确实比Windows 2000 Advanced Server 高,对于使用 MS SQL Server 的用户来说可以考虑使用2003 作为操作系统。My SQL这是一个开放而且免费的数据库。虽然功能不是非常强大,性能也只能算是一般,但在各种中小型应用中还是非常普及的,毕竟它比起针对小型办公应用而设计的 ACCESS 来说还是非常有优
16、势的不仅免费,而且性能、安全性比 ACCESS 好很多。My SQL 可以在Windows 环境下使用,不过其最经典的组合是 LinuxApachePHP/JSPMySQL。现在以这种组合出现的小型网站非常多,这类网站对服务器配置要求非常低,当然,由于数据库本身的限制,MySQL 也不大适合大访问量的商业应用。在我们的测试中经常使用 MYSQL 作为数据库平台,一般是使用一个拥有 5 万注册用户的论坛数据库作为测试对象,测试结果也显示出一个问题,磁盘性能对 MYSQL 数据库查询的效率影响特别明显,要远远高出 CPU、内存等配件的影响,一台配置一般的服务器只要拥有高性能的磁盘系统,一样可以获得
17、很好的成绩;当然,如果在数据库查询中包含很多复杂的查询比较条件,那么 CPU 主频的作用也是非常明显的。这里,我们推荐这类数据库的用户使用高性价比的 SATA 阵列,用主板自带的软 RAID 就行,性能同样可以令人满意,而且成本非常低,当然,适当提升 CPU 的主频也是有价值的。AccessAccess 是微软面向办公用户推出的一种数据库系统,在 Office 光盘中带有它的管理软件。既然是面向办公用户推出的一种数据库系统,那么其性能自然是比较差的,不过这种“业余”级别的数据库无需安装,而且使用管理非常简单,因此深受初级程序员的欢迎,绝大部分的 ASP 小型站点几乎都是使用这种数据库;当然,其性能非常有限,不大适合于安全性要求较高和数据量较大的环境。Access 数据库非常带有微软软件的特点简单易用、占资源、效率低,因此要提升这种数据库的性能,从硬件方面只能是全面升级,如果要大幅度提升性能,建议升级服务器配置的同时将数据库系统升级到 MS SQL Server。Access 数据库和 P4 服务器是绝配,当然,如果使用 P4 服务器,那么升级的空间就不会太大了,所以还是以经济实用为主导。总结:数据库其实是非常博大精深的,很难用短短一篇文章把数据库和服务器之间错综复杂的关系说清楚,只是希望以上肤浅的经验和看法,能够为初级用户提供一些参考。