Sun Tech Days 2008 Seoul

Etc 2008.10.01 14:48

이번에 초대를 받아 썬테크데이에 갑니다!

초대해 주신 박안나님께 감사드립니다.^^

Agenda 를 간단히 소개합니다~

http://kr.sun.com 에 가시면 자세한 정보를 볼 수 있습니다~

 
 
 
 
 
시 간 내 용
07:30 ~ 09:00 참가 등록
09:00 ~ 09:10
환영 오프닝쇼
09:10 ~ 09:50
기술 데모 : 참여의 시대 내일의 기술
09:50 ~ 10:10
환영사
10:10 ~ 11:00 기조 연설
Rich Green/썬마이크로시스템즈 소프트웨어부문 수석 부사장
11:00 ~ 11:20
휴식 및 전시부스 방문
  자바와 클라우드
컴퓨팅
효율적인 개발을
위한 혁신
오픈솔라리스 Hands-on-Lab
(실습)
11:20 ~ 12:10 GlassFish와
Java EE의 미래
JavaSE6U10 무엇이
달라졌나
리눅스의 미래 :
오픈솔라리스
JAX_WS와 WSIT를
이용하여 신뢰도와
보안성 높은
웹 서비스 구축하기
12:20 ~ 13:10 Zembly와
SocialSite를 이용한
클라우드 컴퓨팅
MySQL: Web 2.0을
위한 데이터베이스
C/C++/Fortran
애플리케이션 구축
13:20 ~ 14:20 점심 식사 및 부스 방문
14:20 ~ 15:10 Ajax와 프레임워크 JavaFX로 RIA 쉽게
만들기
오픈솔라리스와
리눅스를 위한
애플리케이션 성능
최적화 기술
시스템 어드민 이론:
ZFS를 활용한 간편한
데이터 관리
15:20 -16:10 자바 플랫폼의
신기능
Real Time Java로
예측 가능한
시스템 만들기
오픈솔라리스
개발방법 및
IPS 저장소에의
이용방법
시스템 어드민 이론:
오픈스토리지
16:20- 16:40 휴식 및 전시 부스 방문
16:40 - 17:30 자바 성능 향상 JavaFX로 쉽게
만드는 애니메이션과
미디어
오픈솔라리스 시작과
쿨 피쳐
Ajax 프레임워크를
이용하여 리치 웹
애플리케이션 구축하기
17:40 - 18:30 (J)Ruby와 Rails DTrace로 JVM 내부
들여다 보기
오픈솔라리스에서
개발부터 배포까지
18:40 - 19:05 경품 추첨
 
 
시 간 내 용
09:00 ~ 09:10 환영사
09:10 ~ 09:50
썬 커뮤니티 기조 연설
09:50 ~ 10:40
스폰서 기조연설
10:40 ~ 11:00
개발자 스타킹 대회 - 개발자 스타를 찾아라!
11:00 ~ 11:30
휴식 및 전시 부스 방문
  자바와 Web 2.0 Scripting and
Deployment
오픈솔라리스 Hands-on-Lab
(실습)
11:30 ~ 12:20 REST를 통한
네트워킹
자바 챔피언 세션 오픈솔라리스와
리눅스를 위한 병렬
애플리케이션의 개발
JavaFX
12:30 ~ 13:00 대화의 시간
-여러분이 주인공입니다!
대화의 시간
-여러분이 주인공입니다!
대화의 시간
-여러분이 주인공입니다!
13:00 ~ 14:00 점심 식사 및 전시 부스 방문
14:00 ~ 14:50 클라이언트와 서버를
위한 AMD의 색다른
제안
OpenESB와
기업 네트워킹
Intel 세션 DTrace를 이용하여
자바 애플리케이션
해부하기
15:00 -15:50 Comet 및Ajax를
이용한
웹 어플리케이션 개발
JavaME를 위한
LWUIT와 JSR
고가용과 업무
연속성을 위한
아키텍쳐
16:00 - 16:20 휴식 및 전시 부스 방문
16:20 - 17:10 자바 프레임워크
사례 연구
OpenSSO 및
OpenID를 비롯한
웹보안 강화방안
데스크탑 및 기업을
위한 가상화 기술
ZFS & IPS HOL
17:20 - 18:10 EJB 3, Spring,
SEAM
AMP를 활용하여
애플리케이션 성능
향상하기
안전한 개발부터
배포까지
18:20 - 18:10 경품 추첨

Posted by 행복한 프로그래머 궁금쟁이박

댓글을 달아 주세요

Posted by 행복한 프로그래머 궁금쟁이박

댓글을 달아 주세요

환경
Tomcat 5.5
JDK 1.6

순서
JDK 1.6을 설치
Tomcat 5.5 설치
JK-Connector 설정

JDK 1.6 설치

1. http://java.sun.com 에서 솔라리스용 jdk 1.6 을 다운로드 받는다.

사용자 삽입 이미지

   32 비트 버전부터 다운 받아야 한다.
 
  #  zcat jdk-6<update>-solaris-sparc.tar.Z | tar -xf -
 
   이전 버전 패키지를 삭제한다.
  
   # pkgrm SUNWj6rt SUNWj6dev SUNWj6cfg SUNWj6man SUNWj6dmo
  
   패키지를 설치한다.
  
 #  pkgadd -d . SUNWj6rt SUNWj6dev SUNWj6cfg SUNWj6man SUNWj6dmo
  
2. 64 비트 버전을 받아 설치한다.

   # zcat jdk-6<update>-solaris-sparcv9.tar.Z | tar -xf -
  
   이전 버전 패키지를 삭제한다.
  
   # pkgrm SUNWj6rtx SUNWj6dvx SUNWj6dmx
  
   패키지를 설치한다.
  
   # pkgadd -d . SUNWj6rtx SUNWj6dvx SUNWj6dmx

Tomcat 5.5 설치
http://tomcat.apache.org 에서 Tomcat5.5를 받는다.

사용자 삽입 이미지

tar 형식으로 된 파일이 tar를 풀면서 에러가 나타났기 때문에
zip 형식으로 된 tomcat 파일을 받는다.

# unzip apache-tomcat-5.5.25.zip
압축을 풀면 디렉토리가 생긴다.
이 디렉토리를 옮긴다.
# mv ./apache-tomcat-5.5.25 /usr/local/tomcat5

아래 파일에 아래 내용을 추가한다.
# vi /etc/profile
export JAVA_HOME="/usr/jdk/jdk1.6.0_03/"
CLASSPATH=".:/usr/jdk/jdk1.6.0_03/lib/tools.jar"
export CLASSPATH
CATALINA_HOME=/usr/local/tomcat5
PATH=$PATH:$CATLINA_HOME/bin
export CATALINA_HOME
# source /etc/profile
위 명령어를 실행 시키면 적용된다.

zip 으로 압축을 푼 파일은 파일 권한에 실행 권한이 없다.
그러므로 실행권한을 준다.
디렉토리 변경후
# cd /usr/local/tomcat5/bin/
# chmod 755 ./*


# /usr/local/tomcat5/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat5
Using CATALINA_HOME:   /usr/local/tomcat5
Using CATALINA_TMPDIR: /usr/local/tomcat5/temp
Using JRE_HOME:       /usr/jdk/jdk1.6.0_03/

설치 확인
http://localhost:8080/
사용자 삽입 이미지


JK-Connector를 솔라리스용으로 컴파일된 걸 받는다.
http://tomcat.apache.org
이 곳에서 받을 수 있다.
사용자 삽입 이미지

이 파일을 이 위치에 둔다.

/usr/local/apache2/modules/mod_jk.so

/usr/local/tomcat5/conf/server.xml
에 아래 내용을 추가한다.
참고로 defaultHost 를 꼭 바꿔준다. localhost 로 두면 외부에서 확인 불가능이다.
<Engine name="Catalina" defaultHost="203.249.108.164"> <== 보통 요녀석 밑에 추가한다.
        <Listener
