문서는
http://www.oracle.com/technology/pub/articles/smiley_rac10g_install.html
http://www.oracle-base.com/articles/10g/OracleAS10gInstallationOnFedora2.php
참조.
시스템 환경 점검
2.6.9-11 이상의 커널이 필요하다.
# uname -r
필요한 패키지 버전(그 이상도 당연히 가능) -> 대부분 설치되어 있다.
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
libaio-devel-0.3.106 <- 2009.1.8 설치 중 발견.
compat-libstdc++-33-3.2.3-i386 <-2009.1.8 설치 중 발견.
실제로 요구사항으로 체크되는 패키지의 목록은 다음과 같다. <- 2009.1.8 update
make-3.81
binutils-2.17.50.0.6
gcc-4.1.1
libaio-0.3.106
libaio-devel-0.3.106
libstdc++-4.1.1
libstdc++-devel-4.1.1
sysstat-7.0.0
libgcc-4.1.1
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
glibc-common-2.5
glibc-devel-2.5
gcc-c++-4.1.1
compat-libstdc++-33-3.2.3
시스템 요구사항 검증
# grep MemTotal /proc/meminfo
MemTotal : xxxxxx KB
# grep SwapTotal /proc/meminfo
SwamTotal : xxxxx KB
계정 생성
# groupadd oinstall
# groupadd dba
# useradd -m -g oinstall -G dba oracle
# passwd oracle
디렉토리 생성
# mkdir /oracle
# chown -R oracle.dba /oracle
# chmod -R 755 /oracle
hosts 파일
/etc/hosts 파일이 제대로 설정되어 있는지 확인.
# cat /etc/hosts
<IP-address> <fully-qualified-machine-name> <machine-name>
커널 파라미터 설정
Oracle 11g? 가 요구하는 커널 매개변수 설정이다. 아래의 수치는 최소값이며 /etc/sysctl.conf에 적혀있는 값이
아래의 값보다 높을 경우에는 변경하지 않아도 된다. 물론 낮을 경우에는 /etc/sysctl.conf 에 추가해준다.
# sysctl -a | grep ... 으로 확인할 수 있다.
#kernel.shmall = 2097152
#kernel.shmmax = 2147483648
#kernel.shmmni = 4096 <- 수정했음.
# semaphores: semmsl, semmns, semopm, semmni
#kernel.sem = 250 32000 100 128
#fs.file-max = 131072
net.ipv4.ip_local_port_range = 1024 65000
kernel.msgmni = 2878
#kernel.msgmax = 8192
#kernel.msgmnb = 65535
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
(#처리는 서버에서 해당값보다 크거나 같은 경우이다. 적다면 주석 풀고 붙여넣는다.)
2009.1.8 update
실제 확인하는 커널 매개변수와 값. (물론 값이 큰건 성공으로 표시된다.)
semmsl=250
semmns=32000
semopm=100
semmni=128
shmmax=536870912
shmmni=4096
shmall=2097152
file-max=65536
VERSION=2.6.18
ip_local_port_range=1024 - 65000
rmem_default=4194304
rmem_max=4194304
wmem_default=262144
wmem_max=262144
실제로 적어줘야하는 형식은 위에 적혀있는 것을 따르거나 google it.
----------------------------------------------------------------------
변경이 완료되면
# /sbin/sysctl -p 로 변경된 설정을 적용한다.
oracle 사용자 계정의 shell limit 설정
Linux 계정 별로 실행되는 프로세스와 열린 파일 수를 제한한다. 이를 위해 /etc/security/limits.conf 를 편집한다.
아래에 추가하자. (간격은 tab으로 조정하던지.. 알아서 )
#<domain> <type> <item> <value>
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
그리고 /etc/pam.d/login 에 다음을 추가하자.
session required /lib/security/pam_limits.so
oracle 계정을 위한 환경변수
DB 서버에서 설정해야하는 환경변수는 다음과 같다.
ORACLE_BASE
ORACLE_HOME
ORACLE_SID
PATH
위의 변수를 추가하기 위해서 oracle 계정의 .bash_profile에 다음을 추가한다.
ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=/oracle/11g; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
PATH=$PATH:$ORACLE_HOME/bin
오라클 배포판 다운받기
배포판을 다운받아서 특정 디렉토리에 압축을 풀어놓는다. 물론 디렉토리는 oracle 계정의 소유여야한다.
루트로 작업하고 나중에 chown을 사용해도 상관없다.
# unzip linux.x64_11gR1_database.zip <물론 zip파일의 이름은 다를 수도 있다 -_->
# chown -R oracle.oinstall ./database
설치 전에..
oracle 계정으로 로그인 해서 설치 파일들을 풀어놓은 디렉토리에서 runInstaller를 실행하기 전에..
# xhost +
(+까지 쳐야한다. 이걸 해줘야 루트로 로그인 한 X윈도에서 터미널로 su - oracle을 이용해서
oracle 계정을 사용 xwindow 창을 띄울 수 있다. 궁금하다면 man xhost 를 참고할 것)
예전에는 /etc/redhat-release를 수정해주곤 했는데 안해줘도 잘 나온다.
oracle 11g도 한글이 다 깨져서 나온다. runInstaller 전에 다음을 실행한다.
# export LANG=C
그리고 나서 runInstaller를 실행하면 깨지지 않고 나올 것이다. 물론 영어로 -_-;
이제 runInstaller를 실행해보자.
Home Location 을 profile과 동일하게 맞춰주고..
Global Database Name 도 SID 와 맞춰준다.
Advanced Installation으로 들어가면 이것저것 만질 수 있는게 많다. 귀찮으므로 패스.
자.. 이제 다음 화면이다. 
group name도 dba로 설정해준다.
Warning도 뜨고.. not execute(Network 설정)도 뜬다. 그냥 User Verify 로 선택하고 넘어가자.

자 이제 Summary 를 볼 수 있다. 




다음은 패스워드 설정이다. 11g 에서는 sys / system / dbsnmp / sysman 을 제외한 모든 계정이 잠겨있다.
여기서 풀어줄 수 있다. scott 정도는 풀어주자.


항상 해오던 루트로 실행해줄 스크립트다. 터미널을 하나 열어서 적혀있는 스크립트를 루트권한으로 실행해준다.


오라클 자동 시작/종료 설정
# vi /etc/oratab
orcl:/oracle/11g:N <- N을 Y로 수정한다.
orcl:/oracle/11g:Y
에러처리
다음과 같은 에러가 날 것이다.
error while loading shared libraries libnnz11.so: cannot restore segment prot after reloc Permission denied
뭔가 퍼미션이 없다는 얘긴데.. 이건 SELinux를 disable 시켜주면 된다. SELinux disble 시키는 방법은
/etc/selinux/config 파일을 잘 읽어보고 고치면 된다. (모르면 구글에 검색)
또 이런 에러가 날 수도 있다.
$ ./lsnrctl start
LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 18-FEB-2008 19:14:37
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Message 1070 not found; No message file for product=network, facility=TNSTNS-12545: Message 12545 not found; No message file for product=network, facility=TNS
TNS-12560: Message 12560 not found; No message file for product=network, facility=TNS
TNS-00515: Message 515 not found; No message file for product=network, facility=TNS
Linux Error: 2: No such file or directory
이런 경우는 포트가 열려있지 않은 경우니까.. 방화벽에서 1521번 포트를 열어주자.
오라클 실행과 종료
oracle 계정에서
$ lsnrctl start <리스너 스타트>
리스너 시작 후에..
$ sqlplus /nolog
sqlplus> connect orcl as sysdba
...
sqlplus> startup
서비스 스크립트 작성
# vi /etc/init.d/oracle
다음의 내용을 파일에 쓴다.
#!/bin/bash
ORA_HOME="/oracle/11g/"
ORA_OWNER="oracle"
if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ]
then
echo "Oracle Startup: failed"
exit 1
fi
case "$1" in
start)
echo -n "Oracle Start: "
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
touch /var/lock/subsys/oracle
echo "OK"
;;
stop)
echo -n "ORACLE Shutdown: "
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
rm -f /var/lock/subsys/oracle
echo "OK"
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 start|stop|restart"
exit 1
esac
exit 0
----------------------------------------------------------------------
사용은 /etc/rc.d/init.d/oracle start | stop | restart ~
그럼
ps. 오래전에 썼지만 최근 10g 설치 건이 있어서 검색하던 차에 몇몇 블로그에서 보이더군요.
그것도 CCL까지 붙여서. 어처구니가 없어서 정말 -_-;











