====== Installation Guide Oracle 11g On Ubuntu Linux 16.04 (64bit) ====== ===== Purpose ===== * Ubuntu Linux에 Oracle을 설치하는 방법에 대한 가이드를 제공한다. * [[os:debian:install | Debian 설치 후 작업]] 을 참조한다. ===== ubuntu version ===== - ubuntu 리눅스 버젼을 확인해 본다. - /etc/issue 나 /etc/issue.net 에서 확인할 수 있다. $ cat /etc/issue - lsb_release 명령을 통해서 확인할 수 있다. $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.5 LTS Release: 16.04 Codename: xenial ===== Environment ===== * RedHat Linux 인 것처럼 속이는 것이다. # echo "Red Hat Enterprise Linux AS release 3 (Taroon Update 5)" > /etc/redhat-release * Oracle 설치에 필요한 패키지와 원격에서 X를 실행할 수 있는 패키지를 설치한다. $ sudo apt-get update $ sudo apt-get install gcc make binutils rpm libaio1 libaio-dev gawk alien ksh x11-apps x11-utils unzip $ sudo apt-get install sysstat libaio-dev libaio1 elfutils expat unixodbc-bin unixodbc-dev gcc-multilib $ sudo apt-get install multiarch-support:i386 zlib1g:i386 $ sudo apt-get dselect-upgrade -f fix-missing upgrade * 심볼릭링크를 만든다.(RedHat 과 Debian 은 기본프로그램의 PATH가 다르기 때문에 링크를 걸어준다.) sudo ln -s /usr/bin/awk /bin/awk sudo ln -s /usr/bin/rpm /bin/rpm sudo ln -s /usr/bin/basename /bin/basename # Suggested by Giuseppe Sacco sudo ln -s /etc /etc/rc.d # Required for root.sh sudo ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so sudo ln -s /usr/lib /usr/lib64 sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /usr/lib64/ sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/ sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/ sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/ * 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 # usermod -g nobody 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 등)로 아래의 내용을 추가한다. \\ ( /etc/sysctl.d/99-oracle.conf 별로 파일로 생성하고 재부팅해도 된다. ) # 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 설정을 한다. \\ ( /etc/security/limits.d/oracle.conf 에 추가해도 됨 ) # for oracle 11g #oracle soft nproc 8192 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 * **/etc/pam.d/login** 과 **/etc/pam.d/su** 에 다음 라인이 활성화되어 있는지 확인한다. - 기본적으로 설정되어 있다. session required pam_limits.so * **/etc/profile** 에 다음 내용을 추가한다. \\ ( /etc/profile.d/oracle.sh 에 추가해도 됨 ) # for Oracle 11g if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 #ulimit -u 16384 -n 4000 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=ORCL 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** 을 실행한다. $ cd install/database $ LANG=C LC_ALL=C ./runInstaller - Oracle Installation GUI가 뜨고 그 후 과정은 오라클 설치문서대로 진행하면 된다. ===== FAQ ===== - 설치도중 rpm 에러가 2줄 나는 경우는 무시해도 상관없다. - DB 생성시에 발생하는 에러 대처 방법 - [[ dbms:oracle:install:ins_ctx.mk | ins_ctx.mk 오류 해결방법 ]] - [[ dbms:oracle:install:ins_emagent.mk | ins_emagent.mk 오류 해결방법 (Error in invoking target 'agent nmhs' of makefile ...) ]] - [[ dbms:oracle:install:ins_rdbms.mk | ins_rdbms.mk 오류 해결방법 (Error in invoking target 'all_no_orcl' of makefile ...) ]] , [[dbms:oracle:install:error_irman_ioracle | (Error in invoking target 'irman ioracle' of makefile ...) ]] - [[ dbms:oracle:install:em_bad_number | emctl 시작시 ulimit: 25: bad number 해결방법 ]] - 모든 링크를 재생성하려면 다음과 같이 실행한다. $ cd $ORACLE_HOME/bin $ relink all - DB 생성시 TNS lost connect 에러가 발생하였을 경우, dbca로 DB를 수동생성해준다. $ dbca - 설치 후 EM 에 접속하려면 웹브라우저에서 https:''/''/아이피주소:1158/em 를 입력한다. ===== 관련링크 ===== - http://www.techienote.com/how-to-install-oracle-database-11g-r2-on-ubuntu-12-04/ - http://blog.daum.net/bagjunggyu/165 - http://shinyul.tistory.com/9 - http://www.cnphp6.com/archives/3888 - http://lucidman.tistory.com/m/post/6 - http://paperiniktips.sviluppo-siti-web.com/oracle-11g-r2-installation-ubuntu-like-solve-error-agent-nmhs-makefile/ - http://paperiniktips.sviluppo-siti-web.com/oracle-11c-database-linux-installation-troubleshooting-error-in-invoking-target-all_no_orcl-of-makefile/ ===== 추가작업 ===== - ubuntu package install # apt-get install libtest-lwp-useragent-perl libconfig-json-perl