className="org.apache.jk.config.ApacheConfig" modJk="/usr/local/apache2/modules/mod_jk.so" />
        <Listener className="org.apache.jk.config.ApacheConfig" append="true" forwardAll="true" modJk="/usr/local/apache2/modules/mod_jk.so" />



/etc/apache2/httpd.conf 에 아래 내용을 추가한다.
Include "/usr/local/tomcat5/conf/auto/mod_jk.conf"

Posted by 행복한 프로그래머 궁금쟁이박

댓글을 달아 주세요

보통 PHP의 개발환경으로 리눅스를 기반으로 하기 마련인데, 얼마전에 솔라리스 10기반으로 설치해볼 기회가 있어서 설치 후 정리해봅니다. 생각보다 상당히 까다로웠던 기억이 나네요.

특히 Oracle 10g와의 연동부분에서 많이 해매었습니다. 왜냐하면 Oracle 9i까지는 OCI를 설치하면 오라클 설치디렉토리 내에 OCI라는 폴더가 생기는데 Oracle 10g 클라이언트의 유닉스버전은 그게 아니더군요. 웃긴건 윈도우용 Oracle 10g 클라이언트는 OCI라는 폴더가 또 생기더라는...

기본 환경은 다음과 같습니다.

Server: Web Server * 2, Database Server * 1
OS: SunSparc Solaris 10
Web Server: Apache 2.0.59
Script Language: PHP 5.2.2
Database: Oracle 10g Database Server

데이터베이스 서버는 별도로 이미 구축되어 있으며, 웹 서버 2대는 클러스터로 구축해서 만일의 경우를 대비하는 것입니다. 서버 장비에 대한 것은 깊은 지식이 없으므로 일단 패스~

웹서버 한대에 위의 환경을 구축하는 것을 기준으로 합니다.(오라클은 클라이언트가 이미 설치되어 있다고 가정합니다.) 그리고 오라클과의 연동을 위해서는 패키지 형식은 현재 지원이 안되고 컴파일 형식으로 설치를 진행해야 합니다.

1. 사전준비
우선 필요한 패키지를 다운로드 받아야 합니다. 솔라리스 관련 패키지는 http://www.sunfreeware.com에서 모두 받을 수 있습니다. 필요한 패키지는 다음과 같습니다.

libgcc: gcc를 설치하기 위해 필요
libiconv: gcc, apache를 설치하기 위해 필요
gcc: php를 컴파일하기 위해 필요
make: 보통은 운영체제 설치시 설치해줍니다. 설치 안되어 있다면 설치해야 php를 컴파일할 수 있습니다.
indent: flex를 설치하기 위해 필요
flex: php를 설치하기 위해 필요
autoconf: bison을 설치하기 위해 필요
m4: php, bison을 설치하기 위해 필요
bison: php를 설치하기 위해 필요
perl: php, automake를 설치하기 위해 필요
automake: php를 설치하기 위해 필요
gzip: php를 설치하기 위해 필요
tar: php를 설치하기 위해 필요. 보통은 운영체제시 기본으로 설치합니다.
GNU sed: php를 설치하기 위해 필요
expat: Apache를 설치하기 위해 필요
gdbm: Apache를 설치하기 위해 필요
db-4.2.52.NC: Apache를 설치하기 위해 필요
openssl: Apache를 설치하기 위해 필요


위의 패키지들이 설치되어 있는지 반드시 확인해보시길 바랍니다.(pkginfo 명령어) 설치되어 있으면 지나치고 설치안되어있으면 설치해줘야 합니다. 라이브러리들을 설치하는데는 반드시 순서가 있습니다. 즉, 특정 라이브러리를 설치하기 위해서는 다른 라이브러리가 먼저 설치되어야 할 경우들이 많습니다. 그런 사항은 위의 사이트에 잘 나와있으니 참조하시길 바랍니다.

2. Apache 2.0.59 설치
우선 Apache를 설치합니다. 요즈음은 동적 모듈 방식(DSO)으로 설치를 많이하는 추세이니 여기서도 동적 모듈을 이용하도록 설치합니다. 패키지형식은 모두 동적모듈방식입니다.

# gzip -d apache-2.0.59-sol10-sparc-local.gz
# pkgadd -d apache-2.0.59-sol10-sparc-local

vi /usr/local/apache/conf/httpd.conf  이파일 설정

#Group #-1 --> Group nogroup 으로 변경

3. Oracle 10g 설치 확인
Oracle 10g 클라이언트가 사전에 설치되어 있어야 합니다. 특히 Oracle Call Interface가 설치되어 있는지 반드시 확인해야 합니다.

Oracle 10g 유닉스버전은 OCI라는 디렉토리가 아닌 instantclient라는 개념으로 접근합니다. 만일 $ORACLE_HOME에 instantclient라는 디렉토리 자체가 없으면 아래의 URL에서 Basic역시 다운로드 받아야 합니다. 이때 SDK도 같이 다운로드 받아야 합니다.

http://www.oracle.com/technology/software/tech/oci/instantclient/index.html

설치에 대해서는 생략합니다. 여기서는 $ORACLE_HOME/instantclient라는 이름으로 설치되어있다고 가정합니다. 그리고 instantclient안에는 반드시 SDK라는 디렉토리로 SDK 모듈이 설치되어 있어야 합니다.

4. root profile 확인
PHP 컴파일은 ROOT 계정으로 진행할 것입니다. OCI 연결시 $ORACLE_HOME 변수와 $LD_LIBRARY_PATH를 찾으므로 반드시 설정해야 합니다.

.profile 예제
ORACLE_HOME=/path/to/oracle;export ORACLE_HOME;
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/instantclient;export LD_LIBRARY_PATH

5. PHP 5.2.2 설치
php 컴파일하는 것은 리눅스와 같습니다. configure -> make -> make install 차례로 진행합니다.

여기서 주의할 것은 configure 시 오라클 연동 옵션부분인데, 이전처럼 단순히 with-oci8={path} 로 하면 못찾습니다. 그리고 PHP 4.X 버전때랑 PHP 5.X 버전때랑도 약간 틀리니 주의하시기 바랍니다.

1) configure
[ PHP 5.0 이상 ]
./configure \
--prefix=/usr/local/php \
--with-oci8=instantclient,/oracle/app/oracle/product/10_client/instantclient \
--with-apxs2=/usr/local/apache2/bin/apxs

[ PHP 4.7 ]
./configure \
--prefix=/usr/local/php \
--with-oci8-instant-client=/oracle/app/oracle/product/10_client/instantclient \
--with-apxs2=/usr/local/apache2/bin/apxs

2) make & make install
명령어는 쉬우니 생략하고, 진행시 다음의 두가지 오류가 발생할 수 있습니다.
- make 시 oracle의 instandclient의 wrong ELF class: ELFCLASS64 관련 오류
- make install 시 아파치 연결때 /usr/local/bin/sed를 못찾는 오류

위의 두 오류에 대해서는 다음과 같이 해결합니다.
[ ELFCLASS64 관련 오류 ]
- instantclient는 설치하면 32비트용과 64비트용으로 설치됩니다. 보통 위의 오류는 64bit형으로 설치했을 때 발생합니다.
- $ORACLE_HOME내에 있는 instantclient를 instantclient64로 변경하고 instantclient32를 instantclient로 변경합니다. 그리고 SDK를 복사해서 넣어주고 make하면 됩니다.

[ /usr/local/bin/sed를 못찾는 오류 ]
- ln -s /usr/bin/sed /usr/local/bin/sed 로 소프트링크를 걸고 다시 시도하면 됩니다.

3) php.ini 복사
php.ini를 /usr/local/php/lib 밑에 복사해서 넣고 환경에 맞게 설정합니다. 그리고 httpd.conf안에 php5 모듈 올라왔는지 확인하고 AddType을 통해서 확장자 지정합니다. 이부분은 많은 자료가 이미 나와있으므로 생략합니다.

