월드비전..

 시간이 오래 걸렸다.

 원래 저번달에 신청하기로 했던 아동후원이 한달정도 지난 오늘에서야 겨우 할 수 있었다.

 다 핑계겠지만..

 왜이렇게 공과금 내야하는 것이 많은지…

 그동안 밀려왔던, 여러 공과금과 각종 내야할 것들(휴대폰, 대출금 이자…등)을 내고 나니, 이게 웬걸.. 잔고가 부족해졌다.

 아마..이번달도 그리 풍족하지는 않을 것이라 생각하지만 그래도 월급이 갓 들어와 마음이 풍족해진 지금 후다닥 신청을 했다. 🙂

 

우분투(10.04)에 오라클 11g 설치하기.

 이 글은 다음의 사이트를 베이스로 우분투(10.04)를 기반으로 오라클 11g(linux_11gR1_database_1013.zip) 버전을 설치하여 proc 를 이용한 프로그램의 컴파일까지의 내용을 편집한 것이다.

 원글님: 허니몬의 자바Guru
http://java.ihoney.pe.kr/39

 #1. 먼저 오라클 11g를 설치하기에 앞서 필요한 패키지를 설치하는 작업이 필요하다.

 다음의 패키지를 설치하도록 하자.

 # sudo apt-get install gcc make binutils lesstif2 rpm libmotif3 libaio gawk alien ksh

필요한 패키지 버전(당연히 그 이상 버전도 가능) -> 대부분 설치되어 있음.
binutils-2.15.92.0.2-10
compat-db-4.1.25-9
control-center-2.8.0-12
gcc-3.4.3-9
gcc-c++-3.4.3-9
glibc-2.3.4-2
glibc-common-2.3.4-2
gnome-libs-1.4.1.2.90-44.1
libstdc++-3.4.3-9
libstdc++-devel-3.4.3-9
make-3.80-5
pdksh-5.2.14-30
sysstat-5.0.5-1
xscreensaver-4.18-5

 아래의 패키지를 더 설치하도록 하자.

 # apt-get install gcc
binutils libaio1 lesstif2 lesstif2-dev make rpm libc6 libstdc++5
build-essential


** 다음의 위치에서 oracle을 다운받도록 하자. 필자는 11.1.0.6.0 버전으로 설치를 진행하였다.
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

 #2. 패키지의 설치가 끝났으면 설치를 위한 사용자 그룹과 유저를 만들도록 한다.

# addgroup oinstall
# addgroup dba
# addgroup nobody
# useradd -m oracle -g oinstall -G dba -s /bin/bash
# usermod -g nobody nobody
# passwd oracle  (oracle 계정의 비밀번호 설정)

#3. 리눅스 커널의 소스도 필요하다.

 # sudo apt-get install linux-headers

 #4. Oracle 에서 필요한 메모리와 CPU 리소스를 위해 커널 파라미터를 수정한다.
 파일을 열고 가장 아래쪽에 다음의 내용을 삽입한다.

 # sudo vi /etc/sysctl.conf

fs.file-max = 65535
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144

 #5.  /etc/sysctl.conf 파일은 우분투 시스템이 부팅시 처음 읽어오는 정보이다. 이것을 적용시키기 위해서 재부팅을 한다.
 
 혹은 재부팅이 귀찮으면 다음을 입력한다. sysctl.conf 설정을 다시 읽어들이는 명령어이다.

 # sudo sysctl -p

 #6. 다음으로 limit.conf 파일을 수정한다.

 다음의 내용을 /etc/security/limits.conf 파일에 삽입한다.

# sudo vi /etc/security/limits.conf

oracle soft nproc 2047

oracle hard nproc 16383

oracle soft nofile 1023

oracle hard nofile 65535

 /etc/security/limits.conf 파일의 수정이 완료되었으면 다음으로

 /etc/pam.d/login 파일을 열어서 다음 라인을 추가한다.

 # sudo vi /etc/pam.d/login

 session required /lib/security/pam_limits.so
 session required pam_limits.so

 #7. 환경변수 설정.
 다음으로 오라클 기동에 관련한 환경변수를 설정한다.

$ln -s /usr/bin/awk /bin/awk

$ln -s /usr/bin/rpm /bin/rpm

$ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so

$ln -s /usr/bin/basename /bin/basename
/bin/basename

Oracle 11g가 설치될 폴더 생성하기(본인은 11g를 설치하여 11g로 변경함)

$mkdir /oracle

$mkdir /oracle/11g

$chown -R oracle:oinstall /oracle

$chmod -R 775 /oracle

그다음 환경변수 설정을 위해 etc밑에 profile을
gedit로 연다(vi로열어도 상관없음)

$sudo vi /etc/profile

파일을 열었으면.. 파일 가장 아랫부분테 밑에 정보를
복사해서 넣는다.. 파일의 가장 마지막!

export ORACLE_BASE=/oracle

export ORACLE_HOME=/oracle/11g

