====== Installation Guide Oracle 11g On Debian 5.0 (lenny) ======
===== 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 libc6 libc6-dev libaio1 libstdc++5
# apt-get install gcc make binutils lesstif2 lesstif2-dev rpm gawk x-window-system-core
# apt-get install unzip xterm
# apt-get install make binutils gcc unixodbc-dev sysstat pdksh libaio-dev elfutils
# apt-get purge kaffe kaffe-pthread (kaffe가 설치되어 있다면 지워준다)
# apt-get purge openjdk-6-jre openjdk-6-jre-headless (openjdk가 설치되어 있다면 지워준다)
# apt-get install sun-java5-jdk
* 심볼릭링크를 만든다.(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
...
===== Create oracle user =====
* dba 그룹이 있는지 확인하고 없으면 생성한다.
# grep -E '(dba|oinstall|asmdba|oper|asmadmin|asmoper)' /etc/group
# groupadd oinstall
# groupadd dba
# groupadd asmdba
# groupadd oper
# groupadd asmadmin
# groupadd asmoper
#
# groupadd nobody
* oracle 계정을 생성한다.
# useradd -g oinstall -G dba,asmdba,oper,asmadmin,asmoper -m -s /bin/bash oracle
# passwd oracle
===== Download Oracle Package =====
* 오라클 사이트에 로그인 후 11.0.2 버젼을 다운로드 받는다. \\ http://www.oracle.com/technology/software/products/database/index.html
$ id
uid=1031(oracle) gid=114(oinstall) groups=114(oinstall),115(dba)
,116(asmdba),117(oper),118(asmadmin),119(asmoper)
$ mkdir install
$ cd install
$ cp /path/from/linux_11gR2_database_1of2.zip .
$ cp /path/from/linux_11gR2_database_2of2.zip .
* 디렉토리를 만들고 압축을 해제한다.
$ unzip linux_11gR2_database_1of2.zip
$ unzip linux_11gR2_database_2of2.zip
===== System Parameters =====
시스템 설정을 반드시 체크하고 설치를 진행하도록 하자.
* 메모리를 확인한다.(최소 800M 이상 필요하다.)
$ grep MemTotal /proc/meminfo
MemTotal: 2068136 kB
* 스왑영역 확인(1G이상 권장한다.)
$ free
total used free shared buffers cached
Mem: 2068136 2015368 52768 0 30444 1893064
-/+ buffers/cache: 91860 1976276
Swap: 3903784 604 3903180
* 스왑영역이 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 등)로 아래의 내용을 추가한다.
# oracle10g
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
# oracle11g
net.core.rmem_max = 4194304
net.core.rmem_default = 262144
net.core.wmem_max = 1048576
net.core.wmem_default = 262144
fs.aio-max-nr = 1048576
* 수정 후 바로 적용하려면 **sysctl -p** 명령을 주면 바로 적용된다.
* **/etc/security/limits.conf** 에 limit 설정을 한다.
# for oracle 11g
* 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 11g
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
===== Shell environment =====
오라클 Bash 환경설정을 한다.
* **~/.bash_profile** 나 **~/.bashrc** 에 아래의 내용을 설치한 경로에 맞추어서 추가한다.
#
# Oracle Environment
#
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export ORACLE_SID=PROD
export PATH=$PATH:$ORACLE_HOME/bin
# export NLS_LANG=KOREAN_KOREA.KO16MSWIN949
# export NLS_LANG=KOREAN_KOREA.KO16KSC5601
# export NLS_LANG=KOREAN_KOREA.UTF8
# export NLS_LANG=KOREAN_KOREA.AL32UTF8
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
===== Oracle Installation =====
==== 원격서버 로그인 ====
=== cygwin 를 이용한 간편 X 로그인방법 ===
- **Cgywin-X** 의 **XWin Server** 를 실행한다.
- ssh 를 이용하여 원격접속을 시도한다. $ ssh -X oracle@10.1.1.200
- 원격서버에서 xclock 등이 실행되는지 확인해 본다.
=== 일반적인 X 로그인방법 ===
- 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
- xclock 등으로 X 프로그램이 잘 실행되는지 테스트해본다.
# xclock
==== 설치시작 ====
- **runInstaller** 을 실행한다.
$ export LANG=C
$ cd install/database
$ ./runInstaller
- Oracle Installation GUI가 뜨고 그 후 과정은 오라클 설치문서대로 진행하면 된다.
===== 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
- 모든 링크를 재생성하려면 다음과 같이 실행한다.
$ cd $ORACLE_HOME/bin
$ relink all
- DB 생성시 TNS lost connect 에러가 발생하였을 경우, dbca로 DB를 수동생성해준다. $ dbca
- 설치 후 EM 에 접속하려면 웹브라우저에서 https:''/''/아이피주소:1158/em 를 입력한다.