본문 바로가기

DB/Oracle

[LINUX] ORACLE 설치 (9i, 10g, 11g)

■ oracle
CentOS (Redhat) x64 시스템에서 oracle 설치 과정
 
공통 준비
 
1. 자신이 사용할 오라클 다운로드
2. LINUX 설치 준비
리눅스를 설치할때 주의 사항
※GUI를 설치하라 (본 문서는 gnome으로 진행한다)
※개발툴을 모두 설치하라 (나중에 rpm으로도 가능하다만은 귀찮으니)
※host명 변경시에 골치 아픈일이 생길수 있으니 미리 host명을 생각해 두어라
※스토리지 공간도 확인하자
3. CentOS를 설치 했다면 아래 부분을 변경하자
/etc/redhat-release
기존 : CentOS release 5.4 (Final)
변경 : redhat-4
4. 필요한 PKG를 설치해야한다. 위에서 개발툴을 모두 설치 했다면 그다지 설치할 부분은 없을것이나 확인 절차
rpm -qa binutils
rpm -qa compat-libgcc
rpm -qa compat-libstdc++
rpm -qa compat-libstdc++
rpm -qa cpp
rpm -qa gcc
rpm -qa gcc-c++
rpm -qa glibc
rpm -qa glibc-common
rpm -qa glibc-devel
rpm -qa glibc-headers
rpm -qa libaio
rpm -qa libaio-devel
rpm -qa libgcc
rpm -qa libstdc++
rpm -qa libstdc++-devel
rpm -qa make
rpm -qa setarch
rpm -qa libXp # 개발툴을 설치해도 없다 x86용으로 설치해야한다
rpm -qa openmotif # 개발툴을 설치해도 없다 x86용으로 설치해야한다
rpm -qa unixODBC* # 개발툴을 설치해도 없다 x86용으로 설치해야한다
rpm -qa |grep elfutils # 이건 oracle 11g부터 x86용으로 설치해야한다
5. 오라클 설치 계정 확인
관리계정 사용자 oracle UID:500
관리계정 그룹 oracle GID:500
HOME_DIR : 정하기 나름 /data/oracle
========================= 아래부터는 각 버전별로 틀리니 참고 =========================
※대충 보면 비슷비슷합니다...
oracle 9i
Kernel Parameter
vi /etc/sysctl.conf
kernel.sem = 250 32000 100 128   
kernel.shmmin = 128                  
kernel.msgmnb = 65536
kernel.msgmni = 2878
kernel.shmmax = 2147483648
kernel.shmall = 2097152
# 아마도 CentOS 5버전 이상이면 위 값보다 클것으로 예상되어진다...크면 굳이 변경할 필요 없잖은가?

net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144

수정 후 : sysctl -p
※주의 사항
oracle 9i 설치할때 삽질한 추억이 새록새록...
jre 1.3.1을 사용하는데 지금 어디서 5가 있으니 이상없겠지...라고 생각하면 오산이다...ㅠ_ㅠ;
꼭 jre 1.3.1을 미리 설치를 해두어 JAVA_HOME, JAVA_OPT를 미리 맞춰주는게 좋다
JAVA_OPT 경우 default 메모리가 128Mb인데 작다...-_-; 미리 512Mb정도 설정해주는게 좋다
 
JAVA경로는
DISK1/install/linux/oraparam.ini 파일에
JRE_LOCATION 에서 지정이 가능하다.
옵션도 있는지는 잘 모르겠다...-_-;;
 
cpio 압축 풀기
9i버전은 절대로 동일 폴더에 풀지 말아라...폴더를 묶을 생각도 말고...-_-;
각각 디스크명대로 되어져 있어야 한다...설치 안되어지니 유의
 
