OS/CentOS

[CentOS] CentOS Oracle 설치

codewar 2010. 4. 28. 18:23

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;