제목처럼 인스톨 내용 입니다.
의외로 많은 문제를 일으키시는 것같아 나름대로 정리한 것을 올려 봅니다. 실제 인스톨러가 돌아가면 별로 문제가 생기지도 않고 그 화면은 다른 설치 가이드에서 보시면 자세히 나와 있으니 그 외에 부분에 대해 조금 알려드리고자 합니다.
다른 unix(HP, AIX, Digital, Sco-unix, Linux등등)도 별반 다를바가 없습니다. 초기에 환경에서 조금 차이가 있을 뿐이지요. 아래의 환경은 임의로 설정한 예이니까 각자 자신의 상황에 맞도록 변경하셔서 사용하시면 될겁니다.
참고하시고 도움이 되시길 바랍니다.
---- o/s version 확인 # uname -a ---- server의 space 확인 및 oracle home directory 결정 # df -k --- hostname 확인 # hostname --- ip와 hostname을 알고 싶을 때 이용 # cat /etc/hosts --- server와의 network 상태 반드시 확인 # ping ip address(hostname) --- oracle install을 위해서는 꼭 필요하므로 있는지 확인 # which make --- which로 못 찾을 때 이용 # find / -name filename -print --- solaris 2.7에서 kernel bit 확인 # isainfo -kv --- real memory 확인 # prtconf |grep size
# vi /etc/system --- forceload는 아래의 내용을 강제 적용 forceload:sys/shmsys forceload:sys/semsys --- 하나의 공유메모리 세그먼트크기의 최대값(byte) set shmsys:shminfo_shmmax=4294967295 --- 단일 공유 메모리의 세그먼트의 최소크기 set shmsys:shminfo_shmmin=1 --- 공유메모리의 식별자 갯수 set shmsys:shminfo_shmmni=400 --- 하나의 process에 접속할수 있는 공유메모리 세그먼트의 최대 갯수 set shmsys:shminfo_shmseg=10 --- semaphore 세트 식별자 수 set semsys:seminfo_semmni=400 --- 하나의 semaphore 세트에 존재할수 있는 semaphore의 최대치 set semsys:seminfo_semmsl=100 --- 세트당 의 semaphore개수, 오라클의 process의 수보다 100이상 커야함 set semsys:seminfo_semmns=400 set semsys:seminfo_semopm=100 set semsys:seminfo_semvmx=32767 :wq! --- system file적용을 위해 # init 6 [sun EE 10000의 경우 shutdown] rebooting --- system file 내용의 적용 상태 확인, semapfore와 shared # sysdef memory
--- group 등록상태 확인, 미등록시 group 생성 # cat /etc/group --- group 생성 ( group id : 100, name : dba ) # groupadd -g 100 dba --- user 등록상태 확인, 미등록시 user 생성 # cat /etc/passwd --- user 생성 ( user id : 150 user name : oracle ) # useradd -g 100 -u 150 -d /oracle/app/oracle/product/816 -s /bin/ksh oracle ※ tool을 이용한 방법 # admintool --- sun ( sam : HP , smitty : AIX )
--- oracle home directory 생성을 위해 이동 # cd oracle --- "-p"는 하위 디렉토리까지 생성 # mkdir -p app/oracle/product/816 --- DB 운영시 oracle s/w가 이용하는 directory # mkdir tmp doc --- root directory로 이동 # cd .. --- owner와 소속group 변경, # chown -R oracle:dba /oracle " -R " /oracle 하위directory까지 변경의 의미 --- oracle owner만 변경 # chown -R oracle /oracle --- oracle의 소속 group만 변경 # chgrp -R dba /oracle --- oracle directory의 변화된 owner와 group 확인 # ls -l
--- oracle8i user로 변경 # su - oracle --- oracle home directory 확인 $ pwd /oracle/app/oracle/product/816 --- kone shell을 사용할경우 환경화일 작성 $ vi .profile umask 022 export ORACLE_BASE=/oracle/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/816 --- 맘대로 정해도됨, 8자 이내로. export ORACLE_SID=ORA816 export ORACLE_OWNER=oracle --- root에서 환경 확인 필요(# env) export ORACLE_TERM=vt100 ecport TMPDIR=$ORACLE_BASE/tmp export NLS_LANG=American_america.KO16KSC5601 export PATH=$PATH:.:$ORACLE_HOME/bin:/usr/bin:/usr/ccs/bin:/sbin --- 실제 화면이 나타날 장비의 이름 export DISPLAY=hostname:0.0 :wq! --- .profile(환경file)을 적용하기 위해 oracle user를 나갔다가 들어옴 $ exit --- profile 환경file 적용 (oracle home directory에서) $ . ./.profile
--- 다른 창을 띄워 root user로 실행 # /usr/openwin/xhost + ( runinstaller 실행시 display error로 install이 안되는 것을 방지 ) --- .profile file의 적용상태 확인 $ env --- CDrom dir로 이동 $ cd /cdrom --- install 시작 $ ./runInstaller . . . . . ※ Available product components창에서 languages 선택 ※ Database Identification창에서 Global Database Name과 SID를 일치시킴 ※ Install 진행상황은 Linux install guide 참조
--- install중 메시지가 나오면 다른 창에서 실행 # su - oracle ( unix group name : dba를 입력한 후 ) --- oracle user의 환경을 가진 root user $ su root # cd /tmp/orainstall0 # ./orainstRoot.sh ※ oracle 8.0.x에서의 oratab.sh와 비슷하며 inventory를 만듬
--- oracle user의 환경을 가진 root user $ su root --- oracle home directory인지 확인 # pwd /oracle/app/oracle/product/816 --- root.sh이 있는지 확인 # ls *.sh --- oracle이 1023이하의 port를 사용할수 있도록 해주는 script # ./root.sh
--- instance와 background process의 상태를 확인 $ ps -ef | grep ora --- oracle user의 home dir로 이동 $ cd --- server manager에 접속 $ svrmgrl --- DB내부의 보이지 않는 가장 강력한 user로 접속 SVRMGR> connect internal SVRMGR> shutdown SVRMGR> exit --- 전체 process 상태 확인(shutdown 확인) $ ps -ef | grep oracle
$ cd $ORACLE_HOME/network/admin --- host name, port, SID 등 확인, 수정 $ vi listener.ora LISTENER= (ADDRESS_LIST= (ADDRESS= (PROTOCOL=tcp) --- given은 시스템의 Hostname 또는 IP Address (HOST=given) (PORT=1521) ) ) STARTUP_WAIT_TIME_LISTENER=0 CONNECT_TIMEOUT_LISTENER=10 TRACE_LEVEL_LISTENER=OFF SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (SID_NAME=ORA816) (ORACLE_HOME=/oracle/app/oracle/product/816) ) ) :wq! --- host name, port, alias(connectstring) 등 확인, 수정 $ vi tnsnames.ora ORA8I= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS= (PROTOCOL=tcp) --- given은 시스템의 Hostname 또는 IP Address (HOST=given) (PORT=1521) ) ) (CONNECT_DATA= (SID=ORA816) ) ) :wq!
--- listener 실행 $ lsnrctl start $ svrmgrl SVRMGRL> connect internal SVRMGRL> startup --- system user로 접속 확인 SVRMGRL> connect system/manager@alias SVRMGRL> exit $ ps -ef | grep oracle --- 전체 process 상태 확인 pmon_ORA816 smon_ORA816 lgwr_ORA816 dbwr_ORA816 listener --- 최소한 이 5가지는 반드시 있어야함
--- 이름을 안주면 모두 실행 $ lsnrctl start --- listener의 실행상태 확인 $ lsnrctl status listener name --- listener stop $ lsnrctl stop listener name
--- SQL에 system user로 접속 $ sqlplus system/manager@alias(connectstring) -- 생성된 user 확인 SQL> select * from all_users; --- sys의 password를 수정 SQL> alter user sys identified by manager --- tnsnames.ora 내의 alias SQL> connect scott/tiger@alias
--- path가 다를수 있으므로 ls로확인하여 찾아갈 것 $ cd $ORACLE_HOME/precomp/demo/proc --- precompile과 link를 한후 sample1* file 생성 $ make -f demo_proc.mk sample1 $ sample1 --- 실행이 되는지 test connected to Oracle as user : scott --- demo user 입력 Enter employee number : < emp number > ※ emp number 확인 방법 --- 다른 창에서 SQL 접속후 확인 SQL> select * from scott.emp;
- 강좌 URL : http://www.gurubee.net/lecture/1240
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.