一个SDE无法启动的问题以及解决方案
环境:
SDE9.3.1+SP2(64bit)
OS: Redhat 5.5 X64
DBMS: Oracle10.2.0.4(64bit)
周末,同事将Oracle的plsql_compiler_flags的值改成NATIVE后,再启动SDE的时候会报一些对包没有执行权限的错误,今天来到公司,查看了一下资料,发现从oracle10g开始,plsql_compiler_flags参数已经被oracle废掉了,替代它的参数为plsql_code_type ,我将plsql_code_type 参数改成NATIVE之后,并且将plsql_native_library_dir=’/home/oracle’,后,启动SDE的服务,的确是报以下的错误:
192.168.200.231 [sde ~]$ sdemon -o start -p sde
——————————————————-
ArcSDE 9.3.1 for Oracle10g Build 3073 Mon Nov 1 15:00:58 2010
——————————————————-
ST_Geometry Schema Owner: (SDE) Type Release: 1007
Instance initialized for ((sde)) . . .
Connected to instance . . .
SQL Stmt:
Execute privilege for required Oracle builtin package DBMS_PIPE must be directly granted for the SDE DBA user, granting them a ROLE with execute access is insufficient.
Could not start ArcSDE — Check Network, $SDEHOME disk, DBMS settings and dbinit.sde.
同时在/home/oracle的目录下发现如下的一些文件:
1:
192.168.200.231 [oracle ~]$ ls -l
2: -rw-r--r-- 1 oracle oinstall 5945 Dec 21 12:50 DBMS_PIPE__SYS__S__4290.c
3: -rw-r--r-- 1 oracle oinstall 4329 Dec 21 12:45 SDE22607_TEST__SDE__P__66117.c
4: -rw-r--r-- 1 oracle oinstall 4329 Dec 21 12:48 SDE23300_TEST__SDE__P__66118.c
5: -rw-r--r-- 1 oracle oinstall 4329 Dec 21 12:49 SDE23416_TEST__SDE__P__66119.c
但是没有.so和.o文件产生,这非常让人纳闷,从这些c文件的权属上看,应该oracle使用Oracle用户生成的,没有生成.o和.so文件的原因可能是oracle使用sde用户编译这些c文件,结果sde用户没有/home/oracle的写权限,所以失败了,因此修改了plsql_native_library_dir的值为’/app/oracle/plsqllibrary’,并将该目录的权限为777后,接着启动服务,服务启动成功了,在/app/oracle/plsqllibrary目录下生成了一些.so和.o文件,如下:
1:
2:
192.168.200.231 [oracle plsqllibrary]$ ls -l
3:
total 52
4: -rw-r--r-- 1 oracle oinstall 19088 Dec 21 12:55 DBMS_PIPE__SYS__B__4397.o
5: -rwxr-xr-x 1 oracle oinstall 15104 Dec 21 12:55 DBMS_PIPE__SYS__B__4397.so
6: -rw-r--r-- 1 oracle oinstall 3024 Dec 21 12:55 DBMS_PIPE__SYS__S__4290.o
7: -rwxr-xr-x 1 oracle oinstall 3408 Dec 21 12:55 DBMS_PIPE__SYS__S__4290.so
8: -rw-r--r-- 1 oracle oinstall 2472 Dec 21 12:55 SDE24825_TEST__SDE__P__66120.o
9: -rw-r--r-- 1 oracle oinstall 2472 Dec 21 13:00 SDE25646_TEST__SDE__P__66121.o
至于plsql各项参数的具体含义可以查看:
http://blog.chinaunix.net/u1/57759/showart_458450.html
转载自:https://blog.csdn.net/liufeng1980423/article/details/6089230