database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Tutorials 17193 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 17193
APM 에 오라클 9i 추가 설치하기
작성자
정재익(advance)
작성일
2004-02-04 12:44
조회수
8,892

다음 글은 http://grace.chonnam.ac.kr/~melchi/lecture.html 에 올라와 있는 김영호님의 글입니다.

----

 

안녕하세요...
몇달던에 Oracle 9i설치기를 올렸던 관리자 입니다.

우선 기본적으로 Redhat CD에 보시면
기본적으로 Apache, php, mysql이 연동되어 설치 하실수 있습니다.
그러나 기본적으로는 Oracle 9i가 같이 설치 안되어 있죠..
이는 php에서 oracle라이브러리를 설정해 주어야 하는데요...

우선 다음과 같은 과정을 거칩니다.

.bash_profile의 내용은 다음과 같습니다.

export ORACLE_HOME=/oracle/OraHome
export JAVA_HOME=/usr/java/j2sdk1.4.0
export JSDK_HOME=/usr/java/j2sdkee1.3
export CLASSPATH=.:$JAVA_HOME/lib:.:$JSDK_HOME/lib/j2ee.jar

export TNS_ADMIN=/oracle/OraHome/network/admin/tnsnames.ora
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601;
export PATH=$PATH:$ORACLE_HOME/Apache/Jsdk/bin:$ORACLE_HOME/bin:$JAVA_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$JSDK_HOME/bin:/home/aladdin/ns-allinone-2.1b7a/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/network/lib
export ORACLE_SID=ORCL
export ULIMIT=2113674
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export USERNAME BASH_ENV PATH

이내용에 대해서는 기본 Oracle 9i를 설치 할때 사용되는 내용들이기 때문에
따로 언급하지는 않겠습니다.

그리고 ld에 oracle이 설치된 lib를 링크하기 위해

/etc/ld.so.conf에

/자신의 Oracle Home/lib
저같은 경우

/oracle/OraHome/lib

를 추가해 줍니다.

그리고

/sbin/ldconfig

를 실행해 주어야 합니다.

그리고 Apache와 php, mysql를 설치한 상태에서 모든 devel패키지를 설치해야 합니다.
그리고 나면 php소스를 받습니다.
저는 4.1.2버전의 php를 사용했습니다.
압축을 풀어 다음과 같은 configure과정을 거칩니다.
구지 다 해줄 필요는 없지만 그래도 기존의 php와 거의 같은 기능을 해기 위해
노력 했습니다.
그리고 curl이나 pspell과 같은 devel패키지와 기타 몇가지 패키지를 요구 할수 있습니다. 필요한 부분은 configure하면서 받으시구요..
여기의 directory를 저의 컴퓨터에 맞추어져있습니다.
기본적으로 Redhat 7.2 CD의 패키지들만을 설치 하셨다면 아래와 같은 구성으로 되어 있을것입니다.

./configure --prefix=/usr --with-apxs=/usr/sbin/apxs --with-mysql=/usr i686-redhat-linux -exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --with-config-file-path=/etc --disable-debug --enable-pic --enable-inline-optimization --with-bz2 --with-curl --with-db3 --with-dom --with-zlib --with-exec-dir=/usr/bin --with-gd --with-gdbm --with-gettext --with-jpeg-dir=/usr --with-mm --with-openssl --with-png --with-regex=system --with-ttf --with-layout=GNU --enable-debugger --enable-ftp --enable-magic-quotes --enable-safe-mode --enable-sockets --enable-sysvsem --enable-sysvshm --enable-track-vars --enable-yp --enable-wddx --without-unixODBC --with-bcmath --with-oci8=/oracle/OraHome --with-pspell --with-xml --enable-sigchild'

여기서 에러 나시는 분들은 옵션을 잘못 넣으셨거나 또는 패키지가 없는 분들입니다. 필요한 패키지를 업그레이드 해야 할경우도 있습니다.
저같은 경우 curl 패키지를 업그레이드 했더니 참으로 lib를 ln 시켜 주어야 했습니다.

make | make install

을 컴파일된 패키지가 해당 파일에 인스톨 됩니다.
그리고

/etc/init.d/httpd restart