6. 최종확인
Apache를 구동하고 홈디렉토리로 가서 phpinfo를 출력하는 페이지를 만들어 확인합니다. OCI8항목이 있는지 확인하면 됩니다.

Posted by 행복한 프로그래머 궁금쟁이박

댓글을 달아 주세요

  1. BlogIcon moncler chaquetas 2013.01.05 21:49 신고  댓글주소  수정/삭제  댓글쓰기

    Près de deux millions de catholiques?philippins ont défilé pieds nus dimanche dans les rues de Manille dans le cadre?de la procession annuelle du Nazaréen noir, http://www.moncleroutletespain.com/ moncler online, une statue de Jésus Christ qui, http://www.moncleroutletespain.com/ http://www.moncleroutletespain.com/?serait dotée de pouvoirs miraculeux, http://www.moncleroutletespain.com/ moncler chaquetas. La statue de bois noir, taillée au Mexique et acheminée aux Philippines au?début du 17ème siècle, http://www.moncleroutletespain.com/ moncler españa, quitte chaque 9 janvier l'Eglise de Quiapo de Manille, http://www.moncleroutletespain.com/ moncler outlet?pour une grande parade dans les rues de la capitale de l'archipel largement?catholique, http://www.moncleroutletespain.com/ moncler.Related articles:


    http://ahndoori.tistory.com/5 http://ahndoori.tistory.com/5

    http://jejuq.tistory.com/category/Mobile?page=15 http://jejuq.tistory.com/category/Mobile?page=15

SPARC 환경
Solaris 10
Apache 2.059

설치 과정
Xwindow 에서 설치를 하였습니다.

사용자 삽입 이미지

http://www.sunfreeware.com/ 에서 필요한 자료를 모두 다운 받습니다.
SPARC / Solaris 10을 클릭합니다.
사용자 삽입 이미지

그 다음 우리가 설치할 apache2.059를 선택합니다.

사용자 삽입 이미지

그러면 바로 다운 받을 수 있는 링크가 나옵니다. 클릭해서 받으세요
사용자 삽입 이미지
디스크에 저장합니다.
사용자 삽입 이미지
저장 할 곳을 선택한 다음 파일이름 확인하고 저장합니다.
사용자 삽입 이미지

아까 apache2.0.59를 선택하면 그 하위에 종속 관계가 있는 프로그램들이 있습니다.
문제가 생기지 않도록 이 프로그램들도 모두 다운을 받습니다.
사용자 삽입 이미지

다운 받아야 하는 프로그램 중의 하나 입니다.
사용자 삽입 이미지
모두 다운을 받습니다.
사용자 삽입 이미지
설치는 root 권한으로 진행합니다. 콘솔창을 띄우고 root 사용자로 변경합니다.
$> su -

사용자 삽입 이미지

작업의 편리성을 위해 설치한 디렉토리로 이동합니다. 그리고 다운이 된 목록을 확인해보고 이제 압축을 풉니다.
#> gunzip ./*.gz
이렇게 명령을 치면 모든 파일들이 압축을 해제하고 -local 형식으로 나타납니다.
사용자 삽입 이미지

기존에 설치된 Apache를 삭제 합니다.
우선 기존에 설치되어 있는 패키지를 확인합니다.

#> pkginfo -i | grep -i apache
system SUNWapchd Apache Web Server Documentation
system SUNWapchr Apache Web Server (root)
system SUNWapchu Apache Web Server (usr)


아래 명령어를 통해 기존에 있던 아파치 패키지를 삭제 합니다.
#> pkgrm 패키지 이름


주의:
만약 이전에 다른 SAMP 문서를 통해, 컴패니언 CD의 스크립트를 통해서, 혹은 직접적으로 아파치 1.3 버전을 활성화 시켰다면 이러한 단계를 밟아 나갈때 충돌이 생길 수 것입니다. 진행하기 전에 아파치 1.3을 비활성화 시키는 것이 중요 합니다.

아파치 1.3이 비활성화 됐음을 확인 합니다:

 #svcs -a | grep apache
 legacy_run Sep_11lrc:/etc/rc3_d/S50apache
이것은 아파치 1.3의 레가시 rc 시작 스크립트가 /etc/rc3_d/S50apache 임을 보여 줍니다. 스크립트는 아파치의 설정파일 /etc/apache/httpd.conf 의 존재를 찾습니다. 그리고 만약 파일이 존재 하지 않으면 아파치 1.3은 기동되지 않습니다. 아파치 1.3을 비활성화 하려면 이전에 언급했던 패스에 파일이 존재하지 않음을 확인 하던지 혹은 시작 스크립트의 이름을 바꿔 버립니다. 이름을 다음에서:
 /etc/rc3_d/S50apache

다음으로 바꿔줍니다:

/etc/rc3.d/OFF-S50apache

"S" 로 시작하는 스크립트들 만이 실제로 부팅시에 시작 됩니다.

모든 준비가 완료되면 아까 받아서 풀어 놓은 아파치 2.0.59를 설치합니다.
#> pkgadd -d apache-2.0.59-sol10-sparc-local

환경설정 파일의 위치를 지정해준다.
#> /usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf

아래  이 파일 설정
솔라리스에서는 이것을 꼭 고쳐야 아파치가 실행이 된다.
# vi /usr/local/apache2/conf/httpd.conf
Group #-1 --> Group nogroup 으로 변경

아파치 2 기동시키기:
# /usr/local/apache2/bin/apachectl start


만약 아파치 2가 성공적으로 기동 되면 ps 커맨드를 사용하여 아래와 같은 몇몇 프로세스들을 확인할 수 있어야 합니다\:

# ps -ef | grep http
webservd 18592 38020Sep 11 ? 0:03 /usr/apache2/bin/httpd -k start
webservd 13093 38020Sep 08 ? 0:07 /usr/apache2/bin/httpd -k start

10개 이상의 이와 같은 프로세스들을 발견하더라도 놀라지 말기 바랍니다. 또한 다음과 같은 프로세스에도 놀라지 마십시오:

root 49810 Jul 17 ? 1:28 /usr/apache/bin/httpd  \
                 -f /etc/apache/httpd-standalone-ipp.conf

이것은 간단히 예전의 아파치 1.3이 네트워크 포트 631번에서 IPP(Internet Print Protocol)에 의해 사용되고 있음을 나타냅니다. 포트 80번에서 동작하지 않기 때문에 이 글에서 설정하는 웹서버의 충돌은 일어나지 않을 것입니다.

직접 창을 띄워 확인해 보자
주소는 http://localhost

사용자 삽입 이미지
Posted by 행복한 프로그래머 궁금쟁이박

댓글을 달아 주세요

1. 가장 먼저 오라클 홈페이지에서 데이터베이스를 다운받아야 한다.

   www.oracle.co.kr 에 가서 계정을 만든다. 그런 다음 메인 페이지에서 오른쪽 위에 다운로드가 보인다. 

다운로드 페이지에서 Accept License Agreement 에 체크한 뒤 다운로드 리스트에서 SPARC 을 지원하는 오라클 데이터베이스를 선택한다

사용자 삽입 이미지

이동하면 그 곳에 10gr2_db_sol.cpio.gz 가 보일 것이다. Accept 에 체크한 뒤 다운로드 받는다.

설치 시 오라클 계정으로 설치하기 위해 /export/home/oracle 폴더에 다운로드 받는 것을 권장한다.

사용자 삽입 이미지


2. 오라클은 모두 /export/home/oracle 에 설치해야 한다.

   오라클에서 권장하는 사양은 512MB 이상의 램, 1GB 이상의 스왑공간이 필요하다.

   시스템 커널 파라미터를 변경해야 한다. 주로 공유 메모리와 관련된 파라미터를 늘려야한다.  /etc/system 파일은 매우 중요하므로 백업받은 후 수정하도록 한다.

 

  -bash-3.00$ cp /etc/system /etc/systemold

  -bash-3.00$ vi /etc/system

 

  vi 편집기로 파일을 연 뒤 맨 아래 부분에 다음을 추가해준다.

 

  set semsys:seminfo_semmni=100

