오라클 리스너 문제 / PHP 연동 설정좀 봐주세요 ^^
웹서버, 오라클은 동일한 서버에 설치되었습니다.
오라클은 리눅스용 10g 입니다.
php 설치에 문제가 없다는 가정을 합니다.
OCILogon 함수 사용시
Warning: oci_connect() [function.oci-connect]: ORA-28547: connection to server failed, probable Oracle Net admin error
와 같은 에러가 발생합니다.
SQL> select instance from v$thread;
INSTANCE
--------------------------------------------------------------------------------
orcl
SQL> select name from v$database;
NAME
---------
ORCL
SQL>
위와 같습니다.
SID 가 orcl 인가요? 아니면 ORCL 인가요?
listener.ora 파일은 아래와 같습니다.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = /u01/app/oracle/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 서버ip)(PORT = 1521))
)
)
tnsnames.ora 파일은 아래와 같습니다.
orcl =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 서버ip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
아파치 웹서버 시작시 apachectl 파일에 아래와 같은 환경변수가 정의 되어 있습니다.
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1
export ORACLE_OWNER=oracle
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=/u01/app/oracle/oracle/product/10.2.0/db_1/lib:/lib:/usr/lib:/usr/local/lib
export TNS_ADMIN=/u01/app/oracle/oracle/product/10.2.0/db_1/network/admin
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
여태까지 제가 적어드린 정보로...
위와 같은 에러가 나오는 것이 어떤 문제일까요?
조언 부탁드립니다.
두가지 질문중에
두가지 질문중에 하나만 대답해 드리겠습니다.
SID 가 orcl 인가요? 아니면 ORCL 인가요?
오라클 관련 값들은 모두 대문자로 저장이 됩니다. 즉 SQL로 조회를 하면 모두 대문자로 나오게 됩니다. 조회시 조건으로 넣을때도 대문자로 조회를 해야하지요.
단 설정 파일에서는 대소문자 상관이 없이 동작은 잘 됩니다.
tnsnames.ora 파일은 이렇게 바꾸어 보는 것은 어떤지요.
orcl =
(DESCRIPTION =
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 서버ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
댓글 달기