export ORACLE_SID=oracle

export PATH=$PATH:$ORACLE_HOME/bin

여기까지 했으면.. 환경변수가 제대로 등록되었나.. 터미널을 열어서 확인을 해본다..

$ su – oracle

password:

$ echo $ORACLE_BASE

/oracle

$ echo $ORACLE_HOME

/oracle/11g

$ echo $ORACLE_SID

oracle

 제대로 나오면 이상없음..

 #8. 오라클 압축 풀기.

# cd /path/to/zipfile (Oracle 압축 파일을 받은 폴더로 이동한다).
# sudo chown oracle:oinstall Oracle11*.zip
# sudo Oracle11*.zip /home/oracle
# su – oracle
# unzip linux_11gR1b5_database.zip – 파일명은 버전에 따라 달라질 수 있습니다.

# chown -R oracle:oinstall database

 #9.Turn on the display – runInstaller를 실행하기 전에 xdisplay를 일치시켜줘야
한다는
군요…

 root 계정이나 oracle 에서 xdisplay를 사용하려고 하면 실행되지 않는 부분을 해결하기 위해서는 아래의
명령어를 본인의 사용계정에서 설정해줘야 합니다.

 꼭!! 안그러면 실행 중 오류가 뜹니다.

 # sudo -i
 #
xhost +
 # su – oracle
 # DISPLAY=:0.0; export DISPLAY

 
 #10. 오라클 설치 시작.

# su – oracle
# export LANC=C  // 그냥 실행하면 한글이 깨진 설치화면으로 나옵니다. 속편하게 영어로~!!
$ cd /path_to_extracted_files
$ ./runInstaller

#11. 오라클 설치.

아래 그림에서 보시는 것처럼


Oracle Base Location : /oracle


Oracle Home Location : /oracle/11g


Global DataBase Name : oracle

(주의: 다른 값을 넣고 싶은 경우, 위의 export ORACLE_SID=oracle” 설정과 똑같은 값을 넣어주어야 합니다.)

Inventory directory 는 /oracle/oraInventory로 설정

System group name 은 dba로 설정


나머지 과정은 Next~ Next~~를 눌러주면 된다.

 !! 주의 !!

 필자의 환경 – 우분투 10.04 – Desktop 에서 오라클 설치를 진행할 경우, 왜인지 중간에 Assistant 프로세스를 진행할 때 hang이 걸리는 문제가 있었다.
왼쪽의 화면처럼 창이 하나 뜨고 창의 안쪽에는 아무런 화면이나 메시지가 나타나지 않는 문제였다.

 분명 저번에 어떻게 해결한 것 같았는데, 도저히 기억이 나질 않았다. 한참을 고민하다가 답을 찾았다. 아마도 데스크탑 환경에서 실행중인 한 패키지(혹은 라이브러리) 중에서 화면을 띄우는 라이브러리와 뭔가 상성(?)이 맞지 않아서 생기는 문제인 듯 했다.

 그래서 우분투 처음 시작시, 로그인을 할때 시작을 Xterm 모드로 로그인을 하여 데스크탑 설정과 관련된 대부분의 라이브러리/프로세스 실행을 멈추게 하였다.

 그리고 설치를 진행하니 정상적으로 설치가 되는 것을 확인하였다…

 

 쭈욱 넥스트가 나오고 다음 창이 나오면, Script to be executed : 경로에 있는 곳으로 가서 sh(스크립트
파일)을 실행시키자.

 위쪽에 써 있듯이, root 계정으로 실행시켜야 한다.

 #12. Complete Install And System Reboot.

본인 계정으로 로그인 후 터미널을 실행하여 /etc/oratab파일 부분을 수정


보이는 것처럼 oracle:/oracle/11g:N 을 oracle:/oracle/11g:Y 로 변경하면 된다.

#13. 오라클 리스너의 절대 패스 수정

# gedit /oracle/11g/bin/dbstart


 ORACLE_HOME_LISTNER= 부분을

 ORACLE_HOME_LISTNER=/oracle/11g 로 설정해 주면 되겠다.


제……………….. 오라클 실행해보자…

oracle 계정에서

$ lsnrctl start

리스너 시작 후에

SQL> conn oracle as sysdba
Enter password:
Connected to an idle instance.
SQL> startup
ORACLE instance started.

 
 #.14 여기까지가 oracle 의 설치부분이다. 이제 proc를 이용한 프로그램의 컴파일을 위한 부분을 알아보도록 하자.

 예제 proc 프로그램을 이용하여 컴파일을 시도해보자.

 나는 사내에서 사용하는 Pro 프로그램을 사용했다.

 다른 분들은 이곳
 http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Database/dbms_programing/OracleProcPrograming_Start

 을 참고하여 알맞은 예제 소스를 구하도록 바란다.(사실 저곳에 나머지 내용이 다 나와있다.)

 필자의 경우 proc 프로그램 컴파일을 실행하면 아래의 오류 메시지가 나왔다.

 /oracle/11g/bin/proc: error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such file or directory

 libclntsh.so.11.1 파일을 찾을 수가 없다는 내용인데 이는 라이브러리 패스와 심볼릭 링크 설정으로 해결 할 수 있다.
 