set semsys:seminfo_semmns=1024

set semsys:seminfo_semmsl=256

set semsys:seminfo_semvmx=32767

set shmsys:shminfo_shmmax=4294967295

set shmsys:shminfo_shmmin=1

set shmsys:shminfo_shmmni=100

set shmsys:shminfo_shmseg=10

사용자 삽입 이미지

위와 같이 수정한 뒤 저장한다. 그리고 reboot 을 시켜야 한다.

 

 -bash-3.00$ sync; sync; reboot

 

3. 오라클 계정을 생성한다. 오라클은 root 로 설치할 수 없다. 오라클 설치를 위해 oinstall 그룹, dba 그룹, oracle 유저를 생성하는 것을 권장한다.

 

   -bash-3.00$ groupadd  g 101 oinstall

   -bash-3.00$ groupadd  g 102 dba

   -bash-3.00$ useradd  -d /export/home/oracle g oinstall G dba m u 103 s /usr/bin/bash oracle

   -bash-3.00$ passwd oracle

 

4. 오라클 계정의 환경을 설정한다.

 

-bash-3.00$ /usr/openwin/bin/xhost +   ß 디스플레이 활성화

-bash-3.00$ su oracle

-bash-3.00$ mkdir oraapp     ß 오라클 어플리케이션이 설치될 곳.

-bash-3.00$ mkdir oradata    ß 오라클 데이터가 설치될 곳.

-bash-3.00$ chmod R 755 oraapp

-bash-3.00$ vi .profile

 

.profile 을 연 뒤 다음과 같이 수정한다. 편집기를 사용하면 편리하다.

 

DISPLAY=localhost:0.0; export DISPLAY

 ORACLE_HOME=/export/home/oracle/oraapp/product/10.2.0; export ORACLE_HOME;

 ORACLE_SID=orcl; export ORACLE_SID;

 ORACLE_OWNER=oracle; export ORACLE_OWNER;

 NLS_LANG=KOREAN_KOREA. K016KSC5601; export NLS_LANG;

 ORA_NLS=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS

 PATH=$PATH:$ORACLE_HOME/bin; export PATH

 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib


사용자 삽입 이미지

수정이 끝났으면 활성화시킨다.

 

-bash-3.00$ source .profile

 

5. 이제 파일의 압축을 풀고 설치를 시작해야 한다.

 

-bash-3.00$ cksum 10gr2_db_sol.cpio.gz

-bash-3.00$ gunzip 10gr2_db_sol.cpio.gz

-bash-3.00$ cpio idcmv < 10gr2_db_sol.cpio

 

runInstaller 를 실행하면 GUI 화면이 뜨고 이제 설치를 시작한다.

-bash-3.00$ ./runInstaller

    UNIX DBA 그룹을 dba 로 선택한다.

사용자 삽입 이미지

인벤토리 및 인증서 지정

사용자 삽입 이미지

제품별 필요조건 검사를 수행한다.

사용자 삽입 이미지

일부 권장사항 검사에 실패하였어도 설치에 문제가 없다.


구성옵션 선택에서 데이터베이스 생성을 선택한다.

사용자 삽입 이미지

설치 요약 화면이다. 설치를 눌러 설치한다.

사용자 삽입 이미지

설치중인 화면이다.

사용자 삽입 이미지

데이터베이스 생성 화면

사용자 삽입 이미지

데이터베이스 생성 완료

사용자 삽입 이미지

설치가 완료되고 실행할 스크립트를 보여주는 화면이 뜬다.

사용자 삽입 이미지

화면에 나온대로 root 로 로그인한 뒤 스크립트를 실행하고 돌아와서 확인버튼을 클릭한다.

반드시 루트 계정으로 실행한다.

 

 -bash-3.00$ su

-bash-3.00$ /export/home/oracle/oraInventory/orainstRoot.sh

-bash-3.00$ /export/home/oracle/oraapp/product/10.2.0/root.sh

 

모든 설치가 완료된 화면이다.

사용자 삽입 이미지

종료버튼을 눌러 종료하면 설치가 끝난다.

Posted by 행복한 프로그래머 궁금쟁이박

댓글을 달아 주세요

솔라나라넷.

Server/Solaris 2007.10.09 17:11

솔라리스에 관한 정보들이 많다.


http://www.solanara.net/

Posted by 행복한 프로그래머 궁금쟁이박

댓글을 달아 주세요

1. sunfreeware.com 에서 subversion 1.4.? 패키지를 모두 다운로드

2. gunzip *.gz 하여 모두 압축을 푼 뒤 각각 pkgadd -d 하여 설치한다.

3. /etc/profile 파일 수정
   PATH=$PATH:/usr/local/bin:/usr/local/bin/svn
   SVN_EDITOR=/usr/bin/vi
   export SVN_EDITOR

4. source /etc/profile

Posted by 행복한 프로그래머 궁금쟁이박

댓글을 달아 주세요

솔라리스 9 IA 9/04, 10 IA 3/05에서 Oracle 설치

설치할 Oracle 버전

Oracle 10g Release 1

들어가기 전에

최종 갱신일: 2005-09-30

이 문서는 http://www.solanara.net/ 에서 최신버전을 구할 수 있다.

1. 설치 전에

전부 설치를 선택한다.

Software 1/2, Software 2/2, Language 시디를 모두 설치한다.

Oracle은 모두 /export/home/oracle에 설치할 것이다. 필자는 /export/home/oracle을 4GB 주었다.

오라클사에서 말하는 오라클 인스톨을 위한 필수 패키지는 SUNWarc SUNWlibms SUNWi1of SUNWbtool SUNWsprot SUNWi1cs SUNWhea SUNWsprox SUNWi15cs SUNWlibm SUNWtoo SUNWxwfnt 이다. 전체 설치시 모두 설치되어있다. 또한 솔라리스 9의 경우 최신의 커널 패치와 최신의 libm 패치를 해야 한다. 물론 솔라리스 9 9/04에서는 이미 설치되어있다.

오라클에서 권장하는 사양은 512MB이상의 램, 1GB이상의 스왑공간, /tmp이 400MB이상 남아있어야 한다. 임시공간이 문제될 것이라 생각되면 TEMP환경변수와 TMPDIR 환경변수를 수정해준다. 예) export TEMP=/disk2/tmp

시스템 커널 파라메터 변경해야 한다. 주로 공유메모리와 관련된 파라미터를 늘려주어야 한다. 자세한 사항은 솔라리스 매뉴얼의 Tunable Parameter부분을 참고한다. /etc/system 파일은 매우 중요하므로 백업받은 후 수정하자.

root@wl ~ # cp /etc/system /etc/systemold

root@wl ~ # vi /etc/system

set semsys:seminfo_semmni=100

set semsys:seminfo_semmns=1024

set semsys:seminfo_semmsl=256

set semsys:seminfo_semvmx=32767

set shmsys:shminfo_shmmax=4294967295

set shmsys:shminfo_shmmin=1

set shmsys:shminfo_shmmni=100

set shmsys:shminfo_shmseg=10

root@wl ~ # sync; sync; reboot


오라클 계정을 생성한다. 오라클은 root로 설치할 수 없다. 오라클에서는 설치를 위해 oinstall 그룹, dba 그룹, oracle 유저를 생성하는 것을 권하고 있다.

root@wl ~ # groupadd -g 101 oinstall

root@wl ~ # groupadd -g 102 dba

root@wl ~ # useradd -d /export/home/oracle -g oinstall -G dba -m -u 103 -s /bin/bash oracle

root@wl ~ # passwd oracle


오라클 계정의 환경을 설정한다. ORACLE_HOME과 같은 중요한 환경 변수를 설정한다.

root@wl ~ # /usr/openwin/bin/xhost + # 빼먹지 말자

root@wl ~ # su - oracle

oracle@wl ~ $ mkdir oraapp # 오라클 어플리케이션이 설치될 곳. 2.5GB정도 필요

