Mac OS X SnowLeopard에서 Oracle DB 설치

  

Oracle DB 10g 아직까지 공식적으로는 Mac OS X 10.6 Snow Leopard 지원하지 않는다. 그래도 방법이 없는 것이 아니니... 하나씩 해보다 보면~ 되겠지...


  일단 Xcode Tools Mac OS X 설치가 되어 있어야 한다. (설치 방법은 생략~)

  Oracle 설치하기 위한 사용자 계정도 새로 등록해줘야 한다. 아래의 설명에서는 사용자 그룹도 등록을 했는데 혹시 모를 현재 존재하는 사용자 그룹과의 충돌을 피하고자 하기 위함이다.



  • 아래의 명령어로 사용자 사용자 그룹, 권한 등을 생성한다.

sudo -i

dscl . -create /groups/oinstall

dscl . -append /groups/oinstall gid 600

dscl . -append /groups/oinstall passwd "*"

dscl . -create /users/oracle

dscl . -append /users/oracle uid 600

dscl . -append /users/oracle gid 600

dscl . -append /users/oracle shell /bin/bash

dscl . -append /users/oracle home /Users/oracle

dscl . -append /users/oracle realname "Oracle software owner"

mkdir /Users/oracle

chown oracle:oinstall /Users/oracle


passwd oracle


나의 경우에는 위와같이 그룹, 사용자 설정 및 패스워드 변경을 했음에도 그 변경된 패스워드가 변경되지 않아서 "시스템 환경설정 - 계정"에서 다시 변경해 줘야 했다.

  • 기본 커널의 파라미터를 변경한다.

vi /etc/sysctl.conf


kern.sysv.semmsl=87381

kern.sysv.semmns=87381

kern.sysv.semmni=87381

kern.sysv.semmnu=87381

kern.sysv.semume=10

kern.sysv.shmall=2097152

kern.sysv.shmmax=2197815296

kern.sysv.shmmni=4096

kern.maxfiles=65536

kern.maxfilesperproc=65536

net.inet.ip.portrange.first=1024

net.inet.ip.portrange.last=65000

kern.corefile=core

kern.maxproc=2068

kern.maxprocperuid=2068



  Oracle DB 설치 스크립트는 불행하게도 JAVA 1.4.2 기본으로 하는데 Max OS X에는 불행하게도 해당 버젼의 JAVA 설치되어 있지 않다. 그렇기에... 편법으로 Symbolic Link 해결해야 한다.


sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0 /System/Library/Frameworks/JavaVM.framework/Versions/1.4.2


  재부팅을 해주고... 위에서 생성된 Oracle User Login 한다.

  Oracle User 대한 .bash_profile 설정해 준다.


vi .bash_profile


export DISPLAY=:0.0

export ORACLE_BASE=$HOME

umask 022

ulimit -Hn 65536

ulimit -Sn 65536


  .bash_profile 설정이 끝났다면 실행해서 적용해야 한다.


. ./.bash_profile


  오라클 설치 파일을 다운받는다. (Oracle Database 10g Release 2 (10.2.0.4) for MAC OS X on Intel x86-64)


mkdir Install

cd Install


  /Users/oracle/Install 디렉토리에 다운로드 받은 오라클 설치파일을 압축해제한다.


unzip db.zip

cd db/Disk1


  일단 여기까지가 설치전 준비단계이다.

  Snow Leopard에서의 설치 Script 실행하기 위해서는 -J -d32 옵션이 필요하다. , 32비트 모드에서 설치가 진행되어야 한다.


./runInstaller -J-d32


  설치마법사의 선택옵션에서 나의 경우는 아래의 SE 선택했다.

     - Standard Edition - 구지 Enterprise Edition 필요할까 싶다. 선택은 자유다.


  설치가 진행되고 대략 59% 정도의 진행율이 보일 시점에서 아래와 같은 에러가 발생한다.

  “Error ininvoking target ‘all_no_orcl ipc_g ihsodbc32′ …”

  위와 같은 메세지가 출력되면 일단 마무것도 누르지 말고 대기한다. 그리고 터미널창을 새로 열어서 아래와 같이 환경설정파일을 수정해준다.


