Mac용 Oracle Download
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
위 싸이트에서 Mac OS용 설치파일 다운로드
루트 로그인
$ sudo sh
oinstall, dba, oper 그룹의 gid 지정을 위한 기존 그룹의 gid 확인
# dscl . -list /groups gid name | more
oracle 계정의 uid 지정을 위한 기존 사용자 uid 확인
# dscl . -list /users gid name | more
oinstall 그룹 생성
# dscl . -create /groups/oinstall
# dscl . -append /groups/oinstall gid 1030
# dscl . -append /groups/oinstall passwd "*"
dba 그룹 생성
# dscl . -create /groups/dba
# dscl . -append /groups/dba gid 1031
# dscl . -append /groups/dba passwd "*"
oper 그룹 생성 (optional)
# dscl . -create /groups/oper
# dscl . -append /groups/oper gid 1032
# dscl . -append /groups/oper passwd "*"
oracle 계정 생성
# dscl . -create /users/oracle
# dscl . -append /users/oracle uid 1025
# dscl . -append /users/oracle gid 1030
# dscl . -append /users/oracle gid 1031
# dscl . -append /users/oracle shell /bin/bash
# dscl . -append /users/oracle home /Users/oracle
# dscl . -append /users/oracle realname "Oracle software owner"
만약 oracle 계정이 oinstall 그룹이 아니면
# dscl . -delete /users/oracle gid
# dscl . -append /users/oracle gid 1030
oracle 홈 디렉토리 생성
# mkdir /Users/oracle
# chown oracle:oinstall /Users/oracle
oracle 계정 비밀번호 설정
# passwd oracle
커널변수 확인 및 설정
# sysctl -w parameter_name=parameter_value 형식으로 변경하고
수정이 허가되지 않는 항목은
/etc/sysctl.conf 파일에 요구되는 값들을 저장하고 후에 재시작 하면 적용된다.
파라미터 값은 요구되는 값보다 적은 것 만 수정 해도 된다.
재부팅 완료 후 반드시 Oracle 유저로 로그인을 한다. sudo하지 말고 직접 로그인해야 한다.
Setting Shell Limits for the oracle User
# sysctl -a | grep maxproc
# sysctl -a | grep maxfiles
# vi /System/Library/StartupItems/IPServices
#kern.maxprocperuid 값과 동일해야 한다
ulimit -Hu 2068
ulimit -Su 2068
#kern.maxfilesperproc 값과 동일해야 한다
ulimit -Hn 65536
ulimit -Sn 65536
오라클 설치 폴더 생성 및 권한 설정
# mkdir -p /oracle/10.2
# chown oracle:oinstall /oracle/10.2
# chmod 775 /oracle/10.2
# mkdir /oracle/10.2/oradata
# chown oracle:oinstall /oracle/10.2/oradata
# chmod 775 /oracle/10.2/oradata
# mkdir /oracle/10.2/flash_recovery_area
# chown oracle:oinstall /oracle/10.2/flash_recovery_area
# chmod 775 /oracle/10.2/flash_recovery_area
oracle 사용자로 로그인 한 후 환경변수 설정
$ echo $SHELL
$ vi .bash_profile
umask 022
ORACLE_SID=orcl
export ORACLE_SID
ORACLE_HOSTNAME=localhost
export ORACLE_HOSTNAME
ORACLE_BASE=/oracle/10.2
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/oracle/product/10.2.0/db_1
export ORACLE_HOME
DYLD_LIBRARY_PATH=$ORACLE_HOME/lib
export DYLD_LIBRARY_PATH
DISPLAY=127.0.0.1:0.0
export DISPLAY
PATH=$PATH:$ORACLE_HOME/bin
export PATH
$ source .bash_profile
오라클 GUI 설치 (Java 32bit VM)
$ ./runInstaller -J-d32
소프트웨어만 설치 옵션선택
Java 32bit모드 기본설정
$ vi $ORACLE_HOME/jdk/bin/java
...java -d32 -Xbootclasspath...
netca 설정
$ $ORACLE_HOME/bin/netca
dbca 설정
$ $ORACLE_HOME/bin/dbca
메모리 설정
디비서버 전용이라면 70%이상으로
문자셑 설정
KOREAN_KOREA.AL32UTF8 (또는 KO16MSWIN949)
Message of finished
The iSQL*Plus URL is:
http://localhost:5560/isqlplus
The iSQL*Plus DBA URL is:
http://localhost:5560/isqlplus/dba
dbstart파일을 사용하기 위해 oratab파일 수정
# vi /etc/oratab
orcl:/oracle/oracle/product/10.2.0/db_1:N 을 orcl:/oracle/oracle/product/10.2.0/db_1:Y로 수정
oracle 시작/ 종료
oracle$ dbstart $ORACLE_HOME
Processing Database instance "orcl": log file /[ORACLE_HOME_PATH]/startup.log
oracle$ dbshut $ORACLE_HOME
Processing Database instance "orcl": log file /[ORACLE_HOME_PATH]/shutdown.log
launchd 등록
oracle$ vi /oracle/oracle/product/10.2.0/db_1/bin/dbstart-launchd.sh
#!/bin/sh
#
# Wrapper for running Oracle under launchd
# Required because launchd needs a non-daemonizing process
function shutdown()
{
$ORACLE_HOME/bin/dbshut $ORACLE_HOME
/bin/rm $ORACLE_PID
}
function wait_for_death()
{
while /bin/kill -0 $1 2> /dev/null ; do
sleep 120
done
}
export ORACLE_PID=$ORACLE_HOME/oracle-launchd.pid
$ORACLE_HOME/bin/dbstart $ORACLE_HOME
trap shutdown QUIT ABRT KILL ALRM TERM TSTP
sleep 120
wait_for_death `cat $ORACLE_PID`
root# vi /Library/LaunchDaemons/com.oracle.orcl.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EnvironmentVariables</key>
<dict>
<key>ORACLE_HOME</key>
<string>/oracle/oracle/product/10.2.0/db_1</string>
</dict>
<key>Label</key>
<string>com.oracle.orcl</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/oracle/oracle/product/10.2.0/db_1/bin/dbstart-launchd.sh</string>
</array>
<key>QueueDirectories</key>
<array/>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/oracle/oracle/product/10.2.0/db_1/dbstart-launchd.stderr</string>
<key>StandardOutPath</key>
<string>/oracle/oracle/product/10.2.0/db_1/dbstart-launchd.stdout</string>
<key>UserName</key>
<string>oracle</string>
<key>WatchPaths</key>
<array/>
</dict>
</plist>
root# launchd load -w /Library/LaunchDaemons/com.oracle.orcl.plist
정적라이브러리 생성
$ $ORACLE_HOME/bin/genclntst
plan_table 생성
SQL>@$ORACLE_HOME/rdbms/admin/utlxplan.sql
invalid된 객체 컴파일
SQL>@?/rdbms/admin/utlrp.sql
oracle 사용자 계정을 로그인 화면에 출력되지 않기위해
# defaults write /Library/Preference/com.apple.loginwindow HiddenUsersList -array-add oracle
NLS PARAMETER 확인
select parameter, value from nls_instance_parameters;
select parameter, value from nls_session_parameters;
select parameter, value from nls_database_parameters;
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
위 싸이트에서 Mac OS용 설치파일 다운로드
루트 로그인
$ sudo sh
oinstall, dba, oper 그룹의 gid 지정을 위한 기존 그룹의 gid 확인
# dscl . -list /groups gid name | more
oracle 계정의 uid 지정을 위한 기존 사용자 uid 확인
# dscl . -list /users gid name | more
oinstall 그룹 생성
# dscl . -create /groups/oinstall
# dscl . -append /groups/oinstall gid 1030
# dscl . -append /groups/oinstall passwd "*"
dba 그룹 생성
# dscl . -create /groups/dba
# dscl . -append /groups/dba gid 1031
# dscl . -append /groups/dba passwd "*"
oper 그룹 생성 (optional)
# dscl . -create /groups/oper
# dscl . -append /groups/oper gid 1032
# dscl . -append /groups/oper passwd "*"
oracle 계정 생성
# dscl . -create /users/oracle
# dscl . -append /users/oracle uid 1025
# dscl . -append /users/oracle gid 1030
# dscl . -append /users/oracle gid 1031
# dscl . -append /users/oracle shell /bin/bash
# dscl . -append /users/oracle home /Users/oracle
# dscl . -append /users/oracle realname "Oracle software owner"
만약 oracle 계정이 oinstall 그룹이 아니면
# dscl . -delete /users/oracle gid
# dscl . -append /users/oracle gid 1030
oracle 홈 디렉토리 생성
# mkdir /Users/oracle
# chown oracle:oinstall /Users/oracle
oracle 계정 비밀번호 설정
# passwd oracle
커널변수 확인 및 설정
# sysctl -w parameter_name=parameter_value 형식으로 변경하고
sysctl kern.sysv.semmsl <- 이런 형식으로 확인해본다.
수정이 허가되지 않는 항목은
/etc/sysctl.conf 파일에 요구되는 값들을 저장하고 후에 재시작 하면 적용된다.
sudo vi /etc/synctl.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 유저로 로그인을 한다. sudo하지 말고 직접 로그인해야 한다.
Setting Shell Limits for the oracle User
# sysctl -a | grep maxproc
# sysctl -a | grep maxfiles
# vi /System/Library/StartupItems/IPServices
#kern.maxprocperuid 값과 동일해야 한다
ulimit -Hu 2068
ulimit -Su 2068
#kern.maxfilesperproc 값과 동일해야 한다
ulimit -Hn 65536
ulimit -Sn 65536
오라클 설치 폴더 생성 및 권한 설정
# mkdir -p /oracle/10.2
# chown oracle:oinstall /oracle/10.2
# chmod 775 /oracle/10.2
# mkdir /oracle/10.2/oradata
# chown oracle:oinstall /oracle/10.2/oradata
# chmod 775 /oracle/10.2/oradata
# mkdir /oracle/10.2/flash_recovery_area
# chown oracle:oinstall /oracle/10.2/flash_recovery_area
# chmod 775 /oracle/10.2/flash_recovery_area
oracle 사용자로 로그인 한 후 환경변수 설정
$ echo $SHELL
$ vi .bash_profile
umask 022
ORACLE_SID=orcl
export ORACLE_SID
ORACLE_HOSTNAME=localhost
export ORACLE_HOSTNAME
ORACLE_BASE=/oracle/10.2
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/oracle/product/10.2.0/db_1
export ORACLE_HOME
DYLD_LIBRARY_PATH=$ORACLE_HOME/lib
export DYLD_LIBRARY_PATH
DISPLAY=127.0.0.1:0.0
export DISPLAY
PATH=$PATH:$ORACLE_HOME/bin
export PATH
$ source .bash_profile
오라클 GUI 설치 (Java 32bit VM)
$ ./runInstaller -J-d32
소프트웨어만 설치 옵션선택
Java 32bit모드 기본설정
$ vi $ORACLE_HOME/jdk/bin/java
...java -d32 -Xbootclasspath...
netca 설정
$ $ORACLE_HOME/bin/netca
dbca 설정
$ $ORACLE_HOME/bin/dbca
메모리 설정
디비서버 전용이라면 70%이상으로
문자셑 설정
KOREAN_KOREA.AL32UTF8 (또는 KO16MSWIN949)
Message of finished
The iSQL*Plus URL is:
http://localhost:5560/isqlplus
The iSQL*Plus DBA URL is:
http://localhost:5560/isqlplus/dba
dbstart파일을 사용하기 위해 oratab파일 수정
# vi /etc/oratab
orcl:/oracle/oracle/product/10.2.0/db_1:N 을 orcl:/oracle/oracle/product/10.2.0/db_1:Y로 수정
oracle 시작/ 종료
oracle$ dbstart $ORACLE_HOME
Processing Database instance "orcl": log file /[ORACLE_HOME_PATH]/startup.log
oracle$ dbshut $ORACLE_HOME
Processing Database instance "orcl": log file /[ORACLE_HOME_PATH]/shutdown.log
launchd 등록
oracle$ vi /oracle/oracle/product/10.2.0/db_1/bin/dbstart-launchd.sh
#!/bin/sh
#
# Wrapper for running Oracle under launchd
# Required because launchd needs a non-daemonizing process
function shutdown()
{
$ORACLE_HOME/bin/dbshut $ORACLE_HOME
/bin/rm $ORACLE_PID
}
function wait_for_death()
{
while /bin/kill -0 $1 2> /dev/null ; do
sleep 120
done
}
export ORACLE_PID=$ORACLE_HOME/oracle-launchd.pid
$ORACLE_HOME/bin/dbstart $ORACLE_HOME
trap shutdown QUIT ABRT KILL ALRM TERM TSTP
sleep 120
wait_for_death `cat $ORACLE_PID`
root# vi /Library/LaunchDaemons/com.oracle.orcl.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EnvironmentVariables</key>
<dict>
<key>ORACLE_HOME</key>
<string>/oracle/oracle/product/10.2.0/db_1</string>
</dict>
<key>Label</key>
<string>com.oracle.orcl</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/oracle/oracle/product/10.2.0/db_1/bin/dbstart-launchd.sh</string>
</array>
<key>QueueDirectories</key>
<array/>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/oracle/oracle/product/10.2.0/db_1/dbstart-launchd.stderr</string>
<key>StandardOutPath</key>
<string>/oracle/oracle/product/10.2.0/db_1/dbstart-launchd.stdout</string>
<key>UserName</key>
<string>oracle</string>
<key>WatchPaths</key>
<array/>
</dict>
</plist>
root# launchd load -w /Library/LaunchDaemons/com.oracle.orcl.plist
정적라이브러리 생성
$ $ORACLE_HOME/bin/genclntst
plan_table 생성
SQL>@$ORACLE_HOME/rdbms/admin/utlxplan.sql
invalid된 객체 컴파일
SQL>@?/rdbms/admin/utlrp.sql
oracle 사용자 계정을 로그인 화면에 출력되지 않기위해
# defaults write /Library/Preference/com.apple.loginwindow HiddenUsersList -array-add oracle
NLS PARAMETER 확인
select parameter, value from nls_instance_parameters;
select parameter, value from nls_session_parameters;
select parameter, value from nls_database_parameters;