• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

[转帖]如何构建Informix分布式数据库访问

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 23次 | 进入软件测试论坛讨论

领测软件测试网
如何构建Informix分布式数据库访问
中国太平洋保险公司贵州分公司电脑部 龙振宇
交通银行贵阳分行计算中心 陈德敏

--------------------------------------------------------------------------------
 
 
 
分布式数据库是在集中式数据库系统成熟技术的基础上发展起来的,它使物理分布的数据构成了一个逻辑整体。对用户来说,一个分布式数据库系统逻辑上就如同一个集中式数据库,用户可以在任何一个场地执行全局应用。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适当增大共享内存的大小。以上方法均可有效地减小网络通讯的数据流量,减轻网络的负载。 

 


 wkl 回复于:2002-11-14 22:27:03
你发 我列精华,呵呵!

 jysww 回复于:2002-11-14 22:48:11
我收藏^_^

 anye 回复于:2002-11-14 23:02:38
真的不错,很有参考价值。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网