oracle@wl ~ $ mkdir oradata # 오라클 데이터가 설치될 곳. 1.2GB이상 필요

oracle@wl ~ $ chmod -R 775 oraapp

oracle@wl ~ $ vi .profile

DISPLAY=localhost:0.0; export DISPLAY # 다른 호스트의 X윈도우를 사용하려면 해당 호스트의 IP를 localhost대신 적는다.

DISPLAY=192.168.0.8:0.0; export DISPLAY

ORACLE_BASE=/export/home/oracle/oraapp; export ORACLE_BASE

ORACLE_SID=orcl; export ORACLE_SID

if [ -x /usr/local/bin/dbhome ] # 오라클 설치시 root.sh를 실행하면 dbhome이 존재하며 실행 가능하게 된다.

then

  ORACLE_HOME=`dbhome orcl`; export ORACLE_HOME

  PATH=$PATH:$ORACLE_HOME/bin; export PATH

  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

fi

# TNS_ADMIN 환경변수는 설정하지 않는다.

oracle@wl ~ $ . .profile

oracle@wl ~ $ cksum solarisx86_DB_10_1_0_3_Disk1.cpio.gz

3520147492      634888056       solarisx86_DB_10_1_0_3_Disk1.cpio.gz

oracle@wl ~ $ gunzip solarisx86_DB_10_1_0_3_Disk1.cpio.gz # 파일은 오라클 다운로드 페이지에서 받는다. 주1)

oracle@wl ~ $ cpio -idcmv < solarisx86_DB_10_1_0_3_Disk1.cpio

# Solaris 10에서는 oraparam.ini 와 oraparam.var 를 수정해야 한다.

oracle@wl ~ $ vi /Disk1/install/oraparam.ini

Solaris=5.6,5.7,5.8,5.9,5.10

oracle@wl ~ $ vi /Disk1/install/oraparam.var

Solaris=5.8,5.9,5.10

oracle@wl ~ $ cd Disk1

oracle@wl ~/Disk1 $ ./runInstaller


주1) 오라클 다운로드 사이트: 가기

~DB~.cpio.gz: Oracle 10g 데이터베이스

~CCD~.cpio.gz: Oracle 10g 컴패니언 시디

~CLIENT~.cpio.gz: Oracle 10g 클라이언트

~CRS~.cpio.gz: Oracle 10g 클러스터링(Cluster Ready Services)

가 있는데 이중 ~DB~와 ~CCD~를 받는다. cksum (CRC32유틸. 솔라리스 기본 제공)으로 다운로드 한 파일의 이상 유무를 반드시 확인해본다.

2. 오라클 및 오라클 컴패니언 설치

위와같이 한후 마지막에 runInstaller를 실행했다면 GUI화면이 뜰 것이다. 자바로 되어있어 썩 모양이 좋지는 않지만 그럭저럭 봐줄만 한다. 각각의 화면마다 선택해야할 것은 다음과 같다. 빠른 설치를 위해 설정은 대부분 기본값으로 해 놓았다. (필요한 설정은 이전에 .profile을 수정할 때 모두 했다) 또한 이 내용은 Oracle Quick Installation Guide의 내용이기도 하다. 스크린 제목 내용


Welcome Next를 클릭한다.


Specify Inventory Directory and Credentials 오라클 인벤토리설정 화면이다. 기본값으로 놔둔다. Next를 클릭하면 루트 권한으로 orainstRoot.sh를 실행하라고 나오는데 화면을 참조해 실행해준다.


Specify File Locations 파일이 설치될 디렉토리이다. $ORACLE_BASE/product/10.1.0/db_1에 설치된다. Next를 클릭한다.


Select Installation Type Enterprise Edition을 선택하고 Next를 클릭한다.


Select Database Configuration Next를 클릭한다.


Specify Database Configuration Options Global Database Name이 orcl로 되어있는 것을 확인한다. Database Character Set은 KO16KSC5601(완성형)으로 선택되어있는데, 필요하다면 KO16MSWIN949 (확장완성형)로 수정한다. 예제 스키마를 생성할 것인가를 물어보는데 체크하는 것이 테스트용으로 설치하는 목적에 부합할 것이다. Next를 클릭한다.


Select Database Management Option Next를 클릭한다.


Specify Database File Storage Option 위에서 생성한 디렉토리를 선택해준다. 기본값은 $ORACLE_BASE/oradata 이다.


Specify Backup and Recovery Options Next를 클릭한다.


Specify Database Schema Passwords 각각의 계정에 대해 암호를 입력한 후 Next를 클릭한다.


Summary 이제까지 설정한 것을 보여준다. 확인 후 Next를 클릭한다.


Install 인스톨 화면이다. 기다리면 다음 화면으로 자동으로 넘어간다.


Configuration Assistants 설정 화면이다. 데이터 베이스 생성이 끝나면 안내 메시지가 나오는데, 전역데이터베이스이름, SID식별자, http://localhost:5500/em 과 SYS,SYSTEM암호는 반드시 외워놓는다. OK를 클릭한 후 Next를 클릭하면 다음 화면으로 넘어간다.


Setup Privileges 루트 유저로 $ORACLE_HOME/root.sh 을 실행하라는 메시지가 나온다. 루트로 실행해준다. 나오는 메시지 중에서 필요한 것은 다음과 같다.

ORACLE_OWNER= oracle

ORACLE_HOME=/export/home/oracle/oraapp/product/10.1.0/Db_1



End of Installation 주어진 내용을 읽어본 후 Exit를 클릭해 인스톨러를 마친다. (포트 리스트는 $ORACLE_HOME/install/portlist.ini 에 있다.) 이것으로 인스톨을 모두 끝냈다.

Ultra Search URL: http://localhost:5620/ultrasearch

Ultra Search Administration Tool URL: http://localhost:5620/ultrasearch/admin

iSQL*Plus URL: http://localhost:5560/isqlplus

iSQL*Plus DBA URL: http://localhost:5560/isqlplus/dba

Enteprise Manager 10g Database Control URL: http://localhost:5500/em



여기까지 하면 오라클의 설치가 끝난것이다. 여기까지만 설치하더라도 오라클의 운영에는 문제 없지만, 좀 더 편한 관리를 위해 컴패니언을 설치한다. (필자는 오라클은 컴패니언까지 인스톨해야 한다고 보고 있다)

oracle@wl ~ $ cksum solarisx86_CCD_10_1_0_3_Disk1.cpio.gz

4119132538      438221549       solarisx86_CCD_10_1_0_3_Disk1.cpio.gz

oracle@wl ~ $ rm -rf Disk1 # 기존에 압축 풀었던 오라클 데이터베이스 인스톨 파일을 지운다

oracle@wl ~ $ gunzip solarisx86_CCD_10_1_0_3_Disk1.cpio.gz

oracle@wl ~ $ cpio -idcmv < solarisx86_CCD_10_1_0_3_Disk1.cpio

oracle@wl ~/Disk1 $ ./runInstaller


3. 오라클 패치