하시면 httpd 데몬이 뜨더군요...

그리고 Oracle의 DB를 시작하고 리스너를 띄웁니다

그리고 다음과 같은 테스트 페이지를 만들어 보았습니다.

<?
print "<HTML><PRE>";

$db = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = grace)(PORT = 1521))(CONNECT_DATA = (SID = ORCL)))";

$c1 = ocilogon("scott","tiger",$db);
$c2 = ocilogon("scott","tiger",$db);

function create_table($conn)
{ $stmt = ociparse($conn,"create table scott.hallo (test varchar2(64))");
  ociexecute($stmt);
  echo $conn." created table\n\n";
}

function drop_table($conn)
{ $stmt = ociparse($conn,"drop table scott.hallo");
  ociexecute($stmt);
  echo $conn." dropped table\n\n";
}

function insert_data($conn)
{ $stmt = ociparse($conn,"insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn." inserted hallo\n\n";
}

function delete_data($conn)
{ $stmt = ociparse($conn,"delete from scott.hallo");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn." deleted hallo\n\n";
}

function commit($conn)
{ ocicommit($conn);
  echo $conn." committed\n\n";
}

function rollback($conn)
{ ocirollback($conn);
  echo $conn." rollback\n\n";
}

function select_data($conn)
{ $stmt = ociparse($conn,"select * from scott.hallo");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn."----selecting\n\n";
  while (ocifetch($stmt))
    echo $conn." <".ociresult($stmt,"TEST").">\n\n";
  echo $conn."----done\n\n";
}

create_table($c1);
insert_data($c1);   // Insert a row using c1
insert_data($c2);   // Insert a row using c2

select_data($c1);   // Results of both inserts are returned
select_data($c2);  

rollback($c1);      // Rollback using c1

select_data($c1);   // Both inserts have been rolled back
select_data($c2);  

insert_data($c2);   // Insert a row using c2
commit($c2);        // commit using c2

select_data($c1);   // result of c2 insert is returned

delete_data($c1);   // delete all rows in table using c1
select_data($c1);   // no rows returned
select_data($c2);   // no rows returned
commit($c1);        // commit using c1

select_data($c1);   // no rows returned
select_data($c2);   // no rows returned


drop_table($c1);
print "</PRE></HTML>";
?>

프로그램 다음과 같인 실행되어야 정상입니다.

Resource id #3 created table

Resource id #3 inserted hallo

Resource id #4 inserted hallo

Resource id #3----selecting

Resource id #3

Resource id #3

Resource id #3----done

Resource id #4----selecting

Resource id #4

Resource id #4

Resource id #4----done

Resource id #3 rollback

Resource id #3----selecting

Resource id #3----done

Resource id #4----selecting

Resource id #4----done

Resource id #4 inserted hallo

Resource id #4 committed

Resource id #3----selecting

Resource id #3

Resource id #3----done

Resource id #3 deleted hallo

Resource id #3----selecting

Resource id #3----done

Resource id #4----selecting

Resource id #4----done

Resource id #3 committed

Resource id #3----selecting

Resource id #3----done

Resource id #4----selecting

Resource id #4----done

Resource id #3 dropped table

그리고 실행도중 TNS 에러 번호가 나오면 Oracle은 실행되는데
DB나 사용자 패스워드가 틀리거나 없어서 그런거구요..
있는데 안되는건 아에 OCI가 컴파일 안되었다는 겁니다.
그럼...

행운이 있으시길

 

[Top]
No.
제목
작성자
작성일
조회
17301Parallel load 기능의 활용 예제
정재익
2004-02-11
7533
17300Parallel 인덱스 사용시 주의사항
정재익
2004-02-11
7686
17299PARALLEL DML 사용 방법
정재익
2004-02-11
11526
17193APM 에 오라클 9i 추가 설치하기
정재익
2004-02-04
8892
17192RedHat 8 에 Oracle 9i 설치하기
정재익
2004-02-04
11822
16672[참고] 오라클 리스너에서 접속 제한하기
문태준
2003-12-10
8985
16462[참고] 오라클 9I에서 XDB때문에 8080,2100 포트가 자동으로 뜨네요
문태준
2003-11-25
11541
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.045초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다