仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 731|回复: 7
打印 上一主题 下一主题

[学习教程] MYSQL网页设计ORACLE 8i的一般毗连手艺的先容

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:38:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
这些过程被存储和运行在数据库服务器上,以减少在客户端的处理过程,从而最大限度地提高了处理能力,因为通常情况下数据库服务器会运行地更快。存储过程并不是MySQL独有的功能,但是这个最近新增加的功能使得这个数据库比以前更具吸引力了。oracle
ORACLE8i的一般毗连手艺的先容

====================================

接待人人同我交换:小白enhydra_boy@tom.com

接待转载,请保存本声明,感谢!

====================================



Oracle8.1.6中引进一般毗连手艺的观点(Genericconnectivity),这连续接办理计划满意了对很多异种数据库存储的数据会见需求,同时其实不必要安装ORACLE的通明网关(ORACLETransparentGateway)。该特征同意利用业界尺度ODBC和OLEDB创建通明毗连。

甚么是一般毗连(Genericconnectivity)

一般毗连是ORACLE的一个低端数据集成办理计划,方针是供应ORACLE8i能够毗连到非oracle数据库的才能。它的完成,是经由过程异种服务代办署理(HeterogeneousServices)来完成的。

异种服务代办署理的范例:
ODBCagentforaccessingODBCdataprovidersOLEDBagentforaccessingOLEDBdataprovidersthatsupportSQLprocessing--sometimesreferredtoasOLEDB(SQL)ODBCagentforaccengOLEDBdataproviderswithoutSQLprocessingsupport--sometimesreferredtoasOLEDB(FS)
一般毗连的体系布局图



ORACLE客户端程序会见非ORACLE数据库的历程:客户端程序是经由过程SQL*NET毗连ORACLE服务器,关于异种数据库的会见,交给HS代办署理完成。

HS代办署理经由过程上面的功效组件完成:ODBC办理器->ODBC驱动程序->数据库的收集客户端->方针数据库。

假如异种库和ORACLE数据库位于统一台服务器上,一样平常来讲驱动程序是能够间接和本机的数据库通信,就能够省往数据库的收集客户端这一层。

数据范例的转换

ORACLE主动完成ODBC和OLEDB数据范例到ORACLE数据范例的转换,详细的对应转换能够参考ORACLE的联机匡助http://download-west.oracle.com/docs/cd/A87860_01/doc/server.817/a76960/datatype.htm。

一般毗连的限定

1含有BLOB列的表必需要有一个主键字段;

2BLOB/CLOB数据不间接经由过程pass-through的查询体例;

3在WHERE子句中包含了函数的Updates或deletes语句不被同意;

4不撑持存储历程的挪用;

HS代办署理(odbc/oledb)不撑持散布式事件(distributedtransactions),只撑持单点的事件(single-sitetransactions)。

一般毗连代办署理的设置

上面,我先容一下,使用一般毗连的ODBC设置。使用HSodbc代办署理毗连SQLSERVER2000。

第一步d初始化文件的创建

起首,你必需要创立初始化文件。ORACLE供应了样例初始化文件,名字是init<agent>.ora,<agent>多是hsodbc,hsoledb,hsolefs,分离代表了三品种型的代办署理,位于$ORACLE_HOME/HS/ADMIN下。

把对应的文件复制一份出来,而且更名为init<HS_SID>.ora,<HS_SID>是你SQLSERVERODBC代办署理起的别号。

复制并创立了一个inithssql2k.ora文件,编纂inithssql2k.ora文件。参数有:


#ThisisasampleagentinitfilethatcontainstheHSparametersthatare

#neededforanODBCAgent.



#

#HSinitparameters

#

#HS_FDS_CONNECT_INFO=<odbcdata_source_name>

#HS_FDS_TRACE_LEVEL=<trace_level>

HS_FDS_CONNECT_INFO=SQL2K

HS_FDS_TRACE_LEVEL=ON

HS_AUTOREGISTER=TRUE



#

#Environmentvariablesrequiredforthenon-Oraclesystem

#

#set<envvar>=<value>


第二步创立异种服务代办署理的数据字典

