오라클의 TDE기능을 체험하기 위해-_-; 마땅한 테스트 서버도 없고 해서 솔라리스를 설치해서 오라클을 설치해봤습니다.
2번만에 성공했습니다.

http://www.solanara.net/
여기는 윈디하나의 솔라나라인데, 여기에 너무 정리를 잘 해놔서 설치하는데 무리가 없었습니다.

저는 1번 실패하게 된 것이 SWAP공간이 없어서 실패를 했습니다.
swap공간은 이 분 블로그를 보고 참조했습니다.
http://akmamb.tistory.com/108

그 설치할 때 패키지가 있는지, 공간이 있는지 검사하는 부분이 있는데 저는 swap공간 부족과 SUNWi1cs랑 SUNWi15cs패키지가 없어서 경고를 먹었는데 두개 패키지는 설치하고 swap공간은 그냥 생까고 진행했더니 아놔 안되려면 처음부터 안되던가-_-; 설치하다가 데이터베이스를 생성하는 도중에 메모리가 딸리다면서 안됩니다-_-;

swap공간 늘리고 설치하면 완전 잘돼요 ^^

그리고, 또 걸렸던 것이!
서버 시작과 동시에 자동으로 실행되게 하려고 했는데 $ORACLE_HOME/bin/dbstart 스크립트가 안먹히는 겁니다-_-; 그래서 또 검색해보니-_-;
/var/opt/oracle/oratab 파일이 있는데, 이 놈의 맨 끝이 N으로 되어있습니다.
orcl:/export/home/oracle/oracle/product/10.2.0/db_2:Y

이걸 Y로 바꿔주니 rc3.d에 등록하니 잘 되더라구요.

실행스크립트는 그냥 이렇게-_-;
#!/bin/sh

case "$1" in
        start)
                echo -n "Starting oracle: "
                su - oracle dbstart /export/home/oracle/oracle/product/10.2.0/db_2
                echo
                ;;
        stop)
                echo -n "Shutting down oracle: "
                su - oracle dbshut /export/home/oracle/oracle/product/10.2.0/db_2
                echo
                ;;
esac
exit 0 

참고로 ORACLE_HOME이 oracle계정에 선언이 되어야겠죠? ORACLE_SID 등도 설정 되어야할 겁니다.
그건 윈디하나의 솔라나라에서 보고 따라하시면 돼요 ^^


PS. 윈디하나의 솔라나라에 좋은 자료가 많군요! 앞으로 자주 애용해야겠습니다 ^^

 
Posted by 머드초보

댓글을 달아 주세요

 
VirtualBox에 솔라리스를 설치해봤습니다.
한 3번만에 성공한 것 같습니다-_-;
우선 처음에 Open Solaris(오픈 솔라리스)를 설치를 했었습니다.
왠지 더 깔끔해지고, 더욱 진화한 놈인 듯 했습니다.
여기다가 오라클을 설치하려고 시도를 했습니다.
아놔...오라클설치하는 runInstaller라는 쉐이가 버전이 안맞아 라면서 설치 시도도 안해보고 뱉어냅니다.
Open Solaris는 SunOS 11로 인식합니다. 근데 오라클에서는 10을 요구합니다.

그래서 시도한 버전은 Solaris10 u5입니다. sol-10-u5-ga-x86-dvd.iso
우선 처음에 안됐던 것이....
제 컴이 꼬진 건지 아님 솔라리스가 미친 건지 잘 모르겠지만, 하드디스크를 잡을 때 동적으로 잡았더니 시스템 분석하다가 다운이 되버리더군요. 그래서 하드디스크를 정적으로 잡았더니 잘 되더라구요.

그렇게 3번 시도했더니 설치가 되더군요.
그리고, tomcat을 설치하고 제가 사용하는 웹애플리케이션을 설치하고 또 포트포워딩 하려니까 이건뭐 산너머 산이더라구요. 이건 여기 포스트에 정리를....-_-;
http://mudchobo.tomeii.com/tt/289

그리고 부팅할 때 등록하려고 했는데 init.d에다가 스크립트를 넣고, rc3.d에다가 스크립트를 하드링크 해야 하더라구요. 우분투는 자동으로 다 해주는데 이 솔라리스는 그런게 없는 듯 합니다.
그래서 스크립트를 왠지 만들기 귀찮아서-_-; README를 읽어보니 실행스크립트 start/stop 이렇게만 만들면 되는 듯해서 톰캣에 있는 catalina.sh를 그냥 바꿔서 썼더니 안되더라구요.
/var/svc/log/milestone-multi-user-server:default.log 이 로그 파일을 보라고 해서 보니까
뭔가 에러가 있는 것 같아서 직접 스크립트를 만드니까 되더라구요-_-