오라클 패치는 오라클을 구매했을때 주는 CID를 이용해 메타링크(http://metalink.oracle.com) 에 가입한 후 받을 수 있다. 직접 패치하는것도 좋지만, 오라클 전문가의 도움을 받는것도 좋을 것이다.

다음은 패치# 2617419(OPatch 1.0.0.0.55), 4751926 (CPUJan2006)를 설치하는 예를 보인 것이다.

oracle@saturn4 ~ $ echo $ORACLE_HOME

/export/home/oracle/oraapp/OraHome_1

oracle@saturn4 ~ $ echo $PATH

/usr/local/bin:/usr/sfw/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/ccs/bin:/export/home/oracle/oraapp/OraHome_1/bin

oracle@saturn4 ~ $ echo $LD_LIBRARY_PATH

/usr/local/xml/lib:/usr/lib:/usr/local/lib:/usr/ucblib:/usr/ccs/lib:/usr/sfw/lib:/export/home/oracle/oraapp/OraHome_1/lib

oracle@saturn4 ~ $ unzip p2617419_10102_GENERIC.zip

... # OPatch 디렉토리 생성됨

oracle@saturn4 ~ $ cp -r OPatch/ ./oraapp/OraHome_1/

oracle@saturn4 ~ $ unzip p4751926_10103_SOLARISx86.zip

... # README.html, 4751926 디렉토리 생성됨. README.html은 읽어볼것.

oracle@saturn4 ~ $ cd 4751926

oracle@saturn4 ~/4751926 $ /export/home/oracle/oraapp/OraHome_1/OPatch/opatch apply


Oracle Interim Patch Installer version 1.0.0.0.55

Copyright (c) 2006 Oracle Corporation. All Rights Reserved..


We recommend you refer to the OPatch documentation under

OPatch/docs for usage reference. We also recommend using

the latest OPatch version. For the latest OPatch version

and other support related issues, please refer to document

293369.1 which is viewable from metalink.oracle.com


Oracle Home = /export/home/oracle/oraapp/OraHome_1

Location of Oracle Universal Installer components = /export/home/oracle/oraapp/OraHome_1/oui

Location of OraInstaller.jar  = "/export/home/oracle/oraapp/OraHome_1/oui/jlib"

Oracle Universal Installer shared library = /export/home/oracle/oraapp/OraHome_1/oui/lib/intelsolaris/liboraInstaller.so

Location of Oracle Inventory Pointer = /var/opt/oracle/oraInst.loc

Location of Oracle Inventory = /export/home/oracle/oraapp/OraHome_1/inventory

Path to Java = /export/home/oracle/oraapp/OraHome_1/jre/1.4.2/bin/java

Log file = /export/home/oracle/oraapp/OraHome_1/.patch_storage//*.log


Creating log file "/export/home/oracle/oraapp/OraHome_1/.patch_storage/4751926/Apply_4751926_03-21-2006_11-49-00.log"


Invoking fuser to check for active processes.


Invoking fuser on "/export/home/oracle/oraapp/OraHome_1/bin/oracle"

Invoking fuser on "/export/home/oracle/oraapp/OraHome_1/bin/lsnrctl"

Invoking fuser on "/export/home/oracle/oraapp/OraHome_1/bin/tnslsnr"

Backing up comps.xml ...


OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.



Please shut down Oracle instances running out of this ORACLE_HOME

(Oracle Home = /export/home/oracle/oraapp/OraHome_1)

Is this system ready for updating?

Please respond Y|N >

Y 1)

Executing the Apply pre-patch script (/export/home/oracle/4751926/custom/scripts/pre)...

Applying patch 4751926...


Patching archive files...


Patching jar files...


Patching copy files...


Creating new directory "/export/home/oracle/oraapp/OraHome_1/cpu/CPUJan2006/MODPLSQL/owa_all/90"

Creating new directory "/export/home/oracle/oraapp/OraHome_1/olap/admin"

Creating new directory "/export/home/oracle/oraapp/OraHome_1/cpu/CPUJan2006/MODPLSQL/owa_all/30"

Creating file to hold list of directories that were mkdir'ed: "/export/home/oracle/oraapp/OraHome_1/.patch_storage/4751926/opatch_dirs_created.lst"

Running make for target client_sharedlib.


Running make for target ioracle.


Running make for target iexp.


Running make for target iimp.


Running make for target iexpdp.


Running make for target iimpdp.


Running make for target libnmuc.


Running make for target libnmemso.


Running make for target ilsnrctl.


Running make for target itnslsnr.


Running make for target ictxload.




Inventory is good and does not have any dangling patches.



Updating inventory...


Verifying patch...

  Verifying that patch ID is in Oracle Home inventory.


  Verifying copy files.


  Verifying jar files.


  Verifying archive files.


OPATCH_VERIFY_OK: Patch has been applied.


Backing up comps.xml ...


********************************************************************************

********************************************************************************

**                                ATTENTION                                   **

**                                                                            **

** Please note that the Security Patch Installation (Patch Deinstallation) is **

** not complete until all the Post Installation (Post Deinstallation)         **

** instructions noted in the Readme accompanying this patch, have been        **

** successfully completed.                                                    **

**                                                                            **

********************************************************************************

********************************************************************************

Executing the Apply post-patch script (/export/home/oracle/4751926/custom/scripts/post)...


OPatch succeeded.

oracle@saturn4 ~/4751926 $ cd $ORACLE_HOME/cpu/CPUJan2006

oracle@saturn4 ~/oraapp/OraHome_1/cpu/CPUJan2006 $ sqlplus /nolog

SQL> connect / as sysdba

SQL> STARTUP

SQL> @catcpu.sql 2)

SQL> QUIT

oracle@saturn4 ~/oraapp/OraHome_1/cpu/CPUJan2006 $ cd $ORACLE_HOME/rdbms/admin

oracle@saturn4 ~/oraapp/OraHome_1/rdbms/admin $ sqlplus /nolog

SQL> connect / as sysdba

SQL> STARTUP

SQL> @utlrp.sql 3)

SQL> select OBJECT_NAME from DBA_OBJECTS where status = 'INVALID'; 4)


no rows selected


SQL> QUIT

oracle@saturn4 ~/oraapp/OraHome_1/rdbms/admin $


1) 오라클관련 인스턴스가 모두 종료되었는지 물어보는 프롬프트. 준비되었으면 Y를 입력하고 엔터를 친다.

2) 오랫동안 걸리는 패치가 끝났다. 패치 이후 스크립트를 실행시킨다.

3) 만약 있을지도 모르는 INVALID 객체를 제거하기 위해 실행한다.

4) no rows selected 가 나오면 정상이다.


4. 오라클 인스턴트 클라이언트 설치

Oracle Instant Client는 오라클 10g에서 새롭게 선 보이는 배포버전이다. 오라클 OCI 라이브러리와 SDK, SQL*Plus, JDBC드라이버만을 지원해준다.

파일이름                                                 크기(바이트)   CRC32

instantclient-basic-solarisx86-10.1.0.3-20050404.zip     30,141,480     4208528557

instantclient-jdbc-solarisx86-10.1.0.3-20050404.zip       4,572,527      556902813

instantclient-sqlplus-solarisx86-10.1.0.3-20050404.zip      266,435      793421160

instantclient-sdk-solarisx86-10.1.0.3-20050404.zip          293,993     1919831458


root@wl ~ # unzip instantclient-basic-solarisx86-10.1.0.3-20050404.zip

root@wl ~ # unzip instantclient-sqlplus-solarisx86-10.1.0.3-20050404.zip

root@wl ~ # unzip instantclient-sdk-solarisx86-10.1.0.3-20050404.zip

root@wl ~ # unzip instantclient-jdbc-solarisx86-10.1.0.3-20050404.zip

root@wl ~ # mv instantclient10_1 /usr/local/instantclient10_1

root@wl ~ # vi /usr/local/instantclient10_1/tnsnames.ora

ORCL =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.100)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl)

    )

  )

root@wl ~ # vi /etc/profile

# for Oracle Instant Client

if [ -d /usr/local/instantclient10_1 ]

then

  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/instantclient10_1; export LD_LIBRARY_PATH

  PATH=$PATH:/usr/local/instantclient10_1; export PATH;

  NLS_LANG=Korean_Korea.KO16KSC5601; export NLS_LANG;

  TNS_ADMIN=/usr/local/instantclient10_1; export TNS_ADMIN;

  SQLPATH=/usr/local/instantclient10_1; export SQLPATH;

fi

root@wl ~ # sqlplus 사용자아이디/사용자패스워드@//호스트주소:포트/DB이름


* 오라클 인스턴트 클라이언트는 라이브러리 파일 크기가 크기 때문에, 가상 메모리를 많이 소모한다.

5. 오라클 관련 어플리케이션 설정

모든 오라클 관련 어플리케이션은 ORACLE_HOME 환경변수가 있어야 동작한다. 따라서 톰캣이나 아파치/PHP을 사용할 때에도 웹서버를 띄우기 전에 ORACLE_HOME이 환경변수에 존재하는지 확인해야 한다.