먼저 .bash_profile 에 다음을 추가한다. (필자의 경우 ~/.bashrc) 였다.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

그래도 안되면 $ORACLE_HOME/lib 에 파일 이 있는지 확인후 없으면 링크한다.

[oracle@localhost lib]$ ln -s
libclntsh.so.10.1  libclntsh.so

 

 그리고 추가로 다음의 문제도 발생했었는데…

Error at line 34, column 11 in file /usr/include/stdio.h
# include <stddef.h>
……….1
PCC-S-02015, unable to open include file
Error at line 15, column 10 in file /usr/include/_G_config.h
#include <stddef.h>
………1
–More–make: *** [oraquery.o] Error 1
PCC-S-02015, unable to open include file
Error at line 52, column 11 in file /usr/include/wchar.h
# include <stddef.h>
……….1
PCC-S-02015, unable to open include file
Error at line 53, column 11 in file /usr/include/libio.h
# include <stdarg.h>
……….1
PCC-S-02015, unable to open include file
Syntax error at line 332, column 3, file /usr/include/libio.h:
Error at line 332, column 3 in file /usr/include/libio.h
  size_t __pad5;
..1
PCC-S-02201, Encountered the symbol “size_t” when expecting one of the following
:

 이는 /oracle/11g/precomp/admin/pcscfg.cfg 설정을 바꿔줌으로써 해결 할 수 있었다.

 /oracle/11g/precomp/admin/pcscfg.cfg 파일안에  /usr/lib/gcc/i486-linux-gnu/4.4/include 설정을 추가하도록 한다.

 단, 이 설정은 배포판, gcc 버전 등에 따라 바꿔질 수 있으므로 경로를 확인해서 입력하여만 한다.
 
 여기까지 설정이 끝났다면 이제 Proc 를 사용하면 된다. 🙂

2010 June 16 Clody

 Today, I try to talk about some happenings in yesterday.

 At the beginning, it was just good dinner, as usual.

 But… I didn’t notice. Two some special people int that event.

 One person… is Mr. James. He is one of the CEO of Nexus Community.

 Actually, His working place is not in Korea. His Working place is in China.

 So, I didn’t know who is he, and what is his position.

 It was my first mistake.

 So… what is second mistake? And who is second person? Guess who?

 It’s me.

 I’m a new man in Nexus Community, and I didn’t introduce myself to James, not yet.

 Anyway, I did introduce myself to Jame, politely.

 When I finished my introduction, he told me.

 “Do you know how we introduce our new member in our own traditional way?”

 I said “Well…..”

 That is my second, critical mistake.

 What I only remember the thing before to arrived at home that I drink again and again.

 True to be told, it’s not bed. Funny and helpful to me.

 It was a good chance for me. To make more friend with Nexusians.

 James was knew, and everybody already experienced it.(or not?)

 Well… I want to write more about next episode.

 But it’s enough. Because after a long time later, when I remember about my first company(Nexus) everything will be remembered in my memory, named as a “Good memory”.

 

아이폰 – 월드 워(World War)

 늦바람이 무섭다고 했던가..

 요즘 새로이 산 아이폰 3G(으윽.. 내가 사자마자 아이폰4 출시와 아이폰 3G 의 급격한 가격 하락이 시작되었다..ㅠㅠ) 를 가지고 노느라 정신이 없다.

 아이폰을 구입하기 전까지는 휴대폰은 오직 문자와 전화만을 위한 용도로 사용되었는데, 아이폰은 나의 생각을 바꾸어 주었다.

 요즘 하고 있는 게임은 월드 워(World War) 이다.

 얼마전에 유행하던(지금도???) 웹 게임과 비슷한 방식인데 휴대폰에서 플레이를 하니 시도때도없이 생각이나 손에서 떼지를 못하고 있다.

The Beginners Guide To World War For The iPhone | John Nemec

이미지출처 : johnnemec.com

 어서 빨리 동맹군을 많이 만들어야 하는데 큰일이다..ㅎㅎㅎ

 혹시 한국분들 플레이하고 계시면 동맹추가 부탁드려요

 KSFPE5
 pchero 입니다. 🙂

2010 June 14 Rain

 This is my first English diary after I moved here in Seoul.

 Today I finished my little homework that is about computer programs.

 In last few days, I tried to interconnect each different three computer programs on my linux laptop.

 But every time I tried, do failed. But yesterday, I did it!

 Of course, I had asked some help from the Internet and NEXUSIANS.

 And now I posted every information about interconnection of each three programs on my web blog.

 I hope I wish it will be helpful for someone who wants to use that programs.

—————————————————————————————————

 Milky said.
 Good job.
 I bet you had a hard time interconnecting those three programs.
 Job well done!