본문 바로가기

OS의 속삭임/Linux의 외침

[OS][LINUX][oracle]Oracle 11g설치

- 여기저기 내용을 조합하고, 확인 테스트까지 했으니 문제 없을 거라 생각 됩니다.



- 각종 환경 변수 값 설정

< /etc/redhat-release >

[root@mycent ]# cp /etc/redhat-release /etc/redhat-release.backup

[root@mycent ]# vi /etc/redhat-release

"CentOS release 6.3 (Final)" -> "redhat-4"로 변경


< /etc/sysctl.conf >

[root@mycent ]# cp /etc/sysctl.conf /etc/sysctl.conf.backup

[root@mycent ]# vi /etc/sysctl.conf

있는 항목은 값 수정

kernel.shmall = 2097152

kernel.shmmax = 536870912

없는 항목은 값 추가

kernel.shmmni = 4096

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048586


[root@mycent ]# /sbin/sysctl -p

추가한 내용에 문제가 없는지 확인


< /etc/security/limits.conf >

[root@mycent ]# cp /etc/security/limits.conf /etc/security/limits.conf.backup

[root@mycent ]# vi /etc/security/limits.conf

아래내용 추가

#@student        -       maxlogins       4

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

# End of file


< /etc/selinux/config >

[root@mycent ]# cp /etc/selinux/config /etc/selinux/config.backup

[root@mycent ]# vi /etc/selinux/config

"SELINUX=enforcing" -> "SELINUX=disabled"로 변경


< /etc/pam.d/login >

[root@mycent ]# cp /etc/pam.d/login /etc/pam.d/login.backup

[root@mycent ]# vi /etc/pam.d/login

아래내용 추가

session    required     pam_limits.so



- 필수 패키지 설치 

[root@mycent ]# yum install binutils-2* compat-libstdc++-33* elfutils-libelf* gcc-4.* gcc-c++-4.* glibc-2.* glibc-common-2.* glibc-devel-2.* glibc-headers-2.* ksh* libaio-0.* libaio-devel-0.* libgomp-4.* libgcc-4.* libstdc++-4.* libstdc++-devel-4.* make-3.* sysstat-7.* unixODBC-2.* unixODBC-devel-2.* pdksh*


- oracle 계정 생성

[root@mycent ]# groupadd oinstall

[root@mycent ]# groupadd dba

[root@mycent ]# groupadd oper

[root@mycent ]# groupadd asmadmin

[root@mycent ]# useradd -g oinstall -G dba,oper,asmadmin oracle

[root@mycent ]# passwd oracle

[root@mycent ]# mkdir -p /opt/oracle/product/11.2.0/db_1 (설치대상경로)

[root@mycent ]# chown -R oracle:oinstall /opt/oracle

[root@mycent ]# chmod -R 775 /opt/oracle 



- oracle 계정 환경 변수.

[root@mycent ]# su - oracle

[oracle@mycent ]$ vi .bash_profile

# .bash_profile


# Get the aliases and functions

if [ -f ~/.bashrc ]; then

        . ~/.bashrc

fi


# User specific environment and startup programs

export PATH=$PATH:$HOME/bin


TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

ORACLE_HOSTNAME=localhost.localdomain; export ORACLE_HOSTNAME

ORACLE_BASE=/opt/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

TSHLIB_PATH=$ORACLE_HOME/lib:/usr/lib:/lib:/usr/local/lib; export TSHLIB_PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/lib:/usr/local/lib; export LD_LIBRARY_PATH


if [ $USER = "oracle" ]; then

        if [ $SHELL = "/bin/ksh" ]; then

                ulimit -p 16384

                ulimit -n 65536

        else

                ulimit -u 16384 -n 65536

        fi

fi


if [ $USER = "oracle" ]; then

        if [ $SHELL = "/bin/ksh" ]; then

                ulimit -p 16384

                ulimit -n 65536

        else

                ulimit -u 16384 -n 65536

        fi

fi



- 설치파일로 이동후 설치 실행 [로컬]

[root@mycent ]# xhost +

[root@mycent ]# su - oracle

[oracle@mycent ]$ cd [설치파일이 있는 디렉토리]

[oracle@mycent ]$ export LANG=C

[oracle@mycent ]$ ./runInstaller


- 설치파일로 이동후 설치 실행 [원격]

[root@mycent ]# xhost +

[root@mycent ]# su - oracle

[oracle@mycent ]$ cd [설치파일이 있는 디렉토리]

[oracle@mycent ]$ export LANG=C

[oracle@mycent ]$ export DISPLAY=192.xxx.xxx.110:0.0 (실제 사용하는 pc의 IP 주소)

[oracle@mycent ]$ ./runInstaller




- GUI가 구동되고 설치가 진행된다. 마지막 부분에 스크립트 두개를 실행 시키라는대로 시키면 된다.

- 나머지는 윈도우와 동일.


- 패키지 체크 Fail 

-  그냥 무시 체크박스에 체크한다.

- 만약, 패키지에 fail이 아니라, parameter fail이라면, 해결 후 다시 체크 한다.


- OS Kernel Parameter Fail

- OS Kernel Parameter:semopm 가 fail이면 아래 두줄을 추가

[root@mycent ]# echo "kernel.sem=250 32000 100 128" >> /etc/sysctl.conf

[root@mycent ]# sysctl -p /etc/sysctl.conf


- OS Kernel Parameter:ip_local_port_range가 fail이면 아래 두줄을 추가

[root@mycent ]# echo "net.ipv4.ip_local_port_range = 9000 65500" >> /etc/sysctl.conf

[root@mycent ]# sysctl -p /etc/sysctl.conf




- 오라클 자동 시작/종료 설정.

[root@mycent ]# su - oracle

[oracle@mycent ]$ vi /etc/oratab

orcl:/opt/oracle/product/11.2.0/db_1:Y


- 일반 사용자 계정 환경 설정

[user@mycent ]$ vi .bash_profile

export ORACLE_BASE=/opt/oracle

export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1

export ORACLE_SID=orcl

export ORACLE_OWNER=oracle

export ORACLE_TERM=xterm

export TNS_ADMIN=$ORACLE_HOME/network/admin

export TORA_NLS10=$ORACLE_HOME/nls/data

export TNLS_LANG=American_america.KO16KSC5601

export TSHLIB_PATH=$ORACLE_HOME/lib:/usr/lib:/lib:/usr/local/lib

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/lib:/usr/local/lib


export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin



- 일반 계정에서 sqlplus 실행이 안되는 현상이 발생시 권한 설정

< 에러 메시지 >

[userid@mycent ]$ sqlplus /nolog

sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory


< 해결책 >

root 권한을 이용하여 수행

[root@mycent ]# chmod -R a+rX /opt/oracle/product/11.2.0/db_1


- 한글 캐릭터 셋 변경 (되도록이면 재 설치 권장.)

[oracle@mycent ~]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Fri Jan 27 15:09:21 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> conn orcl as sysdba

Enter password:

Connected.

SQL> select userenv('LANGUAGE') from dual;

USERENV('LANGUAGE')

----------------------------------------------------

AMERICAN_AMERICA.WE8ISO8859P1


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

1 row updated.


SQL> commit;

Commit complete.


SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.


SQL> startup

ORACLE instance started.

Total System Global Area  360710144 bytes

Fixed Size    1219424 bytes

Variable Size  113247392 bytes

Database Buffers  243269632 bytes

Redo Buffers    2973696 bytes

Database mounted.

Database opened.


SQL> select userenv('LANGUAGE') from dual;

USERENV('LANGUAGE')

----------------------------------------------------

AMERICAN_AMERICA.KO16KSC5601