打印本文 打印本文 关闭窗口 关闭窗口
SYBASE OmniSQL Gataway
作者:武汉SEO闵涛  文章来源:敏韬网  点击数611  更新时间:2009/4/22 23:09:16  文章录入:mintao  责任编辑:mintao

企业信息系统往往由于最终用户需求的阶段性和部门信息系统的独立性,造成了硬件平台、数据库和网络的异构,从而使企业范围内的数据存取、管理和应用开发遇到了困难。SYBASEmniSQLGataway 是目前唯一实现在异构分布环境中完全透明的互操作能力的新一代数据库网关提供在不同的SQL语言、不同厂商的数据库和数据存储位置之间完全透明的数据集成环境。该产品至少在以下几点会让最终用户和应用程序员倍感方便:

  • 用户不必知道要查询或修改的数据的位置;

  • 一条查询可以获得多个异构数据源的数据;

  • 全企业以标准T-SQL语言或工具访问各种数据,目前已有几百个前台工具支持T-SQL语言;

  • 程序员不需要在应用中编写特殊代码,对不同类型、不同位置的数据源进行组合;

  • 可以定义全局存储过程,访问不同数据源的数据;

  • 支持异构数据之间的链接操作。

  目前OmniSQL Gataway 可访问数据源包括:

  SQL Server, ORASLE, DB2, RMS, INFORMIX, INGRES, RDB,Teradata , MS SQL Server, Tanden Nonstop SQL, TurtoImage, Unisys, … 

  OmniSQL Gataway 可分为:OmniSQL Server 和OmniSQL AccessModule 两部分。以IBM RS6000 上 的OmniSQL Server 为例,介绍OmniSQL server 的安装及与其它数据源连接的定义:

目录结构

  当OmniSQL 从磁带Load 到磁盘后,将在$SYBASE目录下形成下列目录和文件:bin, charsets, install,interfaces ,locales ,sample 和Omni。在Omni 目录下又有scripts,link 目录(OmniSQL Server与SQL Server 可共用$SYBASE目录及子目录)

初始化OmniSQL Server

  作为一个Server至少需要8M内存和10M磁盘空间。与其它SQLServer 一样需要interfaces 文件中的定义和 “path=$SYBASE/bin $ path”的坏境叁数的设置行Omnibuild 程序生成master 、model 和tempdb 数据库(目录);运行Omniserv 启动OmniSQL Server ;用isql执行$SYBASE/Omni 、scripts目录下的installmaster 、 instal完成以上步骤后,OmniSQL Server已经可以使用了,你可以象使用SQServer一样,login 到OmniSQl Server上去作任何T-SQL操作。

  这里要指出的是由于OmniSQLServer是基于ISAM数据结构,所以建库的语句中将不必指定数据库的尺寸。

与SQL Server连接:

  model等isql批处理过程,生成master 、model数据字典表和存贮过程;OmniSQL Server与SQL Server的连接十分简单:假设OmniSQL Server 在interfaces 中的名字为OMNI ,SQL Server 在interfaces 中的名字为SYBASE 10。则操作如下:

isql -Usa -P -SOMNI 
>exec sp_addserver OMNI , load 
>go 
>exec sp_addserver SYBASE 10 
>go 
>exec sp_servertype SYBASE 10, sqlserver, oclient, "SYBASE 10" 
>go 
>exec sp_addexternlogin SYBASE 10, sa, sa, NULL 
>go 
>use master 
>go 
>checkpoint 

>go 

  完成上述操作后,对于SQL Server的连接定义就已经完成,你可以在用isql使用OmniSQlServer 时用connect to SYBASE10去登录上SYBAS10上操作。disconnect 将使你又返回OmniSQL Server。

在OmniSQl Server上存取SQl Server上的表中的数据。

  假设:在SYBASE 10上的puts2中有publisher表,在OMNI中,建有一S10的数据库。首先要用defgen生成在OMNI的S10中建对应于SYBASE10 的pubs2 中的publisher 表的定义文件(假设为pub.sql):

defgen -Usa -P -SOMNI -DS10 -sSYBASE 10 -d pubs2 -ndbo -F pub.sql"dbo.publisher" 

生 成 pub.sql 后 

isql-Usa -P -Somni 

  完成上述步骤后,就可以在登录到OMNI后,通过对S10中publisher的操作,实现对SYBASE 10中pubs2 的publisher的数据存取。

与ORACLE 连 接

  首先设置如环境变量ORACLE_HOME;然后,cd $SYBASE/Omni/link;

  根据所要连接的ORACLE的版本,作: make oracle 6或mak oralce7;

  最后,将所生成的Omnisev 拷贝到$ SYBASE/bin/omniserv;用新的omniserv 启动OmniSQl Server 。

  在OMNI上增加server 类型:

  sp_servertype ORALCE, oracle, native, "@ T:maple :oratest" 

  最后一项为ORACLE 数据库的SQL *Net地址定义

  注:用户必须要有OmniSQl Access Module for ORACLE 才能完成上述操作。

打印本文 打印本文 关闭窗口 关闭窗口