cd ~/oracle/product/10.2.0/db_1/rdbms/lib

vi ins_rdbms.mk


  일단 파일을 열었다면 "$(HSODBC_LINKLINE)" 문구를 찾아서 해당 문구 앞에 "#" 붙여 주석처리 해준다.

  파일의 수정을 완료하고 저장이 되었다면 설치화면에서 "재시도" 버튼을 눌러 설치를 진행시킨다.


  설치가 완료되고 나면 shellscript 실행하라는 창이 나오면서 Oracle 설치화면은 종료하게 된다.

  여기까지 진행이 되었다면 평상시 사용하는 사용자 ID 로그인을 해서 root.sh 스크립트를 실행해줘야 한다.


su - username

sudo /Users/oracle/oracle/product/10.2.0/db_1/root.sh



-----

Running Oracle 10g root.sh script...


The following environment variables are set as:

    ORACLE_OWNER= oracle

    ORACLE_HOME=  /Users/oracle/oracle/product/10.2.0/db_1


Enter the full pathname of the local bin directory: [/usr/local/bin]: 

The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n) [n]: n

The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n) [n]: n

The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n) [n]: n



Creating /etc/oratab file...

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root.sh script.

Now product-specific root actions will be performed.

-----


  여기까지가 설치과정이었다. 이제 설치가 완료되었다는 가정하에 Database 생성하는 단계로 진행할 것이다.



  이제 다시 Oracle 설치 계정인 "oracle" 로그인한 터미널을 실행한다.

  앞서 작성했던 ".bash_profile" 추가적으로 아래의 문구를 추가시키고 저장한다.


export ORACLE_HOME=/Users/oracle/oracle/product/10.2.0/db_1

export DYLD_LIBRARY_PATH=$ORACLE_HOME/lib

export ORACLE_SID=orcl

PATH=$PATH:$ORACLE_HOME/bin


  작성이 완료되었다면 물론~ 적용을 위해서 실행~


. ~/.bash_profile



  설치가 후에 Configuration Assistants에서 나오는 OUI-25031 에러는 처음 설치시에 실행했던 JAVA 32비트 실행방법으로 해결해야 한다. , /Users/oracle/oracle/product/10.2.0/db_1/jdk/bin 가서 수정을 해야 한다.


vi java


  밑에줄의 자바 경로에서 .../Home/bin/java -Xbootclasspath 부분을 .../Home/bin/java -d32 -Xbootclasspath… 변경해야 한다.



  이제 Max OS X Snow Leopard에서 Oracle DB 실행될 있도록 몇가지 수정된 파일을 덮어 씌어야 한다.

  어떤 특출나신 개발자께서 수고스러운 부분을 대신해 주셨으니 우리는 그냥 다운받아서 압축해제하고 ~ 덮어 씌우면 된다.


cd $ORACLE_HOME/bin

curl -O http://rayapps.com/downloads/oracle_se.zip

unzip oracle_se.zip

chmod ug+s oracle

rm oracle_se.zip


  만약에 위의 설치과정에서 Enterprise Edition 선택했다면 다운받는 파일을 oracle_ee.zip 으로 다운받아서 대치해줘야 한다.

  이제 Network Configuration Assistant 실행할 차례이다.


netca


  기본옵션을 선택하고 Listener 생성한다. 그리고 리스너 설정이되고 시작되었다는 메세지가 출력되기까지 기다려야 한다.

  메세지가 출력되고 리스너 생성이 완료되면 Database Configuration Assistant 실행한다.


dbca


  DB 생성하고 orcl 이라는 일반적인 DatabaseName SID 생상한다.(본인이 명명하고 싶은게 있으면 알아서 하시길..)

  SYS , SYSTEM 패스워드를 설정한다. 그리고 Sample Schemas 선택해 준다.

  Character Sets 일반적인… Unicode SetAL32UTF8 선택한다.

  DB생성을 완료하고 나서 sqlplus 실행해서 연결을 확인해 본다.