한글문제 해결의 기본은 NLS_LANG 환경 변수를 지정해주는 것이다. NLS_LANG=Korean_Korea.KO16KSC5601 또는 NLS_LANG=American_America.KO16MSWIN949 의 조합으로도 사용할 수 있다. 오라클 데이터베이스에 접속하기 전에 NLS_LANG 환경 변수가 존재하며, 올바르게 설정되었는지 반드시 확인해야 한다.

오라클 시작/종료


# 오라클 데이터베이스 시작.

oracle@wl ~ $ sqlplus /nolog # 'dbstart' 스크립트를 이용할 수도 있다.

SQL> connect sys/패스워드 as sysdba

SQL> startup

SQL> exit

oracle@wl ~ $ lsnrctl start # 리스너 시작 (외부에서 접속하기 위해서는 필요하다)

oracle@wl ~ $ searchctl start # Ultra Search 시작

oracle@wl ~ $ isqlplusctl start # iSQL*Plus 시작

oracle@wl ~ $ emctl start dbconsole # OEM(Oracle Enterprise Manager) 시작


# 인스톨 이후. 오라클을 시작한 상태에서 실행한다.

# PL/SQL 모듈 재 컴파일

oracle@wl ~ $ sqlplus "/ AS SYSDBA"

SQL> @?/rdbms/admin/utlrp.sql

# 스태틱 라이브러리 생성

oracle@wl ~ $ $ORACLE_HOME/bin/genclntst


# 종료

oracle@wl ~ $ emctl stop dbconsole

oracle@wl ~ $ isqlplusctl stop

oracle@wl ~ $ searchctl stop

oracle@wl ~ $ lsnrctl stop

oracle@wl ~ $ sqlplus /nolog # 'dbshut' 스크립트를 이용할 수도 있다.

SQL> connect sys/패스워드 as sysdba

SQL> shutdown immediate

SQL> exit

oracle@wl ~ $


Java와 Oracle연동

* 자바용 오라클 JDBC드라이버는 크게 두가지가 있다. 하나는 THIN을 지원해주는 드라이버고 다른 하나는 OCI기반의 드라이버이다. THIN드라이버의 경우 오라클 라이브러리를 설치할 필요 없다는 장점이있다. (성능은 비슷한것으로 판단된다) 아래는 THIN드라이버를 기준으로 한다.

* Java 1.4인 경우 $ORACLE_HOME/jdbc/lib/ojdbc14.jar 과 $ORACLE_HOME/jdbc/lib/orai18n.jar 를 CLASS_PATH 에 환경변수 넣어준다.

* Java 1.2, Java 1.3인 경우 $ORACLE_HOME/jdbc/lib/classes12.jar 과 $ORACLE_HOME/jdbc/lib/nls_charset12.jar 를 환경변수 CLASS_PATH에 넣어준다.


PHP 와 Orale연동

* PHP컴파일시 ./configure부분을 다음으로 대체한다. 반드시 설치하기 전에 오라클에 설치되어있어야 하며 컴파일 할때 환경 변수 ORACLE_HOME 이 설정되어있어야 한다.

root@wl ~/php-5.0.4 # . ~oracle/.profile

root@wl ~/php-5.0.4 # ./configure \

 --prefix=/usr/local/php \

 --with-apxs2=/usr/local/apache2/bin/apxs \

 --with-mysql=/usr/local/mysql \

 --with-mysqli=/usr/local/mysql/bin/mysql_config \

 --with-oci8 \

 --enable-sigchild \

 --with-iconv \

 --with-libxml-dir=/usr/local/xml \

 --enable-modules=so \

 --enable-mbstring \

 --enable-mbregex \

 --with-gd \

 --enable-gd-native-ttf \

 --with-jpeg-dir=/usr/sfw \

 --with-png-dir=/usr/sfw \

 --with-zlib-dir=/usr/local

root@wl ~/php-5.0.4 # make

root@wl ~/php-5.0.4 # make install


* PHP 4.3.11, PHP 5.0.4부터 오라클 인스턴트 클라이언트(Oracle Instant Client)를 공식 지원한다. 아래는 PHP 5.2.x에서의 인스턴트 클라이언트를 이용한 방법이다. 4.3.x, 5.0.x에서는 설정 방법이 약간 다르다.


root@wl ~/php-5.2.3 # ./configure \

 --prefix=/usr/local/php \

 --with-apxs2=/usr/local/apache2/bin/apxs \

 --with-mysql=/usr/local/mysql \

 --with-mysqli=/usr/local/mysql/bin/mysql_config \

 --with-oci8=instantclient,/usr/local/instantclient10_1 \

 --enable-sigchild \

 --with-iconv \

 --with-libxml-dir=/usr/local/xml \

 --enable-modules=so \

 --enable-mbstring \

 --enable-mbregex \

 --with-gd \

 --enable-gd-native-ttf \

 --with-jpeg-dir=/usr/sfw \

 --with-png-dir=/usr/sfw \

 --with-zlib-dir=/usr/local

root@wl ~/php-5.2.3 # make

root@wl ~/php-5.2.3 # make install