cpio -idmv < oracle9i_linux_disk1.cpio
cpio -idmv < oracle9i_linux_disk2.cpio
cpio -idmv < oracle9i_linux_disk3.cpio
oracle 10g
Kernel Parameter
vi /etc/sysctl.conf
kernel.sem = 250 32000 100 128
kernel.shmmin = 128
kernel.msgmnb = 65536
kernel.msgmni = 2878
kernel.semopm = 100
kernel.shmmax = 2147483648
kernel.shmall = 2097152
# 아마도 CentOS 5버전 이상이면 위 값보다 클것으로 예상되어진다...크면 굳이 변경할 필요 없잖은가?
 
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
수정 후 : sysctl -p
 
vi /etc/security/limits.conf 추가
*       soft        nproc         2047
*       soft        nofile         1024
*       hard        nproc        16384
*       hard        nofile         65536
vi /etc/pam.d/login
session required /lib/security/pam_limits.so
ulimit 값 변경
ulimit -p 16384
ulimit -n 65535
※아싸리 profile 혹은 .bashrc 에 박아둬도 된다
※주의 사항
이 버전부터는 java도 안정적이고 특별히 고생할 부분도 없었다..
단 network 상황에 따라 인스톨 과정에서 오류가 발생되어질수도 있는 부분이 존재한다
계략적인 원인은 sun.oracle.com 이였던가? 사이트에 접속이 안되어지면서 발생되어지는 에러이니 참고
oracle 11g
Kernel Parameter
vi /etc/sysctl.conf
kernel.sem = 250 32000 100 128     #ERROR
kernel.shmmin = 4096                  #ERROR
kernel.msgmnb = 65536
kernel.msgmni = 2878
kernel.shmmax = 2147483648
kernel.shmall = 2097152
# 아마도 CentOS 5버전 이상이면 위 값보다 클것으로 예상되어진다...크면 굳이 변경할 필요 없잖은가?
 
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
수정 후 : sysctl -p
 
vi /etc/security/limits.conf 추가
*                soft    nproc           2047
*                soft    nofile          1024
*                hard    nproc           16384
*                hard    nofile          65536
vi /etc/hosts 
11g버전부터는 DNS와 연관되어진 부분이 있다.
일반적으로 db서버를 DNS에 박아서 쓰지 않으니 hosts파일을 수정하자
장비의 리얼 아이피를 박아주자
192.168.0.2           oracle.test.com test
 
※주의 사항
이 버전부터는 java도 안정적이고 특별히 고생할 부분도 없었다..
단 network 상황에 따라 인스톨 과정에서 오류가 발생되어질수도 있는 부분이 존재한다
계략적인 원인은 sun.oracle.com 이였던가? 사이트에 접속이 안되어지면서 발생되어지는 에러이니 참고
=====================================================================================
위 버전별 과정을 걸쳤으면 다시 공통 설치 과정으로 넘어간다.
 
1. profile (bashrc) 세팅
oracle id에 세팅을 하게 되어지며 아래와 같이 설정이 되어진다. (이 글은 bash 기준이다)
vi ~/.bashrc
export ORACLE_BASE=/data/oracle
export ORACEL_HOME=/data/oracle
#export ORACLE_HOSTNAME=oracle.test.com #이건 oracle 11g용이다.
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME:.:
export ORACLE_SID=ORCL
export NLS_LANG=KOREAN_KOREA.KO16KSC5601
export ORACLE_TERM=vt100
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
#export ORACLE_OEM_JAVARUNTIME=/usr/java1.3.1/ #이건 oracle 9i용
 
unset LANG
=====================================================================================
사실 GUI를 일일히 캡쳐해서 올려야 하는데...........귀차니즘으로 인해 GUI는 생략하자..
사실 위 정도까지만 세팅이 되어지면 나머지는 그냥 클릭클릭 정도 수준일것이다..
 
※원격지에서 oracle 설치시 오류발생건!
원격지에서 설치해야할 일이 있는데 xwindows에서 host명과 display번호때문에 JAVA가 실행이 안되어지는 경우가 생긴다. (java의 graph 함수인데, display번호를 본다 그렇기때문에 이 부분은 꼭 확인하자)
 
