Oracle Database TIP
oracle 8i Installation for SUN Solaris 19 5 99,999+

by 구루비 Oracle8i SUN Solaris UNIX [2002.03.19]


  제목처럼 인스톨 내용 입니다.

  의외로 많은 문제를 일으키시는 것같아 나름대로 정리한 것을 올려 봅니다. 실제 인스톨러가 돌아가면 별로 문제가 생기지도 않고 그 화면은 다른 설치 가이드에서 보시면 자세히 나와 있으니 그 외에 부분에 대해 조금 알려드리고자 합니다.

  다른 unix(HP, AIX, Digital, Sco-unix, Linux등등)도 별반 다를바가 없습니다. 초기에 환경에서 조금 차이가 있을 뿐이지요. 아래의 환경은 임의로 설정한 예이니까 각자 자신의 상황에 맞도록 변경하셔서 사용하시면 될겁니다.

  참고하시고 도움이 되시길 바랍니다.

1. 확인사항

 
---- 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
    

2. shared memory와 semaphore setting

 
# 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
    

3. oracle을 위한 dba group과 oracle user 생성

 
--- 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 )
    

4. oracle home directory 생성 및 owner, group 지정

 
--- 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
    

5. oracle 환경 setting

 
--- 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
    

6. Installer 실행

 
--- 다른 창을 띄워 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 참조
    

7. oracle inventory작성을 위한 shell 실행

 
--- 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를 만듬
    

8. 다른 사용자를 위한 Shell 실행

 
--- 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
    

9. DB shutdown

 
--- 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
    

10. listener, tnsnames, services의 내용수정

 
$ 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!
    

10. DB startup

 
--- 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가지는 반드시 있어야함  
    

11. listener의 상태 확인

 
--- 이름을 안주면 모두 실행
$ lsnrctl start 
 
--- listener의 실행상태 확인
$ lsnrctl status listener name
 
--- listener stop
$ lsnrctl stop listener name
    

12. SQL test

--- 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
    

13. pro*C test

 
--- 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

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

by 김의태 [2004.01.19 13:00:35]
훌륭합니다.

by 김태영 [2005.08.18 17:22:47]
후아...오라클 접한지 1루째.....지금은 머가먼지 하나도 모르겠지만 점점 지날수록 알게되겠죠..^^ 홧팅..

by 김영훈 [2006.04.11 09:16:50]
9i, 10g 설치에 대한 내용도 있으면 좋겠네요.. 좋은 강좌 감사합니다 ^^

by 김윤경 [2007.10.24 11:14:51]
유닉스에 설치하는 것은 어렵네요.
나중에 도전해봐야겠어요;

by 양한마리 [2010.02.03 15:41:42]
이 부분은 어렵군요.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입