제목처럼 인스톨 내용 입니다.
의외로 많은 문제를 일으키시는 것같아 나름대로 정리한 것을 올려 봅니다. 실제 인스톨러가 돌아가면 별로 문제가 생기지도 않고 그 화면은 다른 설치 가이드에서 보시면 자세히 나와 있으니 그 외에 부분에 대해 조금 알려드리고자 합니다.
다른 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
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.