현재 자신이 붙은 장비의 host를 지정을 해줘야한다.
명령어는 xhost :0.0 혹은 xhost + 해주면 된다
=====================================================================================
인스톨 과정중 다른 주의 사항
1. 중간중간 쉘에서 입력해야하는 명령어가 존재한다 절대 스킵하지 말고 해당 명령어를 따라가자
2. DBCA (database configuration assistant)는 설치중간에 오류가 있어서 안될수도 있다. (특히 oracle 9i) 이 경우에는 DBCA를 별도로 실행이 가능하다 (GUI환경이다)
 
cd $ORACLE_HOME/bin/dbca
 
 

 
출처 :  

http://nosage.tistory.com/165

:::::::::::::::::::CentOS oracle 10g설치::::::::::::::::::::::

 
1. root로 로그인하여 계정 생성


# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle

# mkdir -p /u01/app/oracle/product/10.2.0/db_1
# chown -R oracle.oinstall /u01

 

2. 시스템 파라메터 추가.

# vi /etc/sysctl.conf


아래 내용 추가 / 기존내용 주석
# oracle 10g setting
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
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144

 

# /sbin/sysctl -p
출력 확인

 

# vi /etc/pam.d/login


아래 내용 추가
# oracle 10g setting
session  required  /lib/security/pam_limits.so

 

# vi /etc/security/limits.conf


아래 내용 추가
# oracle 10g setting
oracle     soft     nproc     2047
oracle     hard    nproc     16384
oracle     soft     nofile      1024
oracle     hard    nofile      65536

 

# vi /etc/profile


아래 내용 추가
# oracle 10g setting
if [ $USER = "oracle" ]; then
 ulimit -u 16384 -n 65536
fi

       


3. 시스템 재부팅 후 루트계정 로그인

# shutdown -r now

 

# vi /etc/redhat-release
아래 내용 추가 / 기존내용 삭제 또는 주석
수정 전 : CentOS release 5.3 (Final)
수정 후 : redhat-4

 

4. oracle 사용자로 로그온하여, Oracle 환경 변수를 설정

# su - oracle
$ cd ~
$ vi .bash_profile


아래 내용 추가
# oracle 10g setting
TMP=/tmp; export TMP
TMPDIR=$TMP;
export TMPDIR
ORACLE_BASE=/u01/app/oracle;
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1;
export ORACLE_HOME
ORACLE_SID=orcl;
export ORACLE_SID
ORACLE_TERM=xterm;
export ORACLE_TERM
PATH=/usr/sbin:$PATH;
export PATH
PATH=$ORACLE_HOME/bin:$PATH;
export PATH
export LANG=C

 

추가후 저장하고 아래 실행

$ source .bash_profile

 

5. 필수 패키지 설치

# yum install binutils
# yum install compat-libgcc-296
# yum install compat-libstdc++-296
# yum install compat-libstdc++-33
# yum install cpp
# yum install gcc
# yum install gcc-c++
# yum install glibc
# yum install glibc-common
# yum install glibc-devel
# yum install glibc-headers
# yum install ksh
# yum install libaio
# yum install libaio-devel
# yum install libgcc
# yum install libstdc++
# yum install libstdc++-devel
# yum install make
# yum install setarch
# yum install libXp
# yum install openmotif
# yum install unixODBC*

 

6. 오라클 압축 풀기

다운 경로 이동후
# unzip 10201_database_linux32.zip
# mkdir /oracle10g
# chmod 755 database
설치 파일 원하는곳에 이동후 설치

 

7. 설치 시작

# xhost +
설치는 반드시 oracle 계정으로
# su - oracle

압축 푼곳 이동

$ cd database
$ ./runInstaller


 

설치 시작하기
http://huikyun.tistory.com/204

 


서비스 시동/중지

$ sqlplus /nolog
SQL> connect /as sysdba
SQL> startup