전 이렇게 만들었어요-_-;
JAVA_HOME=/usr/jdk/instances/jdk1.6.0;export JAVA_HOME
CATALINA_HOME=/usr/apache-tomcat-6.0.16;export CATALINA_HOME
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin;export PATH

case "$1" in
        start)
                echo -n "Starting tomcat: "
                $CATALINA_HOME/bin/catalina.sh start &
                echo
                ;;
        stop)
                echo -n "Shutting down tomcat: "
                $CATALINA_HOME/bin/catalina.sh stop &
                echo
                ;;
esac
exit 0 

뭐 어쨌든 저렇게 넣으면 잘 됩니다.
끌 때에는 rc0.d에다가 스크립트를 넣어주면 됩니다.
파일명 규칙이 있는데 시작할 때는 S or K이고 숫자 2자리넣고 init.d에 있는 스크립트 이름 그대로 사용하면 오케이! 이건 검색 고고싱-_-;
예를 들어 tomcat이면!
init.d/tomcat 스크립트파일 생성.
rc3.d/S99tomcat 시작 시 실행! rc0.d/K99tomcat 종료 시 실행! 이런 식으로!
사용자 삽입 이미지

스샷!


테스트 서버로 쓸만하군요. 같이 띄워도 그렇게 느린 건 모르겠군요 ^^
 
Posted by 머드초보

댓글을 달아 주세요

 
우선 기본적으로 솔라리스10에는 MySQL이 설치가 되어있더군요-_-;
몰랐습니다. 걍 지우고 다시 깔아봅시다. 원래 삽질을 좋아해서-_-;

pkgrm으로 mysql 지워버립시다-_-;(이래도 되나-_-;)

다시 깔아봅시다.
http://dev.mysql.com/downloads/ 이곳에서 MySQL 솔라리스 pkg용으로 받습니다.
Solaris (pkgadd packages) 이눔인 것 같습니다.

우선 mysql계정을 만들어야 돼요.
[root][/] groupadd mysql
[root][/] useradd -g mysql mysql
[root][/] passwd mysql
새 암호:
새 암호를 다시 입력하십시오:
passwd: 암호(mysql용)가 성공적으로 변경되었습니다.

mysql이라는 그룹을 추가하고 mysql이라는 사용자를 추가하고 그룹은 mysql로 하고 비밀번호를 바꿔줍시다.
아.....그리고 mysql이라는 계정에 디렉토리가 아마 /home/mysql로 되어있는데요.
home아래에 이상하게 디렉토리가 안만들어지드라구요. 그래서 /user/mysql/ 이라는 디렉토리를 만들고
소유자를 mysql로 바꿨습니다.

[root][/]mkdir /user/mysql/
[root][/]chown mysql /user/mysql/
[root][/]cd /user/mysql/
[root][/user/mysql]ls -al
총 4
drwxr-xr-x   2 mysql    root         512  1월 18일  18:37 ./
drwxr-xr-x   4 root     root         512  1월 18일  18:37 ../
[root][/user/mysql]vi /etc/passwd/

mysql:x:101:100::/user/mysql:/bin/csh  #홈디렉토리변경 및 쉘도 변경

받은다음에 서버에 올려서 gunzip으로 풀고, pkgadd로 패키지를 설치합시다. 당근 root계정으로 ^^
[root][/user/mudchobo]gunzip mysql-5.0.45-solaris10-i386.pkg.gz
[root][/user/mudchobo]pkgadd -d mysql-5.0.45-solaris10-i386.pkg

이제 막 설치가 되는데요. 다되었으면 "<mysql>(이)가 성공적으로 설치되었습니다." 라고 떠요.
기본으로 /usr/local/mysql/ 에 설치가 되어있습니다.

설정파일을 만들어야하는데요.  /etc/my.cnf 에다가 만듭니다.
[root][/user/mudchobo]vi /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /user/mysql/data
datadir은 mysql 홈디렉토리아래에 data디렉토리로 설정해두시면 됩니다.
저의 홈디렉토리는 /user/mysql/ 이어서 저렇게 설정한 겁니다.

mysql이 어느경로에서도 실행될 수 있게 PATH를 잡아줍시다.
기존 PATH에 /usr/local/mysql/bin 이눔도 추가해줍시다.