* 필자가 확인한 결과 PHP 5.0.x에서는 오라클의 커넥션이 끊어지지 않는 현상이 있다. 꼭 솔라리스에 국한된 문제는 아니며, OCI라이브러리를 사용하던 인스턴트 클라이언트를 사용하던 결과는 같다. 상용 서비스에서 오라클이 필요하다면 PHP 4.4.x를 사용하도록 한다. 설치방법은 PHP 5.0.x와 같다. 꼭 PHP 5를 사용해야 한다면, PHP 4.4.0의 OCI익스텐션 소스를 PHP 5.0.x소스에 덮어써 해결할 수 있다고 한다. PHP버그ID 32361 번 (http://bugs.php.net/bug.php?id=32361)에서 확인할 수 있다. 이는 PHP 5.1.2에서 해결되었다.

Posted by 행복한 프로그래머 궁금쟁이박

댓글을 달아 주세요

소프트웨어의 관리
솔라리스에서 사용할 수 있는 소프트웨어로는 솔라리스가 기본적으로 제공하는 소프트웨어와 운영체제에 포함돼 있지 않기 때문에 개별적으로 구입하거나 별도로 설치하는 소프트웨어가 있다.

일단은 솔라리스에 미리 설치된 애플리케이션을 중심으로 각종 관리 방법을 알아보자. 솔라리스는 소프트웨어를 패키지라는 단위로 취급을 하는데, 일종의 애플리케이션을 위한 모든 객체를 묶어 놓은 단위라고 생각하면 된다. 솔라리스의 모든 내장 소프트웨어들은 모두 이런 패키지 기반의 관리가 이뤄진다.

이를 위해 솔라리스는 다음과 같은 패키지 명령어를 제공한다.

·새로운 패키지의 설치 : pkgadd
·설치된 패키지의 삭제 : pkgrm
·설치된 패키지의 정보 : pkginfo
·패키지 세트의 작성 : pkgmk, pkgparam, pkgtrans


소프트웨어 설치 확인 방법
동일한 솔라리스라고 하더라도 어떤 버전은 아파치가 포함돼 있으며, 어떤 버전은 솔라리스 관리 콘솔을 기본으로 제공하는 등, 솔라리스도 버전에 따라 새로운 기능이 추가되고, 이에 따라 새로운 패키지들이 지속적으로 추가되고 있다. 따라서 관리자는 자신이 원하는 패키지가 이미 설치돼 있는지 미리 확인하는 작업이 필요하다.

만약 원하는 패키지의 이름(혹은 keyword)을 알고 있다면 다음과 같은 방법으로 설치 여부를 확인할 수 있다.

# pkginfo -i | grep -i apache
system SUNWapchd Apache Web Server Documentation
system SUNWapchr Apache Web Server (root)
system SUNWapchu Apache Web Server (usr)

또는 다음과 같은 방법으로도 가능하다.

# pkginfo -x | grep -i apache
SUNWapchd Apache Web Server Documentation
SUNWapchr Apache Web Server (root)
SUNWapchu Apache Web Server (usr)

이 두가지 방식의 차이는 pkginfo의 옵션의 차이다. <-i>는 ‘fully installed package’의 정보를 제공하고, <-x>는 설치된 패키지의 헤더만을 뽑아 출력하는 옵션이다. 어쨌든 일단 아파치 웹 서버가 설치돼 있음을 확인했다. 이제 검색한 패키지의 구제적인 정보(예를 들면 소프트웨어 버전이나, 설치 날짜 등)를 확인하기 위해서는 앞에서 검색한 패키지 이름으로 다시 한번 pkginfo를 실행해 보자.


# pkginfo -x SUNWapchr
SUNWapchr Apache Web Server (root)
(sparc) 11.9.0,REV=2001.10.18.00.44

# pkginfo -l SUNWapchr
패키지 인스턴스: SUNWapchr
이름: Apache Web Server (root)
범주: system
아카이브: sparc
버전: 11.9.0,REV=2001.10.18.00.44
기본 디렉토리: /
판매자: Sun Microsystems, Inc.
DESC: The Apache HTTP server program (root components)
PSTAMP: sfw8120011018004615
INSTDATE: Apr 11 2002 17:33
HOTLINE: Please contact your local service provider
상태: 설치 완료
파일: 197 설치된 경로 이름
      9 공유 경로 이름
      5 연결된 파일
      24 디렉토리
      10 실행 가능
      2995 블록이 사용됨 (추정치)

앞의 두가지 예에서 알 수 있듯이 설치된 패키지의 버전만을 확인하는 것이라면 <-x> 옵션만으로도 충분하지만, 그 외의 정보를 확인하기 위해서는 <-l>이 유용하다. 앞의 예에서 ‘Apache Web server 11.0.0’이 SUNWapchr라는 패키지 이름으로 설치돼 있음을 알 수 있으며, <-l>로 확인한 정보에 의하면 설치일이 4월 11일임을 알 수 있다. 그런데 지금까지 알아본 명령은 패키지 단위로만 정보를 제공한다. 간혹 패키지 내의 구성 파일 이름과 설치된 디렉토리를 확인해야 할 경우가 있다. 이런 경우에는 패키지의 손상 여부를 확인하기 위한 pkgchk 명령을 통해 확인할 수 있다. 다음 예제를 살펴보자.

# pkgchk -l | grep -i httpd.conf
경로 이름: /etc/apache/httpd.conf-example
경로 이름: /usr/apache/man/man3/Apache::httpd_conf.3
경로 이름: /usr/apache/perl5/5.6.1/sun4-solaris/Apache/httpd_conf.pm

따라서 이미 설치된 아파치 웹 서버를 구성하기 위해 httpd.conf가 어디에 있는지 확인할 때 유용하다. 또는 관련 파일을 알고 있지만, 이 파일이 어떤 패키지에 속해 있는지 알아야 하는 경우에는 다음과 같은 명령을 수행한다.

#pkgchk -l -p /etc/apache/http.conf-example
경로 이름: /etc/apache/httpd.conf-example
형식: 일반 파일
예상 모드: 0644
예상 소유자: root
예상 그룹: bin
예상 파일 크기 (바이트): 37327
내용의 예상 합계(1): 56610
예상한 최종 수정: 10월 18 오후 04시 43분 02초 2001
다음 패키지에서 참조함:
      SUNWapchr
      현재 상태: 설치됨


Pkgchk는 설치된 패키지의 속성 변화를 감시하기 위한 명령이다. 따라서, 디스크 손상이나 혹은 악의적인 해킹에 의항 설치된 파일의 기초적인 변형이나 손상을 확인할 수 있다.


GUI 툴을 이용한 소프트웨어 설치 확인
솔라리스의 기본 그래픽 환경에서 이 관리 툴을 실행하기 위해서는 (화면 1)에 있는 ‘관리 도구’를 실행하거나 콘솔에서 #swmtool을 실행한다. 혹은 솔라리스 8에서부터 새로 제공되고 있는 제품 레지스트리 관리 프로그램을 사용할 수도 있다.

‘솔라리스 제품 레지스트리’의 실행은 (화면 1)에서 아이콘을 클릭하거나 #prodreg 명령을 직접 입력해 실행할 수 있다.



설치되지 않은 새로운 소프트웨어(패키지)의 설치
이미 설치된 패키지를 다시 설치하거나 새로운 패키지를 설치하는 경우를 위해서라도 패키지 설치 방법은 반드시 알아둬야 한다.
새로운 패키지를 설치할 때 가장 일반적으로 사용하는 방법은 pkgadd 명령을 사용하는 것이다. 솔라리스를 위한 패키지는 하나의 파일로 아카이빙한 경우와 파일 시스템에 디렉토리로 제공되는 아카이빙되지 않은 경우의 두가지가 있다. 그러나 일반적으로 솔라리스 CD는 아카이빙되지 않은 모드로 CD에 담겨 있다.




·패키지가 디렉토리 구조로 풀려있는 경우
이런 경우에는 앞서 언급한 #swmtool이나 #prodreg와 같은 GUI 기반 프로그램을 사용하거나 혹은 콘솔 창에서 직접 디렉토리 사이를 이동하면서 pkgadd로 설치하는 방법이 있다. 다음 (화면 2)는 앞서 언급한 ‘솔라리스 제품 레지스트리’를 이용한 것이고, 다음은 swmtool을 이용한 방법이다.

#swmtool -d /cdrom/cdrom0/s0

반면 CD나 디스크에서 패키지가 있는 디렉토리를 직접 오가면서 설치해야 하는 경우에는 패키지가 들어있는 디렉토리에서 다음과 같이 실행함으로서 현재 디렉토리에 있는 모든 패키지의 목록을 보면서 선택적으로 설치할 수 있다.

#pkgadd -d .

한편 현재 디렉토리에서 설치할 패키지의 이름을 명확하게 아는 경우에는 설치시 아예 이름을 지정함으로써 보다 빠르게 실행할 수 있다.

#pkgadd -d . SUNWapchr

·패키지가 아카이빙돼 있는 경우
예를 들어 사용자가 솔라리스가 기본적으로 제공하지 않는 GNU 패키지인 를 설치하고 싶은 경우가 있다고 하자. gzip으로 아카이빙하는 방식은 흔히 인터넷에서 패키지를 배포하기 위해 사용하는 형태다. lsof의 다운로드부터 설치까지의 과정은 다음과 같다.


#wget ftp://ftp.sunfreeware.com/pub/freeware/sparc/8/lsof-4.49-sol8-sparc-64-local.gz
#gunzip lsof-4.49-sol8-sparc-64-local.gz
#pkgadd -d lsof-4.49-sol8-sparc-64-local

앞의 방법과 다른 것은 -d 뒤에 ‘.’이 없다는 것이다. 즉 패키지 파일을 -d의 부 파라메타로 입력하는 것이다. 참고로 앞에서 사용한 wget이란 유틸리티는 솔라리스에서 기본적으로 제공되지 않는다. 이같은 툴이 없는 경우에는 웹 브라우저나 FTP 클라이언트 프로그램으로 다운받을 수 있다.

설치된 불필요한 소프트웨어의 삭제
앞에서 언급된 방법으로 설치된 패키지의 정보를 얻었다면 이제 삭제도 할 수 있다. 일반적으로 삭제하는 경우는 그리 자주 발생하지 않지만, 새로운 버전을 설치하나 혹은 기존에 있던 패키지에 부분적으로 문제가 발생할 경우도 있으므로 패키지 삭제 방법도 알아둘 필요가 있다. 어쨌든 원하는 패키지의 삭제는 ‘#pkgrm SUNWapchr’과 같은 방식으로 이뤄진다.

Posted by 행복한 프로그래머 궁금쟁이박

댓글을 달아 주세요