====== Installation Guide Oracle 10g On Debian (etch) (데비안에 오라클 10g 설치하기) ====== ===== Purpose ===== * Debian에 Oracle을 설치하는 방법에 대한 가이드를 제공한다. * [[os:debian:install | Debian 설치 후 작업]] 을 참조한다. ===== Environment ===== * RedHat Linux 인 것처럼 속이는 것이다. # echo "Red Hat Enterprise Linux AS release 3 (Taroon Update 5)" > /etc/redhat-release * Oracle 설치에 필요한 패키지와 원격에서 X를 실행할 수 있는 패키지를 설치한다. * Debian 패키지를 설치해 준다. (etch 버젼기준) # apt-get install libdb1-compat g++ pdksh sysstat libstdc++2.10-glibc2.2 libc6 libc6-dev libaio1 libstdc++5 # apt-get install gcc make binutils lesstif2 lesstif2-dev rpm gawk x-window-system-core unzip xterm libdb3 libdb3-dev * 만약 etch 이전 버젼이라면 다음과 같이 설치한다. \\ **libaio** - Sarge의 경우 포함되어있지 않으므로 unstable에서 받아야 한다. 아래 사이트에서 libaio를 다운로드 받는다. \\ http://ftp.kr.debian.org/debian/pool/main/liba/libaio/ # apt-get install gcc make binutils libmotif3 lesstif2 rpm gawk xlibs xbase-clients unzip xterm xfs # dpkg -i libaio_0.3.104-1_i386.deb * 심볼릭링크를 만든다.(RedHat 과 Debian 은 기본프로그램의 PATH가 다르기 때문에 링크를 걸어준다.) # ln -s /usr/bin/awk /bin/awk # ln -s /usr/bin/rpm /bin/rpm # ln -s /usr/bin/basename /bin/basename # Suggested by Giuseppe Sacco # ln -s /etc /etc/rc.d # Required for root.sh * sshd를 통해 X 접근이 가능하도록 X11Forwarding을 yes로 변경해 준다. 원격 xserver 를 통해서 설치하는 경우 설정한다. $ vi /etc/ssh/sshd_config ... X11Forwarding yes ... * Ubuntu Dapper 에서는 다음과 같이 설치한다. # sudo apt-get install gcc libaio1 lesstif2 lesstif2-dev make rpm libc6 libstdc++5 * 우분투에서는 다음도 실행한다. # sudo ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so ===== Create oracle user ===== * dba 그룹이 있는지 확인하고 없으면 생성한다. # grep dba /etc/group # groupadd dba * oracle 계정을 생성한다. # useradd -g dba -m -s /bin/bash oracle # passwd oracle * 우분투에서는 nobody 계정도 생성한다. # groupadd nobody ===== Download Oracle Package ===== * oracle 계정으로 로그인한다. * 오라클 사이트 http://www.oracle.com/technology/software/products/database/oracle10g/index.html 에 가서 최신버젼을 다운로드 받는다. $ mkdir install $ cd install $ cp /path/from/10201_database_linux32.zip . * 디렉토리를 만들고 압축을 해제한다. $ unzip 10201_database_linux32.zip * 혹시 cpio로 묶여있다면 다음과 같이 해제한다. $ cpio -idmv < 10201_database_linux32.cpio ===== System Parameters ===== 시스템 설정을 반드시 체크하고 설치를 진행하도록 하자. * 메모리를 확인한다.(최소 800M 이상 필요하다.) $ grep MemTotal /proc/meminfo MemTotal: 905400 kB $ free total used free shared buffers cached Mem: 905400 868836 36564 0 49592 471520 -/+ buffers/cache: 347724 557676 Swap: 489940 441404 48536 * 스왑영역 확인(1G이상 권장한다.) # free total used free shared buffers cached Mem: 905400 868836 36564 0 49592 471520 -/+ buffers/cache: 347724 557676 Swap: 489940 441404 48536 * 스왑영역이 1G보다 작을 경우에는 다음 명령을 통하여 파일스왑을 만들어준다. # dd if=/dev/zero of=swapfile bs=1024 count=1024 # mkswap swapfile # swapon swapfile ===== Kernel Parameters ===== * 현재 커널 파라매터값을 확인한다. # sysctl -a | grep -E '(sem|shm|file-max|ip_local_port_range)' net.ipv4.ip_local_port_range = 1024 65000 kernel.sem = 250 32000 100 128 kernel.shmmni = 4096 kernel.shmall = 2097152 kernel.shmmax = 2147483648 fs.file-max = 65536 * 커널 값을 수정하려면 /etc/sysctl.conf 파일을 편집기(vi 등)로 아래의 내용을 추가한다. kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 * 수정 후 바로 적용하려면 **sysctl -p** 명령을 주면 바로 적용된다. * **/etc/security/limits.conf** 에 limit 설정을 한다. # for oracle 10g * soft nproc 2047 * hard nproc 16384 * soft nofile 1024 * hard nofile 65536 * **/etc/pam.d/login** 과 **/etc/pam.d/su** 에 다음 라인이 활성화되어 있는지 확인다. session required pam_limits.so * **/etc/profile** 에 다음 내용을 추가한다. # for Oracle 10g if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi ===== Oracle Installation ===== * XManager, [[http://cygwin.com|cygwin]] 등의 툴이나 Linux에서 xhost를 이용하여 oracle 계정으로 로그인 한다. $ id uid=1017(oracle) gid=107(dba) groups=107(dba) * 우선 Local PC의 X Server에서 xhost 를 실행한다. # xhost + 원격서버주소 * 해당 원격서버에 ssh 로 접속한 후, DISPLAY 환경변수를 설정한다. * ssh 로 연결할 때, -X 옵션을 주면 DISPLAY 환경변수를 설정하지 않아도 된다. ^^ # ssh 아이디@원격서버주소 # export DISPLAY=로컬PC주소:0.0 * X 프로그램이 잘 실행되는지 테스트해본다. # xclock * **runInstaller** 을 실행한다. $ export LANG=C $ cd install/database $ ./runInstaller * Oracle Installation GUI가 뜨고 그 후 과정은 오라클 설치문서대로 진행하면 된다. ===== Shell environment ===== 오라클 Bash 환경설정을 한다. * **~/.bash_profile** 나 **~/.bashrc** 에 아래의 내용을 설치한 경로에 맞추어서 추가한다. # # Oracle Environment # export ORACLE_BASE=/home/oracle export ORACLE_HOME=$ORACLE_BASE/product/10g export ORACLE_SID=SOAF export PATH=$PATH:$ORACLE_HOME/bin # export NLS_LANG=KOREAN_KOREA.KO16MSWIN949 # export NLS_LANG=KOREAN_KOREA.KO16KSC5601 export SHLIB_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/jlib:/usr/lib export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/jdbc/lib export CLASSPATH=$ORACLE_HOME/lib/classgen.jar:$ORACLE_HOME/jdbc/lib: umask 022 ===== FAQ ===== * 설치도중 rpm 에러가 2줄 나는 경우는 무시해도 상관없다. * DB 생성시 라이브러리 에러가 발생해도 '''continue'''를 눌러 진행한다. 예) ins_rdbms.mk 에러가 발생했을 경우, DB를 모두 내린 후 재컴파일 해준다. $ lsnrctl stop $ sqlplus "/as sysdba" SQL> shutdown immediate; $ cd $ORACLE_HOME/lib/ $ make -f ins_rdbms.mk * DB 생성시 TNS lost connect 에러가 발생하였을 경우, dbca로 DB를 수동생성해준다. $ dbca * 설치 후 EM 에 접속하려면 웹브라우저에서 http://아이피주소:1158/em 를 입력한다. ---- **참고:** 문제해결 방법에 대한 설명을 기록. ===== Link ===== * http://linux.togaware.com/survivor/Oracle_10g.html * http://www.dizwell.com/prod/node/52