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 Set인… AL32UTF8 로 선택한다.
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 |