SQL> SELECT LTRIM('000123','0') FROM DUAL;

SQL> 123
SQL> shutdown


오라클 인스턴스를 시작하였으면 아래와 같이 오라클 리스너를 켜준다.
오라클 리스너를 켜야만 sqlplus 이외에 외부 접속이 가능하다.
그리고 다른 host에서 접속할때는 방화벽에서 오라클 서비스 포트(기본 1521)이 막혀 있지 않은지 확인한다.
리스너
$ lsnrctl start
$ lsnrctl stop

iSQL*Plus

$ isqlplusctl start
$ isqlplusctl stop

Enterprise Manager

$ emctl start dbconsole
$ emctl stop dbconsole



서비스 자동 시작

# vi /etc/rc.d/rc.local

 

아래 내용 추가
# for oracle 10g
su - oracle -c '/u01/app/oracle/product/10.2.0/db_1/bin/lsnrctl start'
su - oracle -c '/u01/app/oracle/product/10.2.0/db_1/bin/dbstart'
su - oracle -c '/u01/app/oracle/product/10.2.0/db_1/bin/isqlplusctl start'

 

# vi /etc/oratab

 

아래에서 끝에 N을 Y로 수정한다.
orcl:/u01/app/oracle/product/10.2.0/db_1:N


오라클 제거

오라클 홈디렉터리 화일 전부 삭제
# rm -rf /etc/oraInst.loc
# rm -rf /etc/oratab
# rm -rf /usr/local/bin/oraenv
# cd /tmp
관련 파일 삭제
계정관련파일 삭제

 


설치후 사용자 관리

사용자 확인
SQL> SELECT * FROM all_users;

유저 생성
SQL> CREATE USER seban IDENTIFIED BY seban00;

유저 권한주기
SQL> GRANT connect, resource, dba TO  seban;

생성한 유저로 접속
SQL> CONN seban / seban00

사용자 삭제
SQL> CONN system / password
SQL> DROP USER seban;

 

 

윈도우에서 접속하기위한 리스너 설정

 

 

우선 방화벽에 1521 포트 열려있는지 확인

# vi /etc/sysconfig/iptables

 

아래 내용 없을경우 추가
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT

 

저장후 아래 명령 실행
# service iptables restart

 

 

$ vi /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora

 

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.5)(PORT = 1521))
    )
  )

 

 

설정이 모두 끝났으면 한번 리스타트 해주자

# shutdown -r now


 

접속후 실행하면 잘돌아간다 ^^

 

 

한글입력시 한글깨짐 처리

$ sqlplus /nolog

SQL> conn /as sysdba

SQL> select * from v$nls_parameters;


<문자셋 설정>

SQL> update sys.props$ set value$='KO16KSC5601' where name='NLS_CHARACTERSET';

SQL> update sys.props$ set value$='KO16KSC5601' where name='NLS_NCHAR_CHARACTERSET';

 

<언어셋 설정>

SQL> update sys.props$ set value$= 'AMERICAN' where name='NLS_LANGUAGE';

SQL> commit;

SQL> shutdown immediate;

SQL> startup;



출처 : 
http://firedev.tistory.com/entry/CentOS-CentOS-Oracle-%EC%84%A4%EC%B9%98

참고 : 
http://firedev.tistory.com/entry/CentOS-CentOS-Oracle-%EC%84%A4%EC%B9%98
http://sonhj8.egloos.com/2886327
http://blog.naver.com/canya83?Redirect=Log&logNo=40106296179
http://srue.net/88
 

'DB > Oracle' 카테고리의 다른 글

[ORACLE] 누적합  (0) 2011.07.13
[LINUX] ORACLE 삭제  (0) 2011.06.29
[LINUX] ORACLE 설치와 활용 - 2  (0) 2011.06.28
[LINUX] ORACLE 설치와 활용 - 1 (8i)  (0) 2011.06.28
오라클 정규식 (REGEXP_LIKE)  (0) 2011.06.07