1996년인가 대전광역시 중소기업지원정보시스템 구축사업을 하면서 대전광역시에 오라클을 처음으로 도입했었습니다.
그당시 Ingres DB가 행정망용으로 사용되고 있었는데 Sun Enterprise 에 오라클 DB를 올렸던 기억이 납니다. 그 당시만해도
오라클사에서는 도입만해줘도 무슨 요구든지 들어줬는데 지금은 너무 배짱을 부리는것 같습니다. 유지보수비가 장난이 아니더군요. 그것도 유지보수계약 체결하기 전까지의 모든 비용을 요구하면서… 입맛이 씁쓸합니다.
물론 1998년인가 1999년도에 대전광역시에 시정도우미 라는 내부 인트라넷 서비스를 만들면서 Linux ( 당시 알짜 리눅스 였던것 같은데..)에 MySQL, PHP 를 386PC에 설치하면서 Free Software로 방향을 전환했습니다.
오째든 장난삼아 Oracle을 MacBook에 올려봤습니다.
( 원문 Site 입니다. ray_apps_blog )
Initial preparation
If you are a developer then I suppose you already have Xcode tools installed which are required also for Oracle installation. And I tried these steps on Mac OS X latest version 10.5.6.
Then you need to create oracle user as well as increase default kernel parameters. Open Terminal and switch to root user:
sudo -i
Create oinstall group and oracle user (I used group and user number 600 to ensure that they do not collide with existing groups and users):
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
Change password for oracle user:
passwd oracle
Change default kernel parameters:
vi /etc/sysctl.conf
and enter values recommended by Oracle:
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
After this reboot your computer so that these new kernel parameters would be taken into effect. After reboot open again Terminal and now login as oracle user:
su - oracle
Set shell settings in .bash_profile
vi .bash_profile
and enter
export DISPLAY=:0.0 export ORACLE_BASE=$HOME umask 022 ulimit -Hn 65536 ulimit -Sn 65536
As you see I prefer to install all Oracle related files under home directory of oracle user therefore I am setting ORACLE_BASE to home directory. And also include ulimit settings – I forgot to do this initially and got strange TNS service errors because of that.
Now execute this script so that these settings are applied to current shell:
. ./.bash_profile
Now download db.zip installation archive and place it somewhere and unzip it:
mkdir Install cd Install # download db.zip to this directory unzip db.zip cd db/Disk1
Now you are ready to start installation:
./runInstaller
Installation
In installation wizard I selected the following options:
- Advanced Installation – so that I can change some default options
- Standard Edition – as I don’t need additional features of Enterprise Edition
- Create Database / General Purpose
- Global database name: orcl, SID: orcl
- Character set: UTF-8 AL32UTF8
- Create database with sample schemas
- Selected “Use the same password for all the accounts” – do not specify default “manager” password as it will not be allowed
- Password Management – selected this to unlock necessary sample accounts (e.g. HR schema account that I use as default test schema)
At the end of installation you will be instructed to run one shell script from root.
Hopefully installation will complete successfully.
Additional oracle user settings
If you will use oracle user later then add the following lines to .bash_profile of oracle user:
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
After this relogin as oracle user and verify listener status:
lsnrctl status
and if it is down then start it with
lsnrctl start
and verify if you can connect to Oracle database with sample user (that I unlocked during installation)
sqlplus hr/hr@orcl
If it fails then do some investigation
Change listener to listen on localhost
As I need this Oracle database just as local development database on my computer then I want to change the listener so that it would listen just on localhost port 1521:
vi $ORACLE_HOME/network/admin/listener.ora
and change the contents of the file to:
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)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
Then also change ORCL alias definition in $ORACLE_HOME/network/admin/tnsnames.ora to:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
After this change restart listener and try to connect with sqlplus to verify that these changes are successful.
Automatic startup of Oracle database
If you want that Oracle database is started automatically when your computer is booted then you need to create the following startup script. Start terminal and switch to root.
At first edit /etc/oratab and change N to Y at the end of line for ORCL database – this will be used by dbstart utility to find which databases should be started automatically.
Then create startup script for Oracle database:
mkdir /Library/StartupItems/Oracle cd /Library/StartupItems/Oracle vi Oracle
and enter the following:
#!/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"
and then make this script executable
chmod a+x Oracle
and in addition create properties file:
vi StartupParameters.plist
with the following contents:
{
Description = "Oracle Database Startup";
Provides = ("Oracle Database");
Requires = ("Disks");
OrderPreference = "None";
}
Now you can verify that these scripts are working. Open new terminal and try
sudo /Library/StartupItems/Oracle/Oracle stop
to stop the database and
sudo /Library/StartupItems/Oracle/Oracle start
to start again the database. And later you can reboot your computer also to verify that Oracle database will be started automatically.
Hide oracle user from login window
After computer reboot you probably noticed that now you got oracle user in initial login window. To get rid of it execute this from terminal:
sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add oracle

4월 8th, 2010 at 10:55 오전
[...] Mac OS X Snow Leopard 에서 Oracle 10.g 설치하기 를 통해 Oracle을 설치했다는 전제하에 PHP에 OCI8을 설치하는 방법입니다. [...]