덧글
aJava 2008/02/19 12:33 # 삭제 답글
warning message 중에서..[ /etc/sysctl.conf ]
...
#kernel.sem =250 32000 32 128
kernel.sem =250 32000 100 128
#net.core.rmem_default = 126976
#net.core.rmem_max = 131071
#net.core.wmem_default = 126976
#net.core.wmem_max = 131071
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
요거 적어주면 워닝 몇개 없어지더군요 ( 주석은 디폴트값 )
여튼, 잘 보고 갑니다~
mswar 2008/04/25 23:29 # 삭제 답글
허락도 없이 제 블로그에 담았습니다. 기분 나쁘셨다면 제 블로그에 답글 남겨 주시면 바로 삭제 하겠습니다. 좋은 자료 감사합니다.blog.naver.com/mswar
2008/11/25 13:59 # 삭제 답글
비공개 덧글입니다.
refill 2008/11/26 11:56 # 답글
삭제까지 하실 필요는 없고.. 그저 출처만 밝혀주시면 됩니다.
light0a 2008/12/08 15:04 # 삭제 답글
유익한 글 감사해요. 담아갑니다^^
jarlong 2009/02/02 17:37 # 삭제 답글
존경합니다. 담아갑니다
nicew 2009/02/05 10:30 # 삭제 답글
좋은 정보 감사합니다^^
nextho 2009/02/12 00:08 # 삭제 답글
방화벽 포트 1521 열어주면 에러 해결된다는 부분 ...제가 방화벽에(iptable) 포트 추가해주고 했는데도 ... 계속 저런 에러가 납니다.
오라클도 처음이고 리눅스도 처음이라 ... 계속 헤메고있습니다. 조언좀 부탁드립니다.
refill 2009/02/12 08:34 #
에러 메시지를 보여주셔야 도와드릴 수 있을거 같네요.
nextho 2009/02/12 09:24 # 삭제
LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 12-FEB-2009 09:15:43Copyright (c) 1991, 2007, Oracle. All rights reserved.
Message 1070 not found; No message file for product=network, facility=TNSTNS-12545: Message 12545 not found; No message file for product=network, facility=TNS
TNS-12560: Message 12560 not found; No message file for product=network, facility=TNS
TNS-00515: Message 515 not found; No message file for product=network, facility=TNS
Linux Error: 2: No such file or directory
-------------------------------------
에러메시지 입니다.
listener.ora 이파일도 뭐 수정하고 해야되나요?
nextho 2009/02/12 10:34 # 삭제
오홋 ORACLE_HOME 변수가 ORACLE_home 으로 되어있어서저런 에러가 났었나봐요 해결했습니다. 감사합니다^^
refill 2009/02/12 17:03 # 답글
해결하셨다니 다행이네요 ^^
basaaja 2009/09/30 18:19 # 삭제 답글
저의 경우는Message 1070 not found; No message file for product=network, facility=TNSTNS-12545: Message 12545 not found; No message file for product=network, facility=TNS
TNS-12560: Message 12560 not found; No message file for product=network, facility=TNS
TNS-00515: Message 515 not found; No message file for product=network, facility=TNS
Linux Error: 2: No such file or directory
이 에러 발생시
환경 변수의
ORACLE_HOME 를 /oracle 이 아니라 /home/oracle/app/oracle/product/11.2.0/dbhome_1/
으로 잡아줘야 되던데요 .. ?
문서에서 빠진게 아닌가요 ? 아님 제가 하다가 뭐 빼먹었을 수도 있고요 ㅎㅎ
그래도 이거 보고 설치 성공해서 매우 감사합니다. !!
이곳에 들러서 오라클설치에 대한 것을 다 해결할수 있었습니다.
귀중한 노하우를 공개해 주셔서 정말 감사합니다.
P.S. 혹시나 싶어 한말씀...
==> CentOS 5.3 설치하여 했는데요. 설치요구 패키지에 pdksh 라는것이 나오더라구요.
도저히 해당 내용이 설치 되지 않아서 무시하고 했는데 일단은 잘 되었답니다.
김병국 2011/01/26 10:18 # 삭제 답글
좋은 정보 고맙습니다.
호러블캣 2011/09/16 11:18 # 삭제 답글
정말 친절하시군요. 감사합니다. ^^