csh에서는 setenv PATH {$PATH}:/usr/local/mysql/bin 이런식으로 합니다.

그다음 가장먼저 실행해야할 mysql_install_db를 실행해야합니다.
[root][/] cd /usr/local/mysql/scripts
[root][/opt/mysql/mysql/scripts]ls
mysql_install_db*           mysql_install_db.in         mysql_install_db.old.1208*  mysql_install_db.old.1731*
[root][/opt/mysql/mysql/scripts] ./mysql_install_db --user=mysql --ldata=/user/mysql/data

라고 해주면 됩니다. 자 이제 mysql을 띄워 봅시다. mysql은 mysql계정으로 들어가서 띄워야합니다.
[mysql][/user/mysql] mysqld &
[1] 1516
[mysql][/user/mysql] 080118 19:07:17  InnoDB: Started; log sequence number 0 43655
080118 19:07:17 [Note] mysqld: ready for connections.
Version: '5.0.45'  socket: '/tmp/mysql.sock'  port: 3306  MySQL Community Server (GPL)
[mysql][/user/mysql]

mysql에 접속해봅시다. root비밀번호가 처음에는 설정되어 있지 않습니다. password없이 접속됩니다.
[mysql][/user/mysql] mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.45 MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>


mysql 비밀번호 변경하는 방법은 2가지가 있네요(더 있을 수도 있을지도^^)

1. mysqladmin을 이용해서 하는방법
[mysql][/user/mysql] mysqladmin -u root password '비밀번호'


2. mysql에 mysql -u root 로 접속해서 변경하는 방법(이건 차후에 변경할 때도 쓰이겠죠^^)

[mysql][/user/mysql] mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.0.45 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('비밀번호');
Query OK, 0 rows affected (0.01 sec)



이제 사용자를 추가해봅시다.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'myid'@'%' IDENTIFIED BY 'mypasswd' WITH GRANT OPTION;
Query OK, 0 rows affected (0.02 sec)
mysql>

저기 %로하셔야 어디서든 접속이 가능한 계정으로 만들어집니다. localhost로하면 local에서 밖에 접속을 못합니다.

mysql을 종료시켜봅시다.
[mysql][/user/mysql] mysqladmin -uroot -p1234 shutdown
080118 19:27:18 [Note] mysqld: Normal shutdown
080118 19:27:18  InnoDB: Starting shutdown...
080118 19:27:20  InnoDB: Shutdown completed; log sequence number 0 43655
080118 19:27:20 [Note] mysqld: Shutdown complete
[mysql][/user/mysql]

아....잘되네요

두리야 다 정리했다 어셔 시도해보거라-_-;
 
Posted by 머드초보

댓글을 달아 주세요

 
음.....프로그램이 이상하게 아무 이유없이 자꾸 죽어서 왜 그런지 이유를 찾다가 우연히 Too many open files 라는 메시지를 보게 되었습니다.
아...너무 많은 파일들이 열려있다고 하는군요.
한 프로세스가 열 수 있는 파일의 수는 제한되어 있더군요.

ulimit -a 하면
통지(설명자) 256

이라고 나오는데요(영문판에서는 nofiles(descriptors) 이라고 나오더군요)

그 제한수만큼 fopen을 한다던지 소켓을 생성한다든지 해버리고 안 닫아버리면(close나 fclose) 계속 프로세스가 열고 있는 거더군요. 그래서 이거를 안 닫아주면 계속 생깁니다.
그 프로세스가 열고 있는 파일들을 보기 위해서는 이렇게 하면 됩니다.
우선 lsof프로그램을 설치해야합니다. 솔라리스에는 없어서 설치했어요-_-;
이 프로그램이 현재 열고 있는 파일이나 소켓 등을 찾아줍니다.

lsof -p 프로세스ID

하면 목록이 나오는데 그중에 안 닫고 있는게 있으면 그걸 소스에 찾아서 fclose나 close해줍니다.
 
Posted by 머드초보

댓글을 달아 주세요

 

아파치랑 톰캣을 설치하셔야 합니다.
아파치는 여기 클릭하시면 설치방법이 있구요.
톰캣은 여기 클릭하시면 설치방법이 나와요!
그리고 나서 진행해봅시다.

우선 tomcat connector를 받아야 돼요. jk라고 하는 놈이네요.
http://tomcat.apache.org/download-connectors.cgi 여기서 커넥터를 받습니다.
Binary로 받으면 좋은데 제 운영체제가 Solaris인데 x86용이 없군요-_-;
컴파일해야하는군요. JK 1.2.25 Source Release tar.gz 를 받읍시다.

