mj001
作者mj001·2010-09-16 12:47
业务经理·工行

如何构建Informix分布式数据库访问

字数 2166阅读 889评论 0赞 0
分布式数据库是在集中式数据库系统成熟技术的基础上发展起来的,它使物理分布的数据构成了一个逻辑整体。对用户来说,一个分布式数据库系统逻辑上就如同一个集中式数据库,用户可以在任何一个场地执行全局应用。Informix是一个具有跨平台、全功能的关系型数据库,它可在Online 7.1以上版本中将I-star等网络产品进行集成,并使其不但支持本地数据库,而且支持分布式数据库。

  分布式数据库是在集中式数据库系统成熟技术的基础上发展起来的,它使物理分布的数据构成了一个逻辑整体。对用户来说,一个分布式数据库系统逻辑上就如同一个集中式数据库,用户可以在任何一个场地执行全局应用。Informix是一个具有跨平台、全功能的关系型数据库,它可在Online 7.1以上版本中将I-star等网络产品进行集成,并使其不但支持本地数据库,而且支持分布式数据库。

  当前,银行、保险等金融行业均存在多业务处理系统,比如银行的综合业务、代理业务,保险的出单业务等,各业务系统常驻留于不同的主机上。为达到系统间数据共享,提高数据的安全性及完整性,增强整个系统的应用功能,需要构建分布式处理,这在实际应用中已显示出重要的作用。建立在Unix基础上的Informix分布式数据库,需对服务器端的文件hosts、hosts.equiv、services、sqlhosts作相应设置。

  一、 服务器端的配置

  假设在网络上有两个数据库服务器,分别命名为motor2000、zhtj2000,网络连接采用TCP/IP协议。

  设置网络结点:

  /etc/hosts.equiv

  gztb_motor

  gztb_zhtj

  设置网络结点机器名及IP地址:

  /etc/hosts

  161.83.1.1 gztb_motor

  161.83.1.2 gztb_zhtj

  设置数据库服务的Services名称及端口号:

  /etc/services

  sqlexec_1 9991/tcp

  sqlexec_2 9992/tcp

  端口号9991、9992不能与已有的端口号重复。

  设置服务器名称、端口、协议间的对应关系:$INFORMIXDIR/etc/sqlhosts

  motor2000 ontlitcp gztb_motor sqlexec_1

  zhtj2000 ontlitcp gztb_zhtj sqlexec_2

  通过sqlhosts这个设置文件可知道motor2000数据库服务器位于gztb_motor结点上,并且其Services名为sqlexec_1,对应端口号为9991,从/etc/hosts可知网络服务器gztb_motor的网络地址为161.83.1.1,再通过9991端口号向网络地址为161.83.1.2的zhtj2000数据库服务器提出数据操作的请求。

  二、 分布式数据库的使用范例

  假设在motor2000服务器中有motor数据库(insur_f、veh_list是其中的表),zhtj2000服务器中有zhtj数据库(tj_ssfy、tj_chb 是其中的表)。

  例1 从zhtj2000主机发出SQL命令,检索出motor中insur_f 表的所有数据,且insur_f的p_no字段值在zhtj数据库的tj_ssfy表中 。

  SELECT p_no

  FROM motor @ motor2000:insur_f

  WHERE p_no IN (SELECT dzhhm FROM zhtj:tj_ssfy)

  例2 把motor2000服务器veh_list表中的数据插入到zhtj2000主机的tj_chb表中 。

  INSERT zhtj:tj_chb

  SELECT * FROM motor @ motor2000:veh_list

  WHERE p_no NOT IN (SELECT dzhhm FROM zhtj:tj_chb)

  例3 用zhtj2000服务器的tj_ssfy表中的shshje合计值更新motor2000服务器中insurf表的act_pre字段值。

  UPDATE motor:insurf SET act_pre =

  (SELECT sum(shshje) FROM zhtj@ zhtj2000:tj_ssfy

  WHERE dzhhm = insurf.p_no)

  三、 调整分布式数据库的通讯量

  在多Online主机数据交互操作性强、网络负载较重情况下,网络通讯极易成为制约数据库应用性能的“瓶颈”,这时通过调配主机间的通讯流量,可极大地提高分布式数据库的综合性能。具体方法有如下4种:1在服务器端建立经过系统优化的常用存储过程,把更多的工作交由数据库服务器完成;2创建触发器TRIGGER,它是一种特殊的存储例程;3用prepare对SQL语句进行预处理,减少数据库系统对SQL语句分析的信息传输量;4适当增大共享内存的大小。以上方法均可有效地减小网络通讯的数据流量,减轻网络的负载。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广