在Linux和WINDOWS下通过ODBC访问Oracle和SQLServer数据库的解决方案.ppt
数据库预研可行性分析报告,特性与约束,系统要求运行在Linux和Windows下,所以要求采用跨平台的数据库访问技术Oracle下跨平台技术有OCI,Pro*c,ODBC,其中OCI是最快的访问技术,代码库可以采用OTL,简单易用,而Proc*c技术不太容易调试,而采用ODBC技术,一样可以采用OTL代码库.MySQL下跨平台的开发库有mysql+,功能强大,可以支持ORMAPSQLServer下跨平台技术有ODBC,代码库可以采用OTL,在WINDOWS系统下的数据库连接方案,Oracle数据库连接方案1.安装Oracle客户端2.修改配置文件 修改位于D:oracleproduct10.1.0Db_1NETWORKADMIN目录下的Oracle配置文件tnsnames.ora增加一项APPL10G=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.30.10)(PORT=1521)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=appl10g)3.现在就可以用OTL库直接通过OCI方式连接Oracle数据库了,4.通过ODBC连接Oracle数据库安装了Oracle客户端就会有Oracle驱动,前面修改了tnsnames.ora,在这里就可以看到,MySQL连接方案既可以直接采用MySQL原生库连接(代码库采用mysql+),也可以采用ODBC连接(代码库采用OTL).SQLServer连接方案直接采用ODBC连接(代码库采用OTL),在Linux系统下的数据库连接方案,安装unixodbctar xfvz unixODBC-2.2.12.tar.gz./configure-prefix=/usr-sysconfdir=/etcmake installOracle数据库的连接方案1.安装Oralce客户端rpm-ivh oracle-instantclient-basic-10.2.0.4-1.i386.rpmrpm ivh oracle-instantclient-devel-10.2.0.4-1.i386.rpmrmp ivh oracle-instantclient-odbc-10.2.0.4-1.i386.rpmrpm ivh oracle-instantclient-sqlplus-10.2.0.4-1.i386.rpm,2.修改/etc/profile文件ORACLE_HOME=/usr/lib/oracle/10.2.0.4/clientLD_LIBRARY_PATH=:$ORACLE_HOME/lib:/usr/local/lib:$LD_LIBRARY_PATH:.SQLPATH=$ORACLE_HOME/lib:$SQLPATHTNS_ADMIN=$ORACLE_HOMEPATH=$PATH:$ORACLE_HOME/bin:.TWO_TASK=appl10g Export LD_LIBRARY_PATHexport TNS_ADMINexport ORACLE_HOME SQLPATHexport TWO_TASK,通过ODBC连接Oracle数据库时,必须加上TWO_TASK环境变量,当通过OCI连接Oracle数据库时,是不需要加上这个环境变量的.TWO_TASK对应于tnsnames.ora配置文件中的一项.3.拷贝tnsnames.ora和sqlnet.ora到ORACLE_HOME 目录下,并修改tnsnames.ora,加入一项Oracle服务,4.现在你可以使用sqlplus了.5.为了配置Oracle for ODBC,先拷贝/usr/share/oracle/10.2.0.4/client/libsqora*到/usr/lib6.执行ODBCConfig点击 Add按纽,出现右边的对话框,再点击上面的Add添加Oracle for ODBC的驱动程序,弹出下面的对话框,配置Oracle for Linux的ODBC驱动程序,选择OK按纽,开始配置ODBC数据源,数据源的对话框,现在你可以用DataManager查看ODBC的配置情况啦或者用 isql DSN User Passwd 来查看ODBC的配置情况,为了让oracle客户端访问,Oracle服务器端必须开放防火墙1521端口,同时必须修改Oracle服务端的Oracle数据库的注册表参数在注册表HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_OraDb10g_home1目录下增加一项REG_SZ数据项USE_SHARED_SOCKET,值为”TRUE”,连接SQLServer的解决方案,Linux下连接SQLServer数据库只能用freetds安装freetds#tar xfv freetds-0.82.tar.gz#./configure prefix=/usr with-unixodbc=/usr-with-tdsver=8.0-sysconfdir=/etc-enable-msdblib-enable-dbmfix-enable-shared-enable-static#make install2.修改配置文件/etc/freetds.conf,增加一项服务器SQLServer2005 host=192.168.30.88 port=1433 tds version=8.03.运行ODBCConfig,配置freetds数据库驱动程序如右图所示,配置SQLServer的DSN,红线所示部分对应freetds的配置文件/etc/freetds.conf中对应的条目SQLServer2005,现在你可以用DataManager查看ODBC的配置情况啦或者用 isql DSN User Passwd 来查看ODBC的配置情况,Linux下连接MySQL数据库,Linux下连接MySQL数据库无须特别配置,但如果要配置ODBC for MySQL,则需要安装ODBC驱动#rpm ivh mysql-connector-odbc-5.1.4-0.i386.rpm,配置MySQL的ODBC数据库驱动,配置 DSN,编译mysql+库#tar xfvz mysql+-3.0.3.tar.gz#./configure-with-mysql-lib=/usr/lib/mysql-prefix=/usr#make install,