前两天进行客户服务时,使用asp程序访问oracle数据库,出现了多次的意外问题,将问题和解决方法总结如下:

 

1. 连接数据库的时候使用的服务名称有可能存在与实例数据库的SID不同的情况。客户的数据库ID是asdf,而连接使用的服务名称是asdf.cn。在以后测试连接的时候,要注意这样的问题,并不是所有的用户的数据库名称和服务名称都是一致的。

 

2. oracle服务器的机器上同时有两个网卡时,使用应用程序连接数据库会失败。因为oracle是用计算机名字来启动服务的,而两个IP同时存在,就会连接失败。目前的处理办法是禁用一个网卡。网络上提供另一种解决方案,就是修改ora配置文件,但是我在一台机器上进行尝试时,如果把机器名换成IP,会导致数据库服务启动失败。

 

3. asp中使用OleDB进行连接oracle时,有可能出现provider不存在的错误,这种情况出现的原因是执行asp脚本的windows用户oracleoledb组件没有使用权限。解决的办法为,在oracle安装的位置,即ORACLE_HOME目录上,检查属性中的安全,将其中“Authenticated Users”用户的读取和允许权限的去掉-》应用-》选择-》应用,这样重新设置了对此目录的用户权限,就可以解决provider不存在的错误。其实更准确的做法是为oralce oledb组件设置权限,现在还不是十分清楚应该设置哪些。

 

4. 在使用oracleoledb中,如果进行blob类型数据的操作,可能会因为组件版本的问题而失败。最后使用的oracle9201中带的oledbmdac2.7,运行成功。

 

5. 将表从tablespace A转移到tablespace B,可以使用alter tablename move tablespace tablespacename 这样的SQL语句。但是表上的索引需要重新建立,因为原来的索引还使用原有的表空间,而且表移动后不能删除。可能需要在在移动表之前先删除索引。

 

6. oracle的权限设置是部署中需要注意的问题,因为程序可能因为权限问题而运行失败。一般应建立connect权限和resource权限,同时还要配置用户在表空间上的配额。值得注意的是,权限设置中通过角色赋予的权限在存储过程中无效。

posted on 2005-02-18 14:59  半梦半醒之间  阅读(1238)  评论(0编辑  收藏  举报