gunzip으로 풀고, tar로 압축을 풀어봅시다.

[root][/user/mudchobo/install]gunzip tomcat-connectors-1.2.25-src.tar.gz
[root][/user/mudchobo/install]ls
tomcat-connectors-1.2.25-src.tar
[root][/user/mudchobo/install]tar xvf tomcat-connectors-1.2.25-src.tar


압축을 풀었으면 해당폴더로 이동합시다. 그리고 native폴더로 이동합니다.
그리고, 아래와 같은 명령어를 쳐줍시다.

[~~tomcat-connectors-1.2.25-src] cd native
[~~native]./configure --with-apxs=/usr/local/apache2/bin/apxs

아.....뭔가 진행이 되는군요. 저기서 no apxs given 라고 무쟈게 많이 봤는데 그건 아파치를 static으로 설치해서 그럴껍니다-_-; 아파치설치할 때 옵션을 잘줘야합니다. 저것때문에 몇시간 고생을-_-;
근데 마지막에 no apache given이랑 no netscape given이라는게 뜨네요. 잘모르겠어요-_-;
그래도 되는 듯 하네요 ^^

make를 실행해서 컴파일하고, make install해서 해당폴더로 mod_jk.so 파일을 배포합시다!
[~~native] make
  컴파일~~~~~~~~~~
[~~native] make install
  어쩌구저쩌구~~~~~~~


배포가 완료되었으면 이제 셋팅해야합니다.

아파치의 설정디렉토리로 이동합니다.( /usr/local/apache2/conf/ )
이동 후 workers.properties파일을 생성한 뒤 아래와 같이 적습니다.

[~~native] cd /usr/local/apache2/conf/
[root][/usr/local/apache2/conf] vi workers.properties

workers.tomcat_home=/usr/local/tomcat
workers.java_home=/jdk1.6.0_03
ps=/
worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1


:wq
[root][/usr/local/apache2/conf]

httpd.conf파일을 수정하도록 합시다. 맨아래에 다음과 같이 추가합시다.

#
# Mod_jk settings
#
LoadModule jk_module modules/mod_jk.so
JkWorkersFile /usr/local/apache2/conf/workers.properties
JkLogFile /usr/local/apache2/logs/mod_jk.log
JkLogLevel debug
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /examples/*.jsp worker1
Alias /examples "/usr/local/tomcat/webapps/examples/"
<Directory "/usr/local/tomcat/webapps/examples/">
        Options FollowSymLinks
        AllowOverride None
        Allow from all
</Directory>
<Directory "/usr/local/tomcat/webapps/examples/WEB-INF/">
        AllowOverride None
        deny from all
</Directory>

맨위에 LoadModule에서 jk_module을 쓰겠다는 것 같고,
WorkerFile은 방금 작성한 걸로 쓰겠다는 것같고,
그다음은 다 로그얘기군요.
JkMount는 /examples/에서 jsp요청이 들어오는 것은 다 tomcat에서 처리하겠다는 말입니다.
마지막에 중요한게.....Alias입니다.
원래 http://자기주소/ 이렇게 하면 Document Root인 아파치경로/htdocs인가? 거기를 가리키는 겁니다.
하지만 http://자기주/examples 로 요청이 들어오면 Document Root를 저걸로 바꾸겠다는 것이지요.

그리고 WEB-INF폴더는 보안상 열리면 안돼요. 막아줘야돼요 ^^
저렇게 막아주면 됩니다. 그러면 http://자기주소/examples/ 하면 jsp, servlet샘플이 열릴 것입니다.
jsp외에 것은 다 아파치에서 처리를 하게 되는 것이죠.


 
Posted by 머드초보

댓글을 달아 주세요

  1. 윤범석 2009.05.29 16:55 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요! 현재 PHP JSP 연동을 하려고 하는데 위 설정처럼 했는데 examples에서 Excute를 눌러 jsp페이지를 열면 404에러가 나네요. 혹시 이런 증상시 대처방법을 아시는지요?

    • 머드초보 2009.05.30 12:28 신고  댓글주소  수정/삭제

      음 404에러가 나나요?
      톰캣에서 나는 404에러인가요? 아파치에서 나는 에러인가요?
      저거 한지 오래돼서 다까먹었네요ㅠ
      전 저렇게 해서 된 것 같은데 죄송해요 답변이 못되서 ㅠ