数据库管理系统一次通常只能运行在一台服务器上。在不采用高级解决方案的前提下(比如Oracle公司的Real Application Clusters)数据库则只能在服务器之间手工迁移。由于难以在数据库级别上平衡服务器负载,所以这一局限性导致大量计算机资源被白白浪费了。
从SAN到DAN
虽然SAN (存储区域网)和动态应用服务器在Web和应用服务器负载均衡领域取得了巨大的成功,但是,数据库层却仍然是系统性能的瓶颈。利用SAN能够很方便地在服务器之间搬移磁盘,从而令IT管理职员可以根据需要对磁盘存储动态地重新部署,如图A所示。
当前的灵活体系
SAN技术实现了多计算机之间的单线程数据共享,但问题也随之而来:在处理能力需求发生改变的情况下该如何智能地重新部署数据库呢。这就是DAN(数据库区域网:Database Area Network)技术的用武之地了。
DAN架构用到了数据库交换机,其下的SAN则实现了数据库在不影响可用性的情况下在服务器之间的搬移。图B所示就是两种架构。
SAN 和DAN架构
数据库服务器负载均衡是一个复杂而又问题丛生的技术话题。许多公司年复一年耗费了大量的资金重新部署数据库服务器资源。更糟糕的是,由于资源分配的不足和不合理,最终用户不得不容忍漫长的服务响应时间,直到数据库管理员(DBA)通过手工操作的方式把数据库再度分配到更大的服务器上,研究人员利用DAN技术就可以在处理要求超出服务器处理能力的时候动态分配数据库。
DAN技术的工作原理
DAN技术的内部机制可谓相当简单。在SAN环境下,数据库的重新部署涉及到以下的步骤:
关闭数据库,采用软件方法立即重定向交易。
把数据文件重定向到使用SAN的目标服务器。
在新服务器上重新启动数据库。
用Oracle的Transparent Application Failover (TAF)之类的内建产品进行处理不会在重新部署期间丢失任何交易,最终用户也不会察觉到数据库已经变更了服务器。