您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

怎么配置 Oracle 侦听器来使用SQL操作ST

2024/3/21 14:09:31发布28次查看
关于这个内容,其实从arcsde9.2推出st_geometry就让用户感到很有吸引力,而且特别是在arcsde9.3之后,用户使用sql操作st_geometry越来越多,但是在配置oracle监听来说总是碰到这样那样的问题,以下就是总结一下配置 oracle 侦听器来使用sql操作st_geometry
关于这个内容,其实从arcsde9.2推出st_geometry就让用户感到很有吸引力,而且特别是在arcsde9.3之后,用户使用sql操作st_geometry越来越多,但是在配置oracle监听来说总是碰到这样那样的问题,以下就是总结一下配置 oracle 侦听器来使用sql操作st_geometry 。
首先说明一下:如果你的arcsde版本是9.2最好不要使用这种方式,因为bug也是比较多的。
例如:http://support.esri.com/en/knowledgebase/techarticles/detail/33918
1:我们需要使用sql操作st_geometry,那么我们的数据存储都应该以st_geometry,但是有一点容易被用户忽视的就是原来的数据可能是arcsde9.2他们都是以blob或者long raw进行存储,然后升级到arcsde9.3但是存储没有升级,这样怎么配置都不能sql操作,这是往往被用户忽视的问题。
解决该问题:使用migrate工具迁移一下存储。
2:查看一下oracle的监听状态,extporc(clrextproc)的状态必须为静态(unknow),如果是ready状态就有可能出现问题,而且oracle监听必须同时监听tcp和ipc
c:\users\administrator>lsnrctl statuslsnrctl for 64-bit windows: version 11.2.0.1.0 - production on 26-12月-2011 10:29:44copyright (c) 1991, 2010, oracle. all rights reserved.正在连接到 (description=(address=(protocol=ipc)(key=extproc1521)))listener 的 status------------------------别名 listener版本 tnslsnr for 64-bit windows: version 11.2.0.1.0 - production启动日期 26-12月-2011 10:28:14正常运行时间 0 天 0 小时 1 分 34 秒跟踪级别 off安全性 on: local os authenticationsnmp off监听程序参数文件 d:\app\administrator\product\11.2.0\dbhome_1\network\admin\listener.ora监听程序日志文件 d:\app\administrator\diag\tnslsnr\lish\listener\alert\log.xml监听端点概要... (description=(address=(protocol=ipc)(pipename=\\.\pipe\extproc1521ipc))) (description=(address=(protocol=tcp)(host=192.168.100.111)(port=1521)))服务摘要..服务 clrextproc 包含 1 个实例。 实例 clrextproc, 状态 unknown, 包含此服务的 1 个处理程序...服务 orcl 包含 2 个实例。 实例 orcl, 状态 unknown, 包含此服务的 1 个处理程序... 实例 orcl, 状态 ready, 包含此服务的 1 个处理程序...服务 orclxdb 包含 1 个实例。 实例 orcl, 状态 ready, 包含此服务的 1 个处理程序...命令执行成功
3:如果是分布式安装情况下a:比如服务器安装的64bit的oracle服务器端,arcsde机器安装的32bit的软件,两者都是windows操作系统
b:比如服务器安装的64bit的oracle服务器端,aix操作系统,arcsde机器安装的32bit的软件,windows操作系统
那么这就需要根据服务器端的oracle的位数以及所以的操作系统来定相关的dll或者so的位数,也就是说这个配置必须跟oracle的服务器端打交道,我们根据服务器的操作系统和位数来定
解决:
a:在服务器端安装一个64bit的arcsde软件即可,其实最主要的就是需要64bit的相关dll
b:在服务器端安装一个64bit的适用于aix操作系统的arcsde软件,一样道理
4:引用相关的dll以windows为例,不仅仅只有一个st_shapelib.dll,还包括pe.dll,sg.dll,所以在使用过程中需要注意是否这三个dll都存在,在非windows环境下更是如此,此外还需要注意对这三个文件的读写操作。
5:配置完毕,我们可以使用以下命令来检查
注意:这个是在sde用户下
sql> select * from user_libraries;library_name------------------------------file_spec--------------------------------------------------------------------------------------------------d status- -------st_shapelibc:\program files\arcgis\arcsde\ora11gexe\bin\st_shapelib.dlly valid
如果没有的话
sql> create or replace library st_shapelib 2 as 'd:\oracle\product\11.2.0\dbhome_1\bin\st_shapelib.dll'; 3 /库已创建。sql> alter package sde.st_geometry_shapelib_pkg compile reuse settings;程序包已变更。
6:其实配置来说,也就是对listener.ora和tnsname.ora文件的配置listener.ora:文件主要对相关st_shapelib.dll的引用,用户也可以将我所讲到的三个dll拷贝到oracle_home/bin文件夹里面,注意相关的权限,然后extproc_dlls=any,这种方法也可以可以的。
# listener.ora network configuration file: d:\app\administrator\product\11.2.0\dbhome_1\network\admin\listener.ora# generated by oracle configuration tools.sid_list_listener = (sid_list = (sid_desc = (sid_name = clrextproc) (oracle_home = d:\app\administrator\product\11.2.0\dbhome_1) (program = extproc) (envs = extproc_dlls=any) ) (sid_desc = (global_dbaname = orcl) (oracle_home = d:\app\administrator\product\11.2.0\dbhome_1) (sid_name = orcl) ) )listener = (description_list = (description = (address = (protocol = ipc)(key = extproc1521)) (address = (protocol = tcp)(host = 192.168.100.111)(port = 1521)) ) )adr_base_listener = d:\app\administrator
7:tnsname.ora文件来说就是两个文件都有key值,保证这两个文件的key值一致就可以了,还有就是以我的经验,安装最新版本的oracle比如现在我机器的环境就是oracle 11.2.0.1,他的tnsname文件并不会出现extproc_connection_data关键字,所以我们需要修改为这个关键字即可。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product