sqlplus system@orcl



  dbca 이용해서 새로운 DB 추가할 있다. dbca 통해서 추가가 되었다고해서 listener.ora 파일에까지 자동으로 추가가가 되지는 않는다.

  따라서 vi에서 listener.ora 파일을 다음과 같은 방식으로 수정해줘야 한다.


vi $ORACLE_HOME/network/admin/listener.ora



SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = /Users/oracle/oracle/product/10.2.0/db_1)

      (PROGRAM = extproc)

    )

    (SID_DESC =

      (SID_NAME = orcl)

      (ORACLE_HOME = /Users/oracle/oracle/product/10.2.0/db_1)

    )

#  newly added database info

    (SID_DESC = 

      (SID_NAME = vadev)

      (ORACLE_HOME = /Users/oracle/oracle/product/10.2.0/db_1)

    )

  )

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

    )

  )


  이렇게 수정이 되고 나면 lsnrctl stop, lsnrctl start 해줘서 새롭게 생성된DB 로그인이 가능해 진다.






-- Oracle DB 자동실행

  이제 설치는 완료되었으니 평상시 사용하는 계정에서 자동으로 실행이 되도록 설정하는 일만 남았다. 하지만 그러기 위해서는 몇가지 추가, 수정해야 하는 환경변수가 있다.

  일단 '/etc/oratab' 파일을 찾아서 수정해 준다. 파일을 열어보면 'N' 으로 설정된 값을 'Y' 변경한다.

  변경이 되었다면 다음은 Oracle DB 실행을 도와줄 Script 작성해줘야 한다.


sudo mkdir /Library/StartupItems/Oracle

cd /Library/StartupItems/Oracle

vi Oracle


#!/bin/sh

# Suppress the annoying "$1: unbound variable" error when no option

# was given

if [ -z $1 ] ; then

  echo "Usage: $0 [start|stop|restart] "

  exit 1

fi

# source the common startup script

. /etc/rc.common

# Change the value of ORACLE_HOME to specify the correct Oracle home

# directory for the installation

ORACLE_HOME=/Users/oracle/oracle/product/10.2.0/db_1

DYLD_LIBRARY_PATH=$ORACLE_HOME/lib

export ORACLE_HOME DYLD_LIBRARY_PATH

# change the value of ORACLE to the login name of the

# oracle owner at your site

ORACLE=oracle

PATH=$PATH:$ORACLE_HOME/bin

# Set shell limits for the Oracle Database

ulimit -Hu 2068

ulimit -Su 2068

ulimit -Hn 65536

ulimit -Sn 65536

StartService()

{

  ConsoleMessage "Starting Oracle Databases"

  su $ORACLE -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"

}

StopService()

{

  ConsoleMessage "Stopping Oracle Databases"

  su $ORACLE -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"

}

RestartService()

{

  StopService

  StartService

}

RunService "$1"



  생성된 Script 실행되도록 셋팅한다.


chmod a+x Oracle


vi StartupParameters.plist


{

  Description     = "Oracle Database Startup";

  Provides        = ("Oracle Database");

  Requires        = ("Disks");

  OrderPreference = "None";

}



  이제 정상적으로 작동하는지 확인해보자.


sudo /Library/StartupItems/Oracle/Oracle stop


sudo /Library/StartupItems/Oracle/Oracle start





여기까지가 Oracle 설치과정이었다. 이제 부가적으로 오라클 실행을 위해서 생성한 계정을 Mac OS X 로그인 화면에서 숨겨보자. 실제로 로그인할 일이 없을테니


sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add oracle






'Blog > Apple' 카테고리의 다른 글

OSX Snow Leopard 에서 Weblogic 설치  (0) 2011.01.25
iTerm에서 ps -ef 가 안먹힐때...  (0) 2011.01.20
File System - Link 만들기  (0) 2010.12.13
OSX Server 한글 설치  (0) 2010.09.27
알면 유용한 OSX 단축키  (0) 2010.09.16