实行$ORACLE_HOME/rdbms/admin/caths.sql,创立相干的体系表和视图。

第三步创立异种服务代办署理的事情情况

增加hssql2k的侦听服务,$ORACLE_HOME/NETWORK/ADMIN/listener.ora


SID_DESC=

(SID_NAME=hssql2k)

(ORACLE_HOME=d:oracleora81)

(PROGRAM=hsodbc)

)


修正$ORACLE_HOME/NETWORK/ADMIN/tnsnames.ora,增加一个收集服务名

sql2k,将在前面创立数据库连接时用到。


sql2k=

(DESCRIPTION=

(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))

(CONNECT_DATA=(SID=hssql2k))

(HS=OK)

)


从头启动侦听,而且观察服务形态


LSNRCTLfor32-bitWindows:Version8.1.7.0.0-Productionon02-JUL-200312:49:

30



(c)Copyright1998OracleCorporation.Allrightsreserved.



WelcometoLSNRCTL,type"help"forinformation.



LSNRCTL>status

Connectingto(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SAM)(PORT=1521)))

STATUSoftheLISTENER

------------------------

AliasLISTENER

VersionTNSLSNRfor32-bitWindows:Version8.1.7.0.0-Produ

tion

StartDate02-JUL-200311:08:31

Uptime0days1hr.41min.2sec

TraceLeveloff

SecurityOFF

SNMPOFF

ListenerParameterFiled:oracleora81
etworkadminlistener.ora

ListenerLogFiled:oracleora81
etworkloglistener.log

ServicesSummary...

ORCLhas1servicehandler(s)

ORCLhas3servicehandler(s)

PLSExtProchas1servicehandler(s)

hssql2khas1servicehandler(s)

Thecommandcompletedsuccessfully

LSNRCTL>


Hssql2k的侦听服务已一般运转了。



第四步修正数据库启动参数文件

修正数据库启动参数文件,设置global_names=false,假如设置为true(缺省),那末数据库毗连名和全局数据库名一样,这将会招致ORA-02085的毛病。



第五步创立会见non-oracle数据库的毗连(DatabaseLink)

在sqlplus中,实行createdatabaselink命令。Connectto指定了毗连到SQLSERVER的用户名和暗码。




SQL>createpublicdatabaselinksql2kconnecttosaidentifiedbymanagerusing‘sql2k’;

Databaselinkcreated.






第六步测试


Oracle8iEnterpriseEditionRelease8.1.7.0.0-Production

WiththePartitioningoption

JServerRelease8.1.7.0.0-Production



SQL>connectscott/tiger;

Connected.

SQL>selectcount(*)fromsysobjects@sql2k;



COUNT(*)

----------

135




如今,oracle已能够会见sqlserver数据库了。以上都是,笔者参考了oracle的联机匡助,而且实践测试的经由。笔者同时也发明,接纳hsodbc实在也并非很不乱,有的sql语句会引发hsodbagent的致命毛病,同时有良多限定,接纳通明网关应当就能够取得很好的效果。

可是,oracle8i的这个特征,能够不安装分外的TransparentGateway产物。因而,只需可以满意使用的数据会见请求,接纳Genericconnectivity也不掉为一个疾速,经济的办法。

笔者的测试情况:Windows2000Server+ORACLE8i(8.1.7)
表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。
海妖 该用户已被删除
沙发
发表于 2015-1-19 19:55:55 | 只看该作者
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-2-4 02:04:32 | 只看该作者
分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。
谁可相欹 该用户已被删除
地板
发表于 2015-2-9 10:19:06 | 只看该作者
换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的
精灵巫婆 该用户已被删除
5#
发表于 2015-2-27 05:37:36 | 只看该作者
另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);
山那边是海 该用户已被删除
6#
发表于 2015-3-8 22:32:52 | 只看该作者
如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。
蒙在股里 该用户已被删除
7#
发表于 2015-3-16 16:11:17 | 只看该作者
所以你总能得到相应的升级版本,来满足你的需求。
深爱那片海 该用户已被删除
8#
发表于 2015-3-22 23:37:54 | 只看该作者
大侠们有推荐的书籍和学习方法写下吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 04:51

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表