리눅스보안 - 필수 보안 조치법

Posted 2008. 10. 24. 04:35


리눅스보안 - 필수 보안 조치법  

1. SUID 점검하기.(root 소유의 SetUID및 SetGID 파일들 점검

    find / -user root -perm -4000 -print (SetUID)
    find / -user root -perm -2000 -print (SetGID)
    find / -user root -perm -4000 -print -xdev

2. 파티션별 디스크사용량 점검
    df -h

3. 파일무결성 점검.

    http://weblog.websea.co.kr/tripwire/tripwire

4. 백도어 설치여부 점검.(/dev 체크 및 rootkit 점검)

    find /dev -type f -exec ls -l {} ;
    ./chkrootkit
   
5. 현재 열려진 포트 및 응답가능한 포트 점검.

    netstat -atp | grep LISTEN (사용 프로토콜 : TCP인가? 또는 UDP인가?
           사용중인 포트번호
           서버와 연결된 IP 및 도메인명
           생성 PID
           서비스중인 프로세스명
           현재 응답가능상태인가?
    lsof | grep LISTEN(현재 서비스 중인 프로세스명(데몬명)
               현재 생성중인 PID번호.
           현재 서비스중인 프로세스의 소유자
           프로토콜 버전 : Ipv4 또는 Ipv6
           TCP 또는 UDP의 여부
           응답가능 상태인가?

6. 실생중인 프로세스 및 데몬점검.(프로세스의 생성관계)

    pstree

7. 시스템 운용상황 점검.

   top -d2

8. 백업점검.

   /home2/backup/nexfor/
   /home2/backup/websea/

9. 스팸메일 점검.(메일큐 디렉토리 점검)

  /var/spool/mqueue    (동일한 날짜, 동일한 사이즈를 가진 다수 파일구분)

10. Core 점검.

 서버내에 긴급한 이상이 발생하였을 경우나 시스템의 정확한 분석을 위해
 서버의 메모리 상태를 순간적으로 dump 받는 경우의 파일
  find / -name core -exec ls -l {} ;
 
11. 파일용량 점검

 repquota -av -ag
 df -h

12. 최근 서버 접속자 점검.

  vi /var/log/secure
  last -n 10  최근 10번째까지의 접속기록을 확인.

13. 계정별 최후접속기록 점검.

       lastlog는 현재 /etc/passwd에 존재하는 모든 계정을 대상으로 하여 언제 마지막으로  
       서버에 접속을 했는가를 확인.

       Mail, adm, bin 등의 계정들은 모두 "** Never logged in **" 이라고 되어 있는것이 정상.
       lastlog

14. 현재 서버접속자 보기

   w (telnet)
   ftpwho(ftp)

15. root명령어 사용기록 점검.

           vi /root/.bash_history  (.set nu)
           cat /root/..bash_history | wc -l    (1000라인 이상 되어야 정상)

16. 계정별 사용명령어파일 점검.

        find / -name .bash_history -exec ls -l {} ;    (각 계정별 .bash_history 파일의 존재여부)
        find / -name .bash_history -exec cat {} ;     (파일의 내용까지 모두 확인해 볼 수 있음)

17. root소유자 점검(UID와 GID가 0인 사용자 점검)

           cat /etc/passwd | grep 0:0

18. 서버내에 중요한 디렉토리 점검

        /etc/xinetd.d/    (xinetd로 서비스되는 인터넷서비스 파일들이 존재하는 디렉토리)
        /etc/rc.d/         (부팅에 관계된 파일) (파일들을 복사 후 파일용량등을 비교하기)
                               (커널패닉의원인)
        /etc/rc.d/init.d/ (부팅시에 특정 서비스나 데몬들을 시작시키는 스키립트 파일)

19. .rhosts 파일 점검

           원격에서 패스워드등의 확인과정없이 바로 접속하기 위해서 사용되는 파일
           
           find / -name .rhosts -exec ls -l {} ;
           find / -name .rhosts -exec cat {} ;

20. 메모리사용량 점검.

           free -m
           cat /proc/meminfo   (free 와 top 는 이 파일을 참조하여 보여준다.)
           top -d2

21. 중요 관리자용명령어 점검.

           아래의 명령어들을 퍼미션을 100으로 설정한다. 변경 후 퍼미션 변경여부를 확인.
           
           chmod 100 /usr/bin/top
           chmod 100 /usr/bin/pstree
           chmod 100 /usr/bin/w
           chmod 100 /bin/ps
           chmod 100 /usr/bin/who
           chmod 100 /usr/bin/find
           chmod 100 /bin/df
           chmod 100 /bin/netstat
           chmod 100 /sbin/ifconfig
           chmod 100 /usr/sbin/lsof
           chmod 100 /usr/bin/make
           chmod 100 /usr/bin/gcc
           chmod 100 /usr/bin/g++
           chmod 100 /usr/bin/c++

22. su 명령어를 이용한 root권한 사용자 점검.

           su 명령어의 사용내역을 확인할 수 있음.

           cat /var/log/messages | grep root

23. 최근 n 일전 변경된 파일 점검. (단위는 일)

           find / -ctime -1 -print | more

24. http://weblog.websea.co.kr/

25. find 를 이용한 특정파일 점검하기.

           .exec 파일찾기
           find / -name '.exec' -exec cat {} ; -print

           .forward 파일체크
           find / -name '.forward' -exec cat {} ; -print

           write 퍼미션이 있는 파일(디렉토리)찾기
           find / -type f  ( -perm -2 -o -perm -20 ) -exec ls -lg {} ;
           find / -type d ( -perm -2 -o -perm -20 ) -exec ls -ldg {} ;

           SteUID SetGID 체크하기
           find / -type f ( -perm -004000 -o -perm -002000 ) -exec ls -
lg {} ;

           /dev 체크
           find /dev -type f -exec ls -l {} ;

           소유자없는 파일 및 디렉토리 찾기
           find / -nouser -o -nogroup -print

           원격리모트 접속허용 파일(.rhosts)찾기
           find / -name .rhosts -print

           최근 변경된 파일들 찾기.(파일or디렉토리) 단위는 일
           find / -ctime -20 -type f or d

           현재 서버에서 열려진 포트 및 접근저보 점검

           netstat -an | grep LISTEN   (포트들과 열결되어 있는 실행데몬들을 확인)
           lsof | grep LISTEN   (좀 더 자세히 확인)

26. 관리자용 명령어 퍼미션 수정하기.

           chmod 100 /usr/bin/top
           chmod 100 /usrbin/pstree
           chmod 100 /usr/bin/w
           chmod 100 /bin/ps
           chmod 100 /usr/bin/who
           chmod 100 /usr/bin/find
           chmod 100 /bin/df
           chmod 100 /bin/netstat
           chmod 100 /sbin/ifconfig
           chmod 100 /usr/sbin/lsof
           chmod 100 /usr/bin/make
           chmod 100 /usr/bin/gcc
           chmod 100 /usr/bin/g++
           chmod 100 /usr/bin/c++

27. 중요한 파일퍼미션과 소유권 제한 및 점검.

           chmod 644 /etc/service
           chmod 600 /etc/xinetd
           chmod 644 /etc/mail/aliases
           chmod 600 /etc/httpd/conf/httpd.conf
           chmod 644 /var/log/wtmp
           chmod 644 /var/run/utmp
           chmod 644 /etc/motd
           chmod 644 /etc/mtab
           chmod 600 /etc/syslog.conf
           
           /etc, /usr/etc, /bin, /usr/bin, /sbin, /usr/sbin

           chmod 1777 /tmp
           chmod 1777 /var/tmp
           
28. umask 값 확인하기.

           root의 umask 값 확인하기.
           umask
           022 -->파일은 644 디렉토리는 755로 생성됨.
           027 -->파일은 640 디렉토리는 750로 생성됨.

29. /dev 에 device 파일 이외의 것이 존재하고 있는지 확인.

           find /dev -type f -exec ls -l {} ;

30. 일반사용자의 명령어 패스

           /usr/local/bin:usr/local/mysql/bin:/home/hosting/bin/
           일반사용자가 사용가능한 명령어를 모두 이것에 둠.

31. 관리자의 명령어 패스

           :/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin

           /X11:/usr/X11R6/bin:/usr/kerberos/bin:/root/bin

32. 특정 그룹만의 su 사용권한 허용하기

           vi /etc/group  (wheel구릅에 su 사용권한을 가질 유저 추가하기)
           wheel:x:10:root,cream

           vi /etc/pam.d/su (두줄 추가하기)

           auth            sufficient            /lib/security/pam_rootok.so
           auth            required             /lib/security/pam_wheel.so allow group=wheel

           vi /var/log/message 에서 확인

33. chmod 400 /etc/shadow

34. 시스템 기본로그파일.

           /var/log/messages
           /var/log/secure
           /var/log/wtmp
           /var/run/utmp
           /var/log/lastlog

35. utmp, wtmp, lastlog 파일

           utmp파일 : 현재시스템에 접속해 있는 사용자의 정보를 가지고 있음.
           
           strings utmp | more
           
           정보 이용 명령어
           login(1), who(1), init(8), last(8), lastcomm(8)

           wtmp파일 : 처음부터 접속했던 모든 사용자의 로그인정보와 로그아웃정보를 가지고 있음.

           strings wtmp | more

           정보 이용 명령어
           login(1), who(1), init(8), last(8), lastcomm(8)

           lastlog 파일

           가장 최근에 로그인한 정보를 저장함.

           last 라는 명령어로 확인할 수 있음.

36.  패스워드 유출대처방안(웹)

           perl을 이용한 방법.


   AllowOverride FileInfo AuthConfig Limit
   Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
   Options Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
   Options Indexes SymLinksIfOwnerMatch IncludesNoExec
   
       Order allow,deny
       Allow from all
   
   
       Order deny,allow
       Deny from all
   


           SSI의 exec 명령어를 이용하는 방법

#    AddType text/html .shtml
#    AddHandler server-parsed .shtml

27. PortSentry를 이용한 실시간 해킹방어 구현.(잘못 사용할시 서버접속 안됨)

           tar -xvzf portsentry-1.1.tar.gz
           make linux
           make install

           /usr/local/psionic/portsentry/portsentry -tcp
           /usr/local/psionic/portsentry/portsentry -udp
           /usr/local/psionic/portsentry/portsentry -stcp
           /usr/local/psionic/portsentry/portsentry -atcp
           /usr/local/psionic/portsentry/portsentry -stdp

           vi /etc/hosts.deny 점검.

28. Chkrootkit 로 백도어 점검.

           tar -xvzf chkrootkit.tar.gz
           make sense
           ./chkrootkit     (점검명령어)

29 ping 을 이용한 DOS 공격 막는 방법.

           vi  /etc/sysctl.conf
           net.ipv4.icmp_echo_ignore_broadcasts = 1

           sysctl -w
           /etc/rc.d/init.d/network restart
           sysctl -a | grep ignore_broadcasts

30. Nmap를 이용 포트스켄 하여 해킹가능성 체크.

           nmap -sS -p80 211.42.48.110 -O -v www.armian.net
           nmap -sS -O -v 211.42.48.114

해킹 방지 서버 점검

Posted 2008. 10. 24. 04:34


프록시 혹은 웹서버를 기준으로 간단히 설명드리겟습니다.

 

우선적으로 사용자 계정에 관하여 adduser 에서 계정추가후 하위디렉토리네 명령어 list중 일부를 삭제하지 않앗다고 여겨집니다.

루트 관리자에대한 자동 로그아웃 명령어 추가 및 루트의 암호를 8자이상으로 영문+숫자등의 조합으로 하셧는지도 의문스럽고요..

그외 파일허가권에 대한 변동사항을 체크하셧는지용?

 

그외 상세한 설명 및 사용팁은 아래내용 참조..

②파일의 권한 및 소유권부여로부터 보안설정
㉮LILO부팅시 Linux Single 모드 부팅으로 root권한획득 및 암호변경방지
#vi /etc/lilo.conf
 . . .
Message=/boot/message
restricted
password=********   //이부분에 암호를 입력하면 linux single모드 부팅시 암호를 묻게 된다.
linear
 . . .


㉯암호문의 길이를 수정
#vi /etc/login.defs   //가운데 PASS_LEN 5   ß-- 이부분의 숫자를 8로 수정한다.
㉰root 권한으로 로그인후 일정시간 경과후 자동 로그아웃하기
#vi /etc/profile
HOSTNAME=’/bin/hostname’
HISTSIZE=0
HISTFILESIZE=0
TMOUT=600     //시간은 초단위이며 예시처럼 바꾸면 된다!
㉱root가 아닌 사용자의 원격 접촉제한 //사용자가 서버의 종료,재시작을 하지 못하게 한다.
#cd /etc/security/console.apps
#ls –a     //항목중 reboot,halt,powerdown 을 rm –r을 이용하여 삭제한다.
㉲Ctrl+Alt+Delete로 강제종료를 제한하도록 설정
#vi /etc/inittab
ca::ctrlaltdel: /sbin/shutdown –t3 –r now //이 항목에 대하여 맨앞에 ‘#’를 넣어서 주석문 처리를 한다.
㉳파일의 허가권 변경
#chmod –R 700 /etc/rc.d/init.d/*  //디렉토리내 모든파일에 대하여 root사용자외 접근을 거부
#chmod –R 600 /etc/password   //일반사용자의 접근 금지
#chomd –R 600 /etc/inetd.conf   //쓰기금지 지정
㉴기타 허가권변경을 요하는 파일 및 허가권 부여
시스템 파일 및 디렉토리  설명     허가권
/var/log   모든 로그파일을 담고있는 디렉토리  751
/var/log/message  시스템 메시지 로그파일    644
/etc/crontab   작업 스케줄 파일    600
/etc/syslog.conf  syslog 데몬 설정 파일    640
/var/log/wtmp   who명령으로 현재사용자를 보여주는 기록파일 660
/var/log/lastlog  last 명령에 의해 보여지는 최종사용자 표시파일 640
/etc/passwd   리눅스 서버의 사용자 계정리스트   600
/etc/shadow   암호화된 계정 패스워드를 담고있는 파일  600
/etc/hosts.allow  네트워크 서비스의 접근을 허락하는 설정파일 600
/etc/hosts.deny  네트워크 서비스의 접근을 거부하는 설정파일 600
/etc/lilo.conf   부트로더 Lilo의 설정파일    600
/etc/securetty   root로 로그인을 허락하는 컴퓨터대상을 결정하는 파일 600
/etc/shutdown.allow  Ctrl+Alt+Del 사용을 허가하는 사용자의 리스트 700
/etc/security   시스템접근 보안정책 파일이 들어있는 디렉토리 700
/etc/rc.d/init.d   시작 부트 스크립트 파일    750
/etc/sysconfig   시스템과 네트워크 설정파일   751
/etc/services   서비스이름과 포트를 나타내는 파일  600
/etc/inetd.conf  인터넷 슈퍼서버데몬 inetd의 설정파일  600
/etc/ssh   보안 쉘(ssh) 설정파일    750
③각종 로그파일의 관리
㉮log파일의 관리    // #var/log 디렉토리의 log파일중 중요한것들
boot.log  //리눅스 부팅시 나타나는 메시지를 기록
cron   //시스템의 정기적인 작업에 대한 로그를 기록
message  //커널에서 보내주는 실시간 메제지의 로그를 관리
secure  //시스템의 접속에 관한 로그파일
xferlog  //FTP로 로그인 하는 사용자에 대한 로그를 기록하는 파일(웹서버에 해당)
maillog  //센드메일을 통한 메일에 대한 로그를 기록하는 파일

이외 궁금한것은 ....

 

추가:

가장 최우선적으로 boot.log와 같은 각종로그파일을 살펴보시는게 급선무 입니다. 언제 어디서 누가 접속햇는지 어디서 어떤작업을 햇는지 로그파일에 정보가 남아 있으니 그것부터 확인하세요..

또한 파일의 날짜도 의심해보고욤..



# crontab -e   <- 편집모드

//분 시 일 월 요일  명령어 형식이구요
---------------------------------------------

30 17  *  *   *      /(경로)shutdown.sh
---------------------------------------------

// 17:30분에 shutdown.sh 실행

 

#cat > shutdown.sh  (shutdown.sh 파일 만들기)

#!/bin/sh 
shutdown -h now   (명령어 : 즉시 shutdiwn)

 

이렇게 하면 매일 17시 30분에 Linux가 Shutdown됨

 

 

cron에는 root권한이 없기 shutdown.sh가 실행이 되지 않을껍니다,

 

shutdown은 root권한으로만 실행되기 때문이죠.

 

sudo가 설치되어 있으면 아래와 같이 하시면 됩니다.

 

vi /etc/sudoers 하셔서


ALL ALL=NOPASSWD:/sbin/shutdown

 

cron을 아래와 같이 고칩니다.

 

11 20 * * * sudo /sayit/shutdown.sh

 

shutdown 명령은 데몬으로도 실행할 수 있스니까 수행될 것입니다.

리눅스 스케줄러 crontab

Posted 2008. 10. 24. 04:32


출처 : http://blog.naver.com/sulucky5?Redirect=Log&logNo=70015357757

 

 

crontab 은 윈도우의 스케줄러와 같은 역할을 하는 명령어입니다.

 

CRONtab

 

crontab -l

-> 현재 crontab에 등록된 작업보기

 

crontab -e

-> crontab 편집하기

 

 

------------------------------------------------------------------------------------

 

CRONtab

/etc/cron, /usr/spool/cron/crontabs/*

/etc/cron" 프로그램  주기적으로 어떤 프로그램을 수행시키는데 사용된다. 

이때  주기적으로 수행되어질 프로그램은 "/usr/spool/cron/crontabs" 디렉토리 

밑에  사용자의 사용자명과 같은 이름으로 생성된다.

 화일은 만드는 방법은 아래 명령을 사용하면 된다.

        % crontab -l root  : /var/spool/cron/crontabs/root 내용 display

        % crontab -e root  :

            명령을 root 수행했으면 /var/spool/cron/crontabs/ DIR 하위에 

           "root" 라는 이름의 화일이 생성된다)

           또는 vi  편집 

--------------------------------------------------------------------------------

)

# more /var/spool/cron/crontabs/root

# minute   hour   day   month   week

# 0~59     0~23   1~31  1~12    0~6  (0=sunday, 1=monday)

#

15,45 3 * * * find / -name .nfs* -mtime +7 -exec rm -f {} ; -o -fstype nfs -prune

5 9 * * 6 /usr/lib/newsyslog >/dev/null 2>&1

15 0,8 16 * * find /var/preserve/ -mtime +7 -a -exec rm -f {} ;

--------------------------------------------------------------------------------

  crontab 화일의  앞의 5번째 칼럼까지에는  명령이 수행되어질 일시와 요일이다.

  지정한 것들은 아래와 같은 의미를 갖는다.

         시간 날짜  요일 : 구분은 Space

        15,45 3 * * *  : 매일 3 15분관 45분에 수행 

        5 9 * * 6      : 매주 금요일 9 5분에 수행 

        15 1,18 16 * * : 매달 16 115분과 오후 6 15분에 수행 

 

1) /var/spool/cron/crontabs/root (root계정으로 가정할때..)

    파일을 편집하여 원하는 스케쥴을 설정/편집 한다.

2) ps -ef|grep cron      : 현재 cron deamon 돌고 있는지 확인 

3) kill -9 "pid of cron"   : cron deamon kill

4) rm /usr/lib/cron/FIFO  : lock파일제거(/usr/lib/cron directory /etc/cron.d 링크되어있음)

5) /usr/sbin/cron         : deamon 재실행( 편집한 명령대로 수행함)

 

   ) vi /var/spool/cron/crontabs/root

       ###############################

       #Min Hour Day Month Day Command

       ###############################

       15 4 * * * find /var/preserve/ -mtime +7 -a -exec rm -f {} ;

       0 23 * * * sh `sed -n 1p /etc/Alis`/janitor

       0 * * * * /usr/lib/acct/ckpacct

       10 12 * * 1-6 /usr/lib/acct/dodisk

       20 12 1 * * /usr/lib/acct/monacct

       30 12 * * 1-6 /usr/lib/acct/runacct 2> /var/adm/acct/nite/fd2log

 

log /var/cron/.....  생성됨

 

 

 ------------------------------------------------------------------------------------

 

1. 개요 (cron이 뭐하는 것인지 전혀 모르는 분들만)

cron(크론)은 원하는 시간에 명령(프로그램)을 시키기 위한 데몬이다.
서버는 늘 깨어있다는 것을 이용한 최대한의 활용법이 될 수 있다.

- 내가 새벽 3시에 서버에 특정 작업을 해줘야하는데 그 때 깨어있을 수 있는가?
- 또는 30분간격으로 HDD의 사용량을 운영자에게 알리도록 해야한다면?
- 매월 초에 자료를 백업 받고 싶다면?

바로 이럴 때 cron은 최고의 해결책을 제시한다.
cron은 항상 지정한 시간이 되었는지 확인을 하여 해당 명령어을 실행하는 것이다.

2. cron 설정

1) crontab 파일 위치 및 조회

작업 설정 파일을 crontab 파일이라고 부르며, 이 파일의 위치는 OS별로 차이가 있다.
리눅스는 /var/spool/cron/ID, 솔라리스는 /var/spool/corn/crontabs/ID 에 위치한다.
그럼 이 파일을 직접 수정해야 하는가? 그렇지 않다. crontab 명령을 통해 설정과 조회를 한다.

설정 내용을 조회해 보자. (-l 옵션)

 
$ crontab -l
no crontab for truefeel
 


설정한 적이 없어 아직 비어있다.

2) crontab 파일 형식


------    --------  ---------------------------------------------------
필  드    의  미    범  위
------    --------  ---------------------------------------------------
첫번째    분        0-59
두번째    시        0-23
세번째    일        0-31
네번째    월        1-12
다섯번째  요일      0-7 (0 또는 7=일요일, 1=월, 2=화,...)
여섯번째  명령어    실행할 명령을 한줄로 쓴다.
------    --------  ---------------------------------------------------


- 한 줄당 하나의 명령 (두줄로 나눠서 표시할 수 없음)
- # 으로 시작하는 줄은 실행하지 않는다.

설정을 해보자. (-e 옵션)
crontab -e 을 하면 vi 에디터가 나온다.(환경변수 EDITOR에 따라 다른 에디터를 사용할 수 있다.)
 
$ crontab -e
# /home 디렉토리를 /BACKUP/home 으로 백업해둠
#
# 30분, 새벽 4시와 낮 12시, 모든 일, 모든 월, 모든 요일
30 4,12 * * *  /usr/bin/rsync -avxH --delete /home /BACKUP/home > /dev/null 2>&1
#
# 파일/디렉토리 퍼미션 설정
# 40분, 새벽 1시, 매주 일요일
40 1    * * 0  /root/bin/perm_set.sh   > /dev/null 2>&1
 



위는 매일 4:30분과 12:30분에 rsync 명령을, 매주 일요일 1:40분에 perm_set.sh를 실행함을 의미한다.

vi 에디터를 통해 설정을 하므로 중요한 몇 가지 에디터 사용법은 익혀야 한다.

----  -----------------------------------------------------------------------------
키    의미
----  -----------------------------------------------------------------------------
i     현재 칸에 글을 넣는다.
o     다음줄에 글을 넣는다.
dd    한줄을 삭제한다.
:wq   저장하고 빠져나온다.
ESC   설정중에 명령어 모드(위의 i, o, dd 등을 사용할 수 있는 상태)로 빠져 나온다.
----  -----------------------------------------------------------------------------


3) 설정 예

시간 설정에서 몇가지 의미있는 것들을 알아보자.

- '*'표시는 해당 필드의 모든 시간을 의미한다.
- 3,5,7 와 같이 콤마(,)로 구분하여 여러 시간대를 지정할 수 있다.
- 2-10와 같이 하이픈(-)으로 시간 범위도 지정할 수 있다.
- 2-10/3와 같이 하이픈(-)으로 시간 범위를 슬래쉬(/)로 시간 간격을 지정할 수 있다.
(2~10까지 3간격으로. 즉, 3,6,9를 의미함)


             
원하는 시간 형  식
  매주 토요일 새벽 2:20   20  2     *  *  6  명령어
  매일 오후 4,5,6시   0  4-6   *  *  *  명령어
  매일 2시간간격으로 5분대에   5  */2 *  *  * 명령어
  매월 1일 새벽 1:15   15  1   1  *  *  명령어
  1,7월 1일 새벽 0:30   30  0   1  1,7  *  명령어


3. FAQ

1) cron 설정한 후에는 crond 데몬을 재실행해야 하나요?

  아닙니다. crontab -e 으로 설정 후 빠져나오면 바로 적용됩니다.

2) truefeel 사용자는 cron을 못 쓰게 하고 싶습니다.

  /etc/cron.allow : 허용할 사용자 ID 목록
  /etc/cron.deny  : 거부할 사용자 ID 목록

  cron.allow 파일이 있으면 이 파일에 들어있는 ID만 사용 가능
  cron.deny  파일이 있으면 이 파일에 들어있는 ID는 사용 불가

  따라서 cron.deny에 truefeel ID를 추가해주면 됩니다.

3) > /dev/null  2>&1 이 무슨 뜻입니까?

  지정한 명령어 처리 결과와 발생할지 모르는 에러메시지를 출력하지 않고 모두 버린다는(/dev/null)는
  뜻입니다. 만약 결과와 에러를 파일로 저장하려면 /dev/null 대신 파일명을 적어주면 됩니다.

Linux에 아파치, Tomcat, PHP 설치법

Posted 2008. 10. 24. 04:30


출처 : http://cafe.naver.com/networkn.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=215 

 

 소스코드를 받아 설치하는 방법을 설명하기로 합니.
기본적으로 소스코드을은 /usr/local/src에 두고 작업을 합니다.

먼저 APACHE 2.x버전 소스를 서버에 두고 해당디렉토리에서 다음 명령어들을 실행합니다.

$./configure --prefix=/usr/local/apache --enable-rule=SHARED_CORE --enable-modules=so --enable-so
$make
$make install

APACHE가 설치되었으면 확인해 실행시켜보죠.
$/usr/local/apache/bin/apachectl start
$/usr/local/apache/bin/apachectl stop

그럼 다음으로 PHP를 설치하기로 합니다..
PHP4.x 버전을 소스로 구하여 서버에 두고 다음과 같은 명령어를 수행합니다.

$./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --enable-track-vars=yes --with-mod-charset --with-language=korean --with-charset=euc_kr --disable-debug --with-xml

$make
$make install
$cp /usr/local/src/php-4.3.0/php.ini-dist /usr/local/lib/php.ini

설치 되었으면 APACHE와 PHP를 연동시키기로 하죠..
아래와 같이 몇줄을 추가 시켜주면 된답다.

아파치 httpd.conf 아래에 840라인 정도에 추가

LoadModule php4_module modules/libphp4.so
AddType application/x-httpd-php .php4 .php3 .html .htm .phtml .ph .php
AddType application/x-httpd-php-source .phps

아래의 내용을 찾아 추가
DirectoryIndex index.html index.php index.phtml index.jsp


이제 PHP에 ZendOptimizer 설치하기로 합니다...
ZendOptimizer 해당 디렉토리에서 install.sh을 수행시키고 계속 OK 눌러 주시면 설치가 완료된답니다.
마지막에 나오는 메세지는 "php.ini는 새로 심볼릭 링크 했다. 수정하고 싶으면 /usr/local/Zend/etc 에있는 php.ini를 해라."는 것이니 신경쓰지 말고 ㅋ.

그럼 이제 톰켓을 설치 해보도록 하자...
톰캣 4.x 버전을 구해서 /usr/local/tomcat에 먼저 둔답니다.
그리고 vi /root/.bash_profile, 파일을 열어서 환경 설정을 다음과 같이 합니다,

JAVA_HOME=/usr/local/j2sdk
CATALINA_HOME=/usr/local/tomcat
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export JAVA_HOME CATALINA_HOME

/usr/local/tomcat/conf/server.xml 을 열어서 추가해줌

# 내용중 다음을 찾아서
<Server port="8005" shutdown="SHUTDOWN" debug="0">
# 밑줄에 다음을 입력한다.
<Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" />

# 내용중 다음을 찾아서
<Host name="localhost" debug="0" appbase="webapps">
# 밑줄에 다음을 입력한다.
<Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" append="true" />

이제 톰캣과 아파치의 연동되는 부분을 만들기로 하죠..

mod_jk.so 생성하기로 합니다..

# cd /usr/local/src
# tar xzvf jakarta-tomcat-connectors-4.1.12-src.tar.gz
# cd /tmp/jakarta-tomcat-connectors-4.1.12-src/jk/native
# ./buildconf.sh
# ./configure --with-apxs=/usr/local/apache/bin/apxs
# make
# make install
# ll /usr/local/apache/modules

톰캣을 기동 시키면 $catalina.sh start

/usr/local/tomcat/conf 밑에 jk와 auto 디렉토리가 자동으로 생기죠..

그 디렉토리 안에 프로퍼티 화일을 만들고 다음과 같이 설정한답니다.
$cd /usr/local/tomcat/conf/jk
$ vi workers.properties

# Start setup file (화일 내용 시작)
#
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/local/java
ps=/
worker.list=ajp12, ajp13

# Definition for Ajp13 worker
#
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
#
# End setup file (화일 내용 끝)


마지막으로 httpd.conf 화일의 마지막에 아래의 내용을 추가합니다..
#
#Load mod_jk
#
LoadModule jk_module modules/mod_jk.so
#
#Configure mod_jk
#
JkWorkersFile /usr/local/tomcat/conf/jk/workers.properties
JkLogFile /usr/local/tomcat/logs/mod_jk.log
JkLogLevel emerg
#
# Root context
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
Include /usr/local/tomcat/conf/auto/mod_jk.conf

이제 아파치와 톰캣을 구동시키면 잘 연동 되는것을 알수 있을것입니다.
서버는 톰캣을 먼저 띄운후에 아파치를 기동 시켜야 된답니다.
이점을 명심해야 해요....

버전에 따라 약간의 차이가 있지만 대체적으로 위의 로직을 따라서 설치하면
제대로 설치가 될것입니다...

 

리눅스의 기본 명령어

Posted 2008. 10. 24. 04:28


1. 기본 명령어

*date: 현재의 날짜와 시간을 단말기 화면에 표시
*who : 유닉스 시스템에 로그인 되어 있는 사용자들에 대한 정보를 화면에 표시
*date;who;cat > sample.c : 한 줄에 두 개 이상의 명령어를 동시에 입력하고자 할 경우 명령어와 명령어 사이를 ; 으로 구분한다
*cal 9 1995 : unix 시스템에 내장되어있는 달력을 화면에 출력
*cat address.list : 파일의 내용을 화면에 출력한다
*man date : 예약어나 명령어에 대한 온라인 매뉴얼
*ls: 현재 위치한 디렉토리 아래에 있는 파일 및 서브디렉토리의 정보를 나열
- 옵션: -l: 파일의 모든 정보 출력
-c: 최근 변경한 시간 순서데로 출력
-d: 디렉토리 명만 출력
-F: 파일의 특성을 출력( /디렉토리 *실행화일)
-a: dot(.)으로 시작하는 파일의 이름을 포함한 모든 내용을 출력
*alias dir ls -alF : 자주 쓰이는 명령어 ls를 다른 형태의 명령어 dir로 바꿀 때..
*pwd : 현제 작업 디렉토리 출력 명령어
*cd : 디렉토리 변경 명령어

2. 디렉토리 관리 및 파일 관리 명령어

*mkdir : 디렉토리 생성 명령어 (%mkdir [option] [directory name]
*rmdir : 디렉토리 삭제 명령어
- 옵션: rm -r test ; test의 하위디렉토리와 파일을 전부 삭제
- 옵션: rm -i test ; 삭제 여부를 사용자에게 물어 본다

*cat : 파일을 작성하거나 파일의 내용을 간단하게 출력
# cat test1.c
# cat > test1.c

*touch : 내용이 없는 빈 파일을 생성, 이미 생성된 파일의 수정 시간 갱신
# touch [option] [시간] [파일명]

*more [file name] : 한 번에 한 화면씩 파일의 내용을 표준 출력
-내용을 보지 않고 종료시 q 나 Q 키를 누른다
*page [option] [file name] : 한 번에 한 화면씩 파일의 내용을 표준출력(=== %pg)
*nl [file name] : 지정한 파일의 내용을 츨력할 때 맨 앞에 행 번호를 이어서 출력
*file test.c : test.c라는 파일의 형태를 출력

*cp :시스템내에 있는 특정 파일을 복사
# mkdir temp --temp라는 디렉토리 생성
# cp sample test temp --temp라는 디렉토리 밑에 sample 과 test 라는 파일을 복사
# mkdir example
# cp -r temp example --temp라는 디렉토리 아래에있는 모든 내용을 example디렉토리에 복사

*mv [file name1] [file name2] --file name1을 file name2로 이름 변경
*mv [file1] [file2] [directory1] --file1, file2를 directory1으로 이동
*mv [directory1] [directory2] --directory1의 모든 내용을 directory2로 이동
**명령어 cp, mv, rm에서 option -i는 사용자에게 여부를 묻는 옵션입니다

*rm test1 test2 test3 --- test1,test2,test3 파일을 삭제
*rm -r quit --- quit 디렉토리 및 모든 내용을 삭제

*ln test1 test2 --- test1과 test2라는 2개의 파일을 연결 (unlink ; 연결 해제)

*find: 사용자가 지정한 특정 범위에 해당하는 모든 파일을 검색
# find / -name test1.c -print ; 최상위 루트 디렉토리부터 검색하여 검색된 파일을 한 행에 하나씩 표준 출력
# find . -name test1.c -print ; 현제의 작업 디렉토리에서 검색
# find / -size +1000 -print ; 최상위 루트에서 크기가 1000블록 이상인 파일 검색
# find . -size -1000 -print ; 현 디렉토리에서 크기가 1000블록 이하인 파일 검색
# find . -mtime +10 -print ; 10일 이전에 수정된 파일 검색
# find . -mtime -10 exec rm {} \: ; 10일 이내에 수정한 파일을 검색하여 모두 지운다

*chmod --- 파일 및 디렉토리에 이미 정해진 접근 허가 모드를 변경
- 사용 형식: %chmod [ugoa] [+-=] [rwx] [file name]
u: 파일 소유자, g: 그룹, o: 기타 사용자, a: 모든 사용자
+: 사용허가부여, -: 사용허가박탈, =: 허가 취소
r: 읽기 허가, w:쓰기 허가, x: 실행 허가
특정 사용자를 지정하지 않으면 모든 사용자를 의미한다
chmod go+r test.c ; 소유자 그룹과 기타 사용자에게 읽기 허가
chmod ugo-w test.c ; 소유자,그룹,기타 사용자에게 읽기 허가 박탈
chmod +x test.c
chmod o -rwx test.c
r = 4, w = 2, x =1
chmod 744 test.c
-rwxr--r-- 1 edul user 235 Oct 15 13:23 test.c
chmod 724 test.c
-rwx-w-r-- 1 edul user 235 Oct 15 13:23 test.c
* : dot(.)을 제외한 모든 문자와 대응하며 모든 파일명을 대표하는 메타 문자 %ls *a* , %ls t* ? : " " " 임의의 한 문자만을 대신

3. 입력과 출력에 관한 명령어

* < ---입력
* > ---출력
* >> ---출력, 첨가
* date > date.out : 이전 내용이 지워지고 새로운 내용이 저장
* date >> date.out : 이전 내용과 함께 새로운 내용 첨가
* file < test > test.out : test 파일을 입력으로 받아서 file 명령을 실행하고 test.out에 출력
* cat test.out
* test: Ascll text
* 2>>, 2> 오류 출력 제지정

* tty : 현재 사용하고 있는 단말 장치의 이름을 경로와 함께 표준 출력

* lpstate : 프린터의 현제 상태 (활성화: enable, 비활성화: disable)
* lp -c temp.c ; 내용이 변경되어도 문제가 지속되지 않도록미리 출력될 파일을 복사
* lp -n7 /etc/lp/temp ; 7장 프린트
* lp -m temp.c ; 출력이 끝난후 사용자에게 전자우편을 보냄
* lp -t"chon bing hee" test.out ; chon bong hee라는 표제를 달아 줌
* cancel [print name] ; 프린터 취소
* disable -c [print name] ; 지정한 프린터에서 현제 출력중인 작업 취소
* disable -w laser-3 ; 모두 인쇄한 다음 프린터를 disable 상태로 만든다
* disable -c -r "out of paper" laser-1 ; 주석을 달아 놓는다

* grep [option] 형태 [화일명] -- 정규식을 이용 패턴 지정
# grep -i tom sample.c -- sample.c 라는 파일에서 tom 이라는 문자열을 대소문자 구분 없이 검색
# grep -n tom sample -- 행 번호와 함께 출력
# grep -i "tom is" sample -- 공백은 " "로 표기
# grep -v tom sample --tom이라는 형태를 포함하지 않는 행을 출력

# cat sample
computer science
computer graphics

# cut -c10-17 sample -- sample 파일에서 칼럼 단위10-17을 절단 --> science/graphics

# cmp test1 test2 -- 서로 다른 두 파일을 비교
# dircmp test test -- 서로 다른 두 디렉토리 비교


4. 백업 및 복사에 관한 명령어
(rfd:디스켓, rct:카트리지테이프, rmt: 테이프)
하드 ----> 디스켓

# tar -cvf /dev/rfd0c test1
(c: 저장되는 파일들이 디스크의 처음부터 기록, v:기록되는 화일명 화면 출력)

# tar -tvf /dev/rfd0c --- 디스켓의 파일 목록 확인

디스켓 ----> 하드
# tar -xvf /dev/rfd0c test1 --- 지정한 파일 복원

동일한 하드 ---> %tar -cvf test1.tar test1

# compress test.c (파일 압축) --->uncompress test.c.Z (압축 풀기)
: test.c.Z (파일 생성) --- >zcat test.c.Z (파일 보기)

# pack test.c (파일 압축) ---> unpack test.c.z
: test.c.z (파일 생성) ---> pcat test.c.z (파일 보기)
* Non-preemptive(비선점) ; 커널 모드
* kernel; 생성되는 프로세스마다 PCB 부여하고 관리

5. 멀티 태스킹에 관련된 명령어

* Multitask
foreground : 하나의 명령이 실행되어 결과를 출력할때까지 다른 명령을 수행 할 수 없다
background : 하나의 명령을 수행시킨후 그 수행의 종료 이전에 다른 명령을 수행 하는 것
---> 명령어 끝에 &로 표시 (cc -o test1 test1.c &)

ps -l --프로세스에 관한 모든 상태 정보 출력
ps -e --현제 실행중인 모든 프로세스에 관한 정보 출력
ps ps -t 00 --지정된 터미널에서 실행중인 프로세스에 관한 정보 출력
nice [-정수값:1~39 , 20으로 설정] 명령어 -->우선 순위 변경 명령어
정수값이 높을수록 우선 순위가 낮다 (nice -10 cc -o test test1.c)
at --수행 시간 지정 명령어 -->at 11:30 pm
cc test.c

-옵션 -r: 이전에 지정된 작업 취소, -l : 지정된 작업 번호 출력
(sleep 20; cc -o sample sample.c)& -->백그라운드 실행, 20초 뒤 프로그램 컴파일
(sleep 10; ps -el) --> 10초후 모든 프로세서 상태 출력
time cc -o test test.c --수행 시간 출력 명령어

* 백그라운드 작업 상태: Running : 현제 백그라운드 수행중인 상태
Stopped : fg로 수행되다가 ^D로 잠시 중단된 상태
Terminated : Kill 명령을 사용해 강제로 종료된 상태
Done : 백그라운드 프로세서의 수행이 완전히 종료된 상태
Exit : 백그라운드 프로세서가 수행도중 오류 때문에 빠져 나온 상태
jobs : 백그라운드로 수행중인 모든 프로세서의 상태 출력
fg %1(작업 번호) : 백그라운드로 수행중인 작업을 포그라운드로 전환
bg %1( " ) : 포그라운드로 " " 백그라운드로 전환
wait [작업번호] --백그라운드 실행 종료
kill [번호] -- 프러세서 강제 종료 명령어
* 강제 종료가 안될 경우 -9옵션을 사용 %kill -9 1239
nohup cc -o sample1 sample1.c & 1132[PID번호]
---> 백그라운드로 실행, 로그 아웃이나 중지 신호후에도 프로세서의 수행 계속 

 

출처 : Tong - yjh811220님의 [ ORACLE ]통



DBA: Linux

  다운로드
Oracle Database 10g
  TAGS
linux, database, installation, All

Linux x86에 Oracle Database 10g 설치하기

by John Smiley

*RHEL4, SLES9 버전 관련 내용이 추가로 업데이트 되었습니다*

Red Hat Enterprise Linux 또는 Novell SUSE Enterprise Linux 환경과 Oracle Database 10g 를 설치하는 기본 과정을 설명합니다.
(본 문서는 테스트를 목적으로 한 시스템을 위한 가이드로서 제작되었습니다)

목차
개요
제 I 부: Linux의 설치
    RHEL4
    RHEL3
    RHEL2.1
    SLES9
    SLES8
제 II 부: 오라클 환경을 위한 Linux 설정
    시스템 요구사항 검증
    디렉토리 생성
    오라클 그룹 및 사용자 계정 생성
    Linux 커널 매개변수 설정
    oracle 계정의 Shell Limit 설정
    버그를 피하자! (SLES8만 해당)
    oracle 계정을 위한 환경 변수
제 III 부: 오라클의 설치
    소프트웨어의 설치
제 IV 부: 스토리지의 구성
    파일시스템
    Automatic Storage Management
결론
부록


개요

본 가이드는 Linux 환경에서 Oracle Database 10g 를 설치하는 전체 과정을 설명하는 가이드 시리즈의 첫 번째 문서입니다.
본 문서는 5종류의 공식 Linux 배포판(영문 버전; Asianux는 포함되어 있지 않습니다)과 저가형 인텔 x86 하드웨어를 기반으로 하는
환경에서 Oracle 10g 제품의 테스트를 목적으로 소프트웨어를 설치하고 구성하는 과정을 설명하고 있습니다.

이 시리즈는 Oracle 10g Grid의 모든 컴포넌트의 설치 및 구성 방법에 대한 안내를 제공하는 것을 궁극적인 목표로 합니다.
각 연재 별로, 단일 인스턴스로 구성된 Oracle 10g 데이타베이스(본 문서), 2-노드 Oracle RAC 10g 데이타베이스, Oracle Application Server 10g 와 and Oracle Enterprise Manager 10g Grid Control의 주요 컴포넌트를 설치하고 구성하는 방법 등이 설명됩니다.

이 가이드는 최소한의 시간과 노력을 들여 과제를 완료하기 위한, 가장 쉽고 간단한 작업 방법을 예시하고 있습니다.
테스트 이외의 목적으로 아래에 설명된 구성을 적용하는 것은 부적합할 수 있음을 참고하시기 바랍니다.
이러한 점에서 이 문서는 운영 환경의 구축을 위한 가이드로서 적합하지 않으며, 업계의 베스트 프랙티스를 반영하고 있지 않습니다.
(RHEL2.1, RHEL3, UnitedLinux 1의 세 가지 플랫폼에 한해 공식 "Quick Installation Guide" 문서가 별도로 제공되고 있으니 참고하시기
바랍니다.)

Oracle Database 10g 에서 인증된 5종류의 Linux 배포판이 아래와 같습니다:

  • Red Hat Enterprise Linux  4 (RHEL4)
  • Red Hat Enterprise Linux 3 (RHEL3)
  • Red Hat Enterprise Linux 2.1 (RHEL2.1)
  • Novell SUSE Linux Enterprise Server 9
  • Novell SUSE Linux Enterprise Server 8

이 문서는 Linux 또는 Oracle을 처음 접하는 사용자를 대상으로 합니다.
하드웨어에 아무 것도 설치되지 않은 상태에서 Oracle Database 10g 를 설치하는 기본적인 과정이 설명됩니다.

이 가이드는 4개의 영역으로 나뉘어져 있습니다:
제 1 부에서는 Linux 운영체제의 설치를 주제로 합니다.
제 2 부는 오라클 환경을 위한 Linux 설정
제 3 부는 오라클 데이타베이스의 설치
제 4 부는 추가적인 파일 시스템 구성 및 (스토리지 관리 업무의 단순화를 위해 Oracle Database 10g에 추가된 혁신적인 신기능) Automatic Storage Management (ASM)의 활용에 대해 설명하고 있습니다. 부록에서는 새로 설치된 데이타베이스에 접근하고,
데이타베이스 및 관련 서비스를 시작/중단하는 방법을 설명합니다.


제 I 부: Linux의 설치

이 가이드는 다음과 같은 하드웨어로 구성된 서버 환경을 가정합니다:

  • 800MHz Pentium III CPU 2개
  • 512MB 메모리
  • SCSI 호스트 어댑터 (Ultra SCSI 160) 2개
  • SCSI 디스크 드라이브 8개 (2 x 9GB + 6 x 36GB)
  • 100Base-T Ethernet 어댑터 1개
  • 1000Base-T Ethernet 어댑터 1개

2 개의 SCSI 호스트 어댑터는 각각 9 GB 디스크 1개와 36 GB 디스크 3개에 연결됩니다.

위와 같은 환경이 용량 면에서 결코 여유 있는 구성은 아니지만, 위 구성보다도 더 낮은 성능 환경에서도 본 문서에서 설명된 작업을 충분히 수행할 수 있음을 참고하시기 바랍니다. 기본적인 데이타베이스 설치에 필요한 환경은 1개의 CPU, 메모리 512 MB 메모리, 최소 6.5 GB의 여유 공간을 갖는 디스크 드라이브 (IDE, SCSI, FireWire) 1 개 정도로 충분합니다.

이제 Linux 운영체제를 서버에 설치하는 과정에 대해 설명하기로 하겠습니다. 본 문서에서는 Linux를 (업그레이드가 아닌) 처음 설치하는 경우를 가정하며, 서버에 오라클 데이타베이스와 관련되지 않은 다른 운영체제 또는 데이타가 사용되지 않는 것으로 가정합니다.


RHEL4

Oracle Database 10g 는 RHEL 4 (Advanced Server / Enterprise Server)의 Base Release를 공식적으로 지원합니다. (RHEL4의 무료 평가판을 다운로드 하실 수 있습니다.) 업데이트 CD를 가지고 있는 경우, Base Release의 부트 CD 대신 업데이트 버전의 부트 CD를 이용하여 설치 과정에서 업데이트를 자동 적용할 수 있습니다. 오라클은 Red Hat을 통해 제공되는 모든 업데이트를 지원합니다.

Linux 운영체제의 설치 과정에서 업데이트를 가장 쉽고 빠르게 적용하는 방법은, 업데이트 CD를 사용하여 설치 작업을 수행하는 것입니다. Linux가 이미 설치되어 있고 업데이트 CD를 가지고 있지 않다면, Red Hat Network에서 다운로드하여 적용할 수도 있습니다.
이 문서는 Linux를 처음부터 설치하는 과정을 설명하고 있으므로, 업데이트 CD를 사용하는 것으로 합니다.

  1. 첫 번째 CD를 사용하여 서버를 부팅합니다.
    • CD로부터의 부팅을 위해 BIOS 설정을 변경해야 할 수도 있습니다.
  2. 부트 스크린이 나타나고 스크린 하단에 boot:프롬프트가 표시됩니다.
    • 그래픽 UI를 이용한 설치를 계속하기 위해 Enter를 입력합니다 (그 밖의 다른 설치 방법 및 옵션에 대해서는Red Hat Installation Guide를 참고하십시오.)
    • 인스톨러가 하드웨어를 검색하고, 잠깐 동안 Red Hat 스플래쉬 스크린을 표시한 뒤, 스크린 프롬프트를 표시합니다.
  3. Language Selection
    • 디폴트 설정을 사용합니다.
  4. Keyboard Configuration
    • 디폴트 설정을 사용합니다.
  5. Welcome Screen
    • Next를 클릭합니다.
  6. Disk Partitioning Setup
    • 디스크 파티셔닝에 대한 상세한 설명은 이 가이드의 주제 범위에서 벗어나므로, 여기에서는 사용자가 디스크 파티셔닝 방법에 대해 숙지하고 있는 것으로 가정합니다.

      (WARNING: 디스크 파티셔닝 과정에서의 실수로 인해 하드 디스크의 모든 내용이 삭제될 수 있음을 각별히 주의하시기 바랍니다. 진행 방법을 정확히 이해하지 못한 경우 작업을 중단하고 다른 정보를 참고하시기 바랍니다. 그렇지 않은 경우 데이타를 모두 잃어 버릴 수 있습니다!)

      이 가이드에서는 아래와 같은 파티셔닝 구성을 사용합니다. (ext3 파일시스템 사용):

      첫 번째 컨트롤러 (/dev/sda)의 9GB 디스크에는 Linux 및 오라클 소프트웨어가 저장되며, 다음과 같이 파티션이 설정됩니다:
      - 100MB /boot 파티션
      -1,500MB swap 파티션—이 파티션의 용량은 최소 RAM 사이즈의 두 배, 최대 2 GB를 넘지 않도록 설정합니다. (32 bit 시스템은 2 GB 이상의 스왑 파일을 지원하지 않습니다.) 2 GB이상의 스왑 공간이 필요한 경우에는 스왑 파티션을 여러 개 생성합니다.
      -7,150MB root 파티션—이 파티션은 /usr, /tmp, /var, /opt, /home 등의 모든 데이타를 저장하는데 사용합니다. 여기에서는 설치 과정에 대한 이해가 쉽도록 매우 단순한 구성을 사용하였습니다. 보다 안정적인 환경을 구현하려면 디렉토리들을 별도의 파일시스템에 구분하여 생성해야 할 것입니다.

  7. Boot Loader Configuration
    • 디폴트 설정을 사용합니다.
  8. Network Configuration
    • 일반적으로 서버에는 정적 IP 주소를 설정하는 것이 권장됩니다. Edit를 클릭합니다 .
    • 팝업 윈도우가 표시됩니다. Configure using DHCP 박스의 체크를 해제하고, 서버의 IP Address와 Netmask를 입력합니다. Activate on boot가 체크되어 있는지 확인한 후 OK를 클릭합니다 .
    • Hostname 박스에서 manually를 선택하고 호스트네임을 입력합니다.
    • Miscellaneous Settings 박스에서 기타 네트워크 설정값을 입력합니다.
  9. Firewall Configuration
    • 본 문서에서는 방화벽이 사용되지 않는 것으로 가정합니다. No firewall을 선택합니다.
  10. Additional Language Support
    • 디폴트 설정을 사용합니다.
  11. Time Zone Selection
    • 현 위치에 해당하는 시간대 설정을 선택합니다. 서버 환경에서는 시스템 시간을 UTC에 맞추도록 설정하는 것이 일반적으로
      권장됩니다.
      여기에서는 System clock uses UTC를 클릭하기로 합니다.
  12. Set Root Password
    • root 계정의 패스워드를 입력하고, 확인을 위해 재입력합니다.
  13. Package Installation Defaults
    • Customize software packages to be installed를 선택합니다.
  14. Package Group Selection
    • 아래의 패키지 셋만을 선택하고, 다른 것들은 선택하지 않도록 합니다.
    • Desktop
      • X Window System
      • Gnome
      • UI의 선택에 관련하여 RHES2.1 섹션의 설명을 참고하시기 바랍니다.
    • Applications
      • Editors
      • Graphical Internet
    • Servers
      • 이 그룹 내에서는 아무 것도 선택하지 않습니다.
    • Development
      • Development Tools
    • System
      • Administration Tools
    • Red Hat Enterprise Linux
      • 이 그룹 내에서는 아무 것도 선택하지 않습니다.
    • Next를 클릭하여 다음 단계로 진행합니다.
  15. Installing Packages
    • 소프트웨어가 하드 디스크에 복사되고 설치가 진행됩니다. 프롬프트가 뜨는 경우 디스크를 교체해 줍니다.
  16. Congratulations
    • 시스템에서 설치 CD를 꺼내고 Reboot를 클릭합니다 .
  17. 17. 시스템이 자동적으로 리부팅 되고 다시 welcome 스크린이 뜹니다.
    • Next를 클릭합니다.
  18. License Agreement
    • License Agreement를 숙지한 후, 조건에 동의하는 경우 Yes, I agree to the License Agreement를 선택하고 Next를 클릭합니다.
  19. Date and Time
    • 날짜와 시간을 설정합니다.
    • NTP 서버를 사용하려는 경우(권장), Enable Network Time Protocol을 선택하고 NTP 서버의 이름을 입력합니다.
  20. Display
    • 변경할 필요가 없다면 디폴트를 선택합니다.
  21. Red Hat Login
    • Red Hat Network 로그인/패스워드를 입력하거나 새로운 계정을 생성합니다.
  22. System User
    • 시스템에 로그인하기 위한 계정을 생성합니다.
    • 오라클 관련 계정은 아직 생성하지 않습니다. 오라클 계정의 생성에 대해서는 뒷부분에서 다룹니다.
  23. Additional CDs
    • Next를 클릭합니다.
  24. Finish Setup
    • Next를 클릭합니다.
  25. 그래픽 로그인 스크린이 표시됩니다.
  26. 축하합니다! 이것으로 RHEL4 소프트웨어의 설치가 완료되었습니다.

설치 결과의 검증

위에서 설명된 모든 과정을 완료했다면, Oracle Database 10g 에 필요한 모든 패키지와 업데이트가 적용된 상태입니다.
설치 결과의 검증을 위해 아래 작업을 수행합니다.

커널 버전 요구사항: 2.6.9-5.EL (RHEL4의 Base Release에 포함된 커널 버전입니다. 이 버전 또는 업데이트를 통해 제공되는 다른 모든 버전은 Oracle Database 10g 와 연동합니다.)

아래 명령을 수행하여 커널 버전을 점검합니다:

uname -r

Ex:
# uname -r
2.6.9-5.ELsmp

기타 패키지의 버전은 아래와 동일하거나 그 이후의 버전이어야 합니다:

  • gcc-3.4.3-9.EL4
  • make-3.80-5
  • binutils- 2.15.92.0.2-10.EL4
  • openmotif-2.1.30-11
  • setarch-1.6-1
  • compat-db-4.1.25-9

시스템에 설치된 패키지의 버전을 확인하기 위해, root 계정에서 아래와 같이 명령을 입력합니다:

rpm -q gcc make binutils openmotif setarch compat-db


Ex:  
# rpm -q gcc make binutils openmotif setarch compat-db
gcc-3.4.3-9.EL4
make-3.80-5
binutils-2.15.92.0.2-10.EL4
setarch-1.6-1
compat-db-4.1.25-9

RHEL3

Oracle Database 10g 는 Rat Hat Enterprise Linux 3 (Advanced Server / Enterprise Server)의 Base Release를 공식적으로 지원합니다. 업데이트 CD를 가지고 있는 경우, Base Release의 부트 CD 대신 업데이트 버전의 부트 CD를 이용하여 설치 과정에서 업데이트를 자동 적용할 수 있습니다. 오라클은 Red Hat을 통해 제공되는 모든 업데이트를 지원합니다.

  1. 첫 번째 CD를 사용하여 서버를 부팅합니다.
    • CD로부터의 부팅을 위해 BIOS 설정을 변경해야 할 수도 있습니다.
  2. 부트 스크린이 나타나고 스크린 하단에 boot:프롬프트가 표시됩니다.
    • 그래픽 UI를 이용한 설치를 계속하기 위해 Enter를 입력합니다.
      (그 밖의 다른 설치 방법 및 옵션에 대해서는 Red Hat Installation Guide를 참고하십시오.)
    • 인스톨러가 하드웨어를 검색하고, 잠깐 동안 Red Hat 스플래시 스크린을 표시한 뒤, 스크린 프롬프트를 표시합니다.
  3. Language Selection
    • 디폴트 설정을 사용합니다.
  4. Keyboard Configuration
    • 디폴트 설정을 사용합니다.
  5. Welcome Screen
    • Next를 클릭합니다.
  6. Mouse Configuration
    • 디폴트 설정을 사용합니다.
  7. Installation Type
    • Custom을 선택합니다.
  8. Disk Partitioning Setup
    • 디스크 파티셔닝에 대한 상세한 설명은 이 가이드의 주제 범위에서 벗어나므로, 여기에서는 사용자가 디스크 파티셔닝 방법에 대해 숙지하고 있는 것으로 가정합니다.

      (WARNING: 디스크 파티셔닝 과정에서의 실수로 인해 하드 디스크의 모든 내용이 삭제될 수 있음을 각별히 주의하시기 바랍니다. 진행 방법을 정확히 이해하지 못한 경우 작업을 중단하고 다른 정보를 참고하시기 바랍니다. 그렇지 않은 경우 데이타를 모두 잃어 버릴 수 있습니다!)

      이 가이드에서는 아래와 같은 파티셔닝 구성을 사용합니다. (ext3 파일시스템 사용):
      첫 번째 컨트롤러 (/dev/sda)의 9GB 디스크에는 Linux 및 오라클 소프트웨어가 저장되며, 다음과 같이 파티션이 설정됩니다:
      - 100MB /boot 파티션
      -1,500MB swap 파티션—이 파티션의 용량은 최소 RAM 사이즈의 두 배, 최대 2 GB를 넘지 않도록 설정합니다. (32 bit 시스템은 2 GB 이상의 스왑 파일을 지원하지 않습니다.) 2 GB이상의 스왑 공간이 필요한 경우에는 스왑 파티션을 여러 개 생성합니다.
      -7,150MB root 파티션— 이 파티션은 /usr, /tmp, /var, /opt, /home 등의 모든 데이타를 저장하는데 사용합니다. 여기에서는 설치 과정에 대한 이해가 쉽도록 매우 단순한 구성을 사용하였습니다. 보다 안정적인 환경을 구현하려면 디렉토리들을 별도의 파일시스템에 구분하여 생성해야 할 것입니다.

  9. Boot Loader Configuration
    • 디폴트 설정을 사용합니다.
  10. Network Configuration
    • 일반적으로 서버에는 정적 IP 주소를 설정하는 것이 권장됩니다. Edit를 클릭합니다.
    • 팝업 윈도우가 표시됩니다. Configure using DHCP 박스의 체크를 해제하고, 서버의 IP Address와 Netmask를 입력합니다. Activate on boot가 체크되어 있는지 확인한 후 OK를 클릭합니다.
    • Hostname 박스에서 manually를 선택하고 호스트네임을 입력합니다.
    • Miscellaneous Settings 박스에서 기타 네트워크 설정값을 입력합니다.
  11. Firewall Configuration
    • 본 문서에서는 방화벽이 사용되지 않는 것으로 가정합니다. No firewall을 선택합니다.
  12. Additional Language Support
    • 디폴트 설정을 사용합니다.
  13. Time Zone Selection
    • 현 위치에 해당하는 시간대 설정을 선택합니다. 서버 환경에서는 시스템 시간을 UTC에 맞추도록 설정하는 것이 일반적으로 권장됩니다.
      여기에서는 System clock uses UTC를 클릭합니다.
  14. Set Root Password
    • root 계정의 패스워드를 입력하고, 확인을 위해 재입력합니다.
  15. Package Group Selection
    • 아래의 패키지 셋만을 선택하고, 다른 것들은 선택하지 않도록 합니다.
    • Desktop
      - X Window System
      - Gnome
      - KDE
      - GUI의 선택에 관련하여 RHES 2.1 섹션의 설명을 참고하십시오.
    • Applications
      - Editors
      - Graphical Internet
    • Servers
      - 이 그룹 내에서는 아무 것도 선택하지 않습니다.
    • Development
      - Development Tools
    • System
      - Administration Tools
    • Red Hat Enterprise Linux
      - 이 그룹 내에서는 아무 것도 선택하지 않습니다.
    • Miscellaneous
      - Legacy Software Development
    • Next를 클릭하여 다음 단계를 클릭합니다.
  16. About to Install
    • Next를 클릭합니다.
  17. Installing Packages
    • 소프트웨어가 하드 디스크에 복사되고 설치가 진행됩니다. 프롬프트가 뜨는 경우 디스크를 교체해 줍니다. 설치가 완료되면 Next를 클릭합니다.
  18. Graphical Interface (X) Configuration
    • 인스톨러가 장착된 비디오 카드를 성공적으로 인식한다면, 디폴트 설정을 그대로 사용합니다. 비디오 카드의 인식에 실패한
      경우에는 이후 과정을 진행할 수 없습니다.
  19. Monitor Configuration
    • 인스톨러가 모니터를 올바르게 인식한다면, 디폴트 설정을 선택합니다. 그렇지 않은 경우 목록에서 호환 가능한 모니터를
      선택합니다.
  20. Customize Graphical Configuration
    • 디폴트 설정을 그대로 사용합니다.
  21. Congratulations
    • 시스템에서 설치 미디어를 제거하고, Next를 클릭합니다.
  22. 23. 시스템이 자동으로 재부팅되고 새로운 welcome 스크린이 표시됩니다.
    • Next를 클릭합니다.
  23. License Agreement
    • License Agreement를 숙지한 후, 조건에 동의하는 경우 Yes, I agree to the License Agreement를 선택하고 Next를 클릭합니다.
  24. Date and Time
    • 날짜와 시간을 설정합니다.
    • NTP 서버를 사용하려는 경우(권장), Enable Network Time Protocol을 선택하고 NTP 서버의 이름을 입력합니다.
  25. User Account
    • 시스템에 로그인하기 위한 계정을 생성합니다.
    • 오라클 관련 계정은 아직 생성하지 않습니다. 오라클 계정의 생성에 대해서는 뒷부분에서 다룹니다.
  26. Red Hat Network
    • Red Hat Network 계정을 지금 사용하거나 활성화하고자 하는 경우 디폴트 설정 상태에서 Next를 클릭하고,
      Red Hat 제품과 함께 제공되는 설명서에 따라 product activation작업을 수행합니다.
  27. Additional CDs
    • Next를 클릭합니다.
  28. Finish Setup
    • Next를 클릭합니다.
  29. 그래픽 로그인 스크린이 표시됩니다.
  30. 축하합니다! 이것으로 Linux 소프트웨어의 설치가 완료되었습니다.

설치 결과의 검증

위에서 설명된 모든 과정을 완료했다면, Oracle Database 10g 에 필요한 모든 패키지와 업데이트가 적용된 상태입니다.
설치 결과의 검증을 위해 아래 작업을 수행합니다.

커널 버전 요구사항: 2.4.21-4.EL (RHEL4의 Base Release에 포함된 커널 버전입니다. 이 버전 또는 업데이트를 통해 제공되는 다른 모든 버전은 Oracle Database 10g 와 연동합니다.)

아래 명령을 수행하여 커널 버전을 점검합니다:

uname -r

Ex:
# uname -r
2.4.21-4.0.1.ELsmp

기타 패키지의 버전은 아래와 동일하거나 그 이후의 버전이어야 합니다:

  • gcc-3.2.3-2
  • make-3.79
  • binutils-2.11
  • openmotif-2.2.2-16
  • setarch-1.3-1
  • compat-gcc-7.3-2.96.122
  • compat-gcc-c++-7.3-2.96.122
  • compat-libstdc++-7.3-2.96.122
  • compat-libstdc++-devel-7.3-2.96.122
  • compat-db-4.0.14.5 (listed in the Oracle 10g Database Installation Guide as required but not needed here)

시스템에 설치된 패키지의 버전을 확인하기 위해, root 계정에서 아래와 같이 명령을 입력합니다:

rpm -q gcc make binutils openmotif setarch compat-db compat-gcc \
     compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel

Ex:
# rpm -q gcc make binutils openmotif setarch compat-db compat-gcc \
>      openmotif compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel
gcc-3.2.3-20
make-3.79.1-17
binutils-2.14.90.0.4-26
openmotif-2.2.2-16
setarch-1.3-1
package compat-db is not installed
compat-gcc-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122

compat-db 패키지가 설치되어 있지 않음에 유의하시기 바랍니다. 이 패키지는 설치 작업을 1차적으로 완료한 후 별도의 과정을 통해 설치되어야 합니다. compat-db를 제외한 다른 패키지가 설치되지 않았거나 위에 명시된 것보다 이전 버전인 경우, Red Hat Network에서 제공하는 업데이트를 다운로드하여 설치하시기 바랍니다.

compat-db의 설치

Red Hat Enterprise Linux 오리지널 미디어의 CD 2를 삽입합니다. (이 패키지는 Update 2에 추가되지 않았으며, 오리지널 미디어에만 포함되어 있습니다.)

CD는 자동으로 마운트 됩니다.

root 계정에서 아래와 같이 명령을 수행합니다:

rpm -ivh /mnt/cdrom/RedHat/RPMS/compat-db-4.0.14-5.i386.rpm

Ex:
# rpm -ivh /mnt/cdrom/RedHat/RPMS/compat-db-4.0.14-5.i386.rpm
Preparing...         ########################################### [100%]
   1:compat-db       ########################################### [100%]


RHEL2.1

Oracle Database 10g 는 Red Hat Enterprise Linux 2.1 (Advanced Server / Enterprise Server)의 Update 3 또는 이후 버전을 공식적으로 지원합니다 업데이트 버전은 Red Hat Network (RHN)를 통해 제공되며, ISO 파일을 다운로드하여 CD로 만들거나, 개별 패키지 업데이트 단위로 다운로드 할 수 있습니다.

Linux 운영체제의 설치 과정에서 업데이트를 가장 쉽고 빠르게 적용하는 방법은, 업데이트 CD를 사용하여 설치 작업을 수행하는 것입니다. Linux가 이미 설치되어 있고 업데이트 CD를 가지고 있지 않다면, Red Hat Network에서 다운로드하여 적용할 수도 있습니다.
이 문서는 Linux를 처음부터 설치하는 과정을 설명하고 있으므로, 업데이트 CD를 사용하는 것으로 합니다.

  1. 업데이트 CD의 첫 번째 CD를 사용하여 서버를 부팅합니다.
    • CD로부터의 부팅을 위해 BIOS 설정을 변경해야 할 수도 있습니다.
  2. 부트 스크린이 나타나고 스크린 하단에 boot:프롬프트가 표시됩니다.
    • 그래픽 UI를 이용한 설치를 계속하기 위해 Enter를 입력합니다.
      (그 밖의 다른 설치 방법 및 옵션에 대해서는Red Hat Installation Guide를 참고하십시오.)
    • 인스톨러가 하드웨어를 검색하고, 잠깐 동안 Red Hat 스플래시 스크린을 표시한 뒤, 스크린 프롬프트를 표시합니다.
  3. Language Selection
    • 디폴트 설정을 사용합니다.
  4. Keyboard Configuration
    • 디폴트 설정을 사용합니다.
  5. Mouse Configuration
    • 디폴트 설정을 사용합니다.
  6. Installation Type
    • 디폴트 설정을 사용합니다.
  7. Disk Partitioning Setup
    • 디스크 파티셔닝에 대한 상세한 설명은 이 가이드의 주제 범위에서 벗어나므로, 여기에서는 사용자가 디스크 파티셔닝 방법에 대해 숙지하고 있는 것으로 가정합니다.

      (WARNING: 디스크 파티셔닝 과정에서의 실수로 인해 하드 디스크의 모든 내용이 삭제될 수 있음을 각별히 주의하시기
      바랍니다. 진행 방법을 정확히 이해하지 못한 경우 작업을 중단하고 다른 정보를 참고하시기 바랍니다. 그렇지 않은 경우
      데이타를 모두 잃어 버릴 수 있습니다!)

      이 가이드에서는 아래와 같은 파티셔닝 구성을 사용합니다. (ext3 파일시스템 사용):

      첫 번째 컨트롤러 (/dev/sda)의 9GB 디스크에는 Linux 및 오라클 소프트웨어가 저장되며, 다음과 같이 파티션이 설정됩니다:
      - 100MB /boot 파티션 (RHEL 2.1의 경우 최소 50MB가 요구됩니다.)
      -1,500MB swap 파티션—이 파티션의 용량은 최소 RAM 사이즈의 두 배, 최대 2 GB를 넘지 않도록 설정합니다. (32 bit 시스템은 2 GB 이상의 스왑 파일을 지원하지 않습니다.) 2 GB이상의 스왑 공간이 필요한 경우에는 스왑 파티션을 여러 개 생성합니다.
      -7,150MB root 파티션—이 파티션은 /usr, /tmp, /var, /opt, /home 등의 모든 데이타를 저장하는데 사용합니다. 여기에서는 설치 과정에 대한 이해가 쉽도록 매우 단순한 구성을 사용하였습니다. 보다 안정적인 환경을 구현하려면 디렉토리들을 별도의 파일시스템에 구분하여 생성해야 할 것입니다.

  8. Boot Loader Configuration
    • 디폴트 설정을 사용합니다.
  9. Boot Loader Password Configuration
    • GRUB 패스워드를 사용하고자 하는 경우 여기에서 입력합니다. 테스트 시스템으로만 사용하는 경우라면 설정하지 않고 다음
      단계로 진행합니다.
  10. Network Configuration
    • 일반적으로 서버에는 정적 IP 주소를 설정하는 것이 권장됩니다. Configure using DHCP 박스의 체크를 해제하고, 서버의
      IP Address와 Netmask를 입력합니다. Activate on boot가 체크되어 있는지 확인합니다.
  11. Firewall Configuration
    • 본 문서에서는 방화벽이 사용되지 않는 것으로 가정합니다. No firewall을 선택합니다.
  12. Additional Language Support
    • 디폴트 설정을 사용합니다.
  13. Time Zone Selection
    • 현 위치에 해당하는 시간대 설정을 선택합니다. 서버 환경에서는 시스템 시간을 UTC에 맞추도록 설정하는 것이 일반적으로
      권장됩니다. 여기에서는 System clock uses UTC를 클릭합니다.
  14. Account Configuration
    • root 패스워드를 입력하고, 사용자가 사용할 계정을 생성합니다. (오라클 계정은 아직 생성하지 않습니다.)
  15. Package Group Selection
    • GUI로 Gnome 또는 KDE (또는 두 가지 모두)를 선택합니다. 참고: 두 가지 GUI는 모두 널리 사용되고 있으며, 특히 Gnome은 미국 내에서 인기가 높습니다. 필자는 개인적으로 KDE를 선호합니다. KDE의 terminal emulator는 잘라내기/붙여넣기가 쉬울 뿐 아니라, 여러 개의 연결을 설정하고 입력을 복제하는 기능을 제공합니다. (RAC 구성에서 여러 개의 노드의 설정을 반복하여 타이핑하는 수고를 덜 수 있습니다.)
    • Software Development를 선택합니다.
  16. Unresolved Dependencies
    • 이 스크린이 표시되는 경우에는 Install packages to satisfy dependencies (디폴트)를 선택하고 다음 단계로
      진행합니다.
  17. Graphical Interface (X) Configuration
    • 인스톨러가 장착된 비디오 카드를 성공적으로 인식한다면, 디폴트 설정을 그대로 사용합니다. 비디오 카드의 인식에 실패한
      경우에는 이후 과정을 진행할 수 없습니다.
  18. Preparing to install
    • Next를 클릭합니다
  19. Installing packages
    • 소프트웨어가 하드 디스크에 복사되고 설치가 진행됩니다. 프롬프트가 뜨는 경우 디스크를 교체해 줍니다. 설치가 완료되면 Next를 클릭합니다.
  20. Boot disk creation
    • 필요한 경우 부트 디스크를 생성하거나, 또는 Skip boot disk creation을 선택합니다.
  21. Monitor Configuration
    • 인스톨러가 모니터를 올바르게 인식한다면, 디폴트 설정을 선택합니다. 그렇지 않은 경우 목록에서 호환 가능한 모니터를
      선택합니다.
  22. Congratulations
    • 시스템에서 설치 미디어를 제거하고, Next를 클릭합니다.

시스템이 자동으로 리부팅되고 그래픽 로그인 스크린이 표시됩니다. 업데이트 CD가 아닌 Base Release CD로 설치를 진행한 경우에는, Red Hat Network에서 업데이트를 다운로드하여 업데이트를 적용해야 합니다.

설치 결과의 검증

위에서 설명된 모든 과정을 완료했다면, Oracle Database 10g 에 필요한 모든 패키지와 업데이트가 적용된 상태입니다.
설치 결과의 검증을 위해 아래 작업을 수행합니다.

커널 버전 요구사항: 2.4.9-e.25 (또는 이후 버전)

아래 명령을 수행하여 커널 버전을 점검합니다:

uname -r

Ex:
# uname -r
2.4.9-e.27smp

기타 패키지의 버전은 아래와 동일하거나 그 이후의 버전이어야 합니다:

  • gcc-2.96-124
  • make-3.79
  • binutils-2.11
  • openmotif-2.1.30-11
  • glibc-2.2.4-31

시스템에 설치된 패키지의 버전을 확인하기 위해, root 계정에서 아래와 같이 명령을 입력합니다:

rpm -q gcc make binutils openmotif glibc

Ex:  
# rpm -q gcc make binutils openmotif glibc
gcc-2.96-118.7.2
make-3.79.1-8
binutils-2.11.90.0.8-12
openmotif-2.1.30-11
glibc-2.2.4-32.8

패키지가 설치되지 않았거나 위에 명시된 것보다 이전 버전인 경우, Red Hat Network에서 제공하는 업데이트를 다운로드하여 설치하시기 바랍니다.


SLES9

Oracle Database 10g 는 SLES9의 Base Release를 공식적으로 지원합니다 서비스 팩과 패키지 업데이트는 노벨의 Support Portal 사이트로부터 CD 또는 온라인을 통해 제공받을 수 있습니다. 이 가이드에서는 SLES9 base release를 사용하여 설치를 진행합니다.

  1. SLES9 CD를 사용하여 서버를 부팅합니다.
    • CD로부터의 부팅을 위해 BIOS 설정을 변경해야 할 수도 있습니다.
  2. Novell SLES 설치 화면이 표시됩니다.
    • Installation을 선택합니다.
    • 인스톨러가 하드웨어를 검색하고 YaST 인터페이스를 표시합니다.
  3. Language Selection
    • License Agreement를 확인하고 승인합니다.
    • English (US)를 선택합니다.
  4. Installation Settings
    • New Installation을 선택합니다.
  5. Partitioning
    • 디스크 파티셔닝에 대한 상세한 설명은 이 가이드의 주제 범위에서 벗어나므로, 여기에서는 사용자가 디스크 파티셔닝 방법에 대해 숙지하고 있는 것으로 가정합니다.

      (WARNING: 디스크 파티셔닝 과정에서의 실수로 인해 하드 디스크의 모든 내용이 삭제될 수 있음을 각별히 주의하시기
      바랍니다. 진행 방법을 정확히 이해하지 못한 경우 작업을 중단하고 다른 정보를 참고하시기 바랍니다. 그렇지 않은 경우
      데이타를 모두 잃어 버릴 수 있습니다!)

      이 가이드에서는 아래와 같은 파티셔닝 구성을 사용합니다. (ext3 파일시스템 사용):

      첫 번째 컨트롤러 (/dev/sda)의 9GB 디스크에는 Linux 및 오라클 소프트웨어가 저장되며, 다음과 같이 파티션이 설정됩니다:
      - 100MB /boot 파티션
      -1,500MB swap 파티션—이 파티션의 용량은 최소 RAM 사이즈의 두 배, 최대 2 GB를 넘지 않도록 설정합니다. (32 bit 시스템은 2 GB 이상의 스왑 파일을 지원하지 않습니다.) 2 GB이상의 스왑 공간이 필요한 경우에는 스왑 파티션을 여러 개 생성합니다.
      -7,150MB root 파티션—이 파티션은 /usr, /tmp, /var, /opt, /home 등의 모든 데이타를 저장하는데 사용합니다. 여기에서는 설치 과정에 대한 이해가 쉽도록 매우 단순한 구성을 사용하였습니다. 보다 안정적인 환경을 구현하려면 디렉토리들을 별도의 파일시스템에 구분하여 생성해야 할 것입니다.

  6. Software
    • Software 링크를 클릭합니다.
    • Software Selection 스크린이 표시됩니다.
    • Detailed Selection을 클릭합니다.
    • 왼쪽 윈도우에 소프트웨어 선택을 위한 목록이 표시됩니다. 각 항목의 상자를 체크하여 소프트웨어를 선택하거나 선택을
      해제합니다.
    • 아래 소프트웨어를 선택합니다 (아래는 권장 목록이며, 그 밖의 다른 소프트웨어는 모두 선택하지 않아야 합니다.):
      - Basis Runtime System
      - YaST
      - Linux Tools
      - Help & Support Documentation
      - Graphical Base System
      - KDE Desktop Environment
      - C/C++ Compiler and Tools
    • 아래 항목은 설치하지 않는 것이 권장됩니다 (동일한 서비스를 제공하는 오라클 제품과 충돌할 수 있습니다.):
      - Simple Webserver
      - Authentication Server (NIS, LDAP, Kerberos)
  7. Time Zone
    • 시간대를 설정합니다.
  8. Accept를 클릭합니다.
  9. 경고 메시지가 표시됩니다. 메시지를 확인한 후 Yes, install를 클릭합니다.
  10. 인스톨러 프롬프트가 표시되면 CD를 교체합니다.
  11. Confirm Hardware Detection
    • Network Cards-OK를 클릭합니다.
  12. Password for "root." the system administrator.
    • root 패스워드를 반복하여 입력합니다.
  13. 네트워크 인터페이스를 설정하고, 작업이 완료되면 Next를 클릭합니다.
    • 일반적으로 서버에는 정적 IP 주소를 설정하는 것이 권장됩니다.
    • 데이타베이스 서버의 경우 프린터, 모뎀, ISDN 어댑터, 사운드 등은 설정할 필요가 없습니다.
  14. Test Internet Connection
    • 인터넷에 연결할 필요가 없으므로 No, Skip This Test를 선택합니다.
  15. Service Configuration
    • CAManagement 또는 OpenLDAP Server를 설정할 필요가 없으므로 Skip Configuration을 선택합니다.
  16. User Authentication Method
    • Local(/etc/passwd)을 선택합니다
  17. Add a New Local User
    • 로컬 사용자 계정을 생성합니다. (오라클 계정은 아직 생성하지 않습니다.).
  18. Release Notes
    • Next를 클릭합니다.
  19. Hardware Configuration
    • Confirm Hardware Detection - Graphics Cards-Continue를 클릭합니다.
    • 데이타베이스 서버에서는 사운드 카드를 설정할 필요가 없으므로 Skip을 클릭합니다.
    • 그래픽 카드와 모니터가 성공적으로 인식되었다면, Next를 클릭합니다.
      그렇지 않은 경우 Graphics Cards 링크를 클릭하고 정확한 정보를 입력합니다.
  20. Installation Completed
    • Finish를 클릭합니다.
  21. 축하합니다! SLE9 소프트웨어의 설치가 완료되었습니다.

설치 결과의 검증

위에서 설명된 모든 과정을 완료했다면, Oracle Database 10g 에 필요한 모든 패키지와 업데이트가 적용된 상태입니다.
설치 결과의 검증을 위해 아래 작업을 수행합니다.

커널 버전 요구사항: 2.6.5-7.5 (또는 이후 버전)

아래 명령을 수행하여 커널 버전을 점검합니다:

uname -r

Ex:
# uname -r
2.6.5-7.97-smp

기타 패키지의 버전은 아래와 동일하거나 그 이후의 버전이어야 합니다:

  • gcc-3.3.3-43
  • gcc-c++-3.3.3-43
  • glibc-2.3.3-98
  • libaio-0.3.98-18
  • libaio-devel-0.3.98-18
  • make-3.80
  • openmotif-2.2.2-519.2

시스템에 설치된 패키지의 버전을 확인하기 위해, root 계정에서 아래와 같이 명령을 입력합니다:

rpm -q gcc gcc-c++ glibc libaio libaio-devel make openmotif-libs

Ex:  
# rpm -q gcc gcc-c++ glibc libaio libaio-devel make openmotif-libs
gcc-3.3.3-43.24
gcc-c++-3.3.3-43.24
glibc-2.3.3-98.28
libaio-0.3.98-18.3
libaio-devel-0.3.98-18.3
make-3.80-184.1
openmotif-libs-2.2.2-519.1

패키지가 설치되지 않았거나 위에 명시된 것보다 이전 버전인 경우 Novell SUSE Linux Portal에서 업데이트를 다운로드하여 설치하시기 바랍니다.


SLES8

Oracle Database 10g 는 Novell SUSE Linux Enterprise Server (SLES) 8과 SLES-9를 지원합니다. 서비스 팩과 패키지 업데이트는 노벨의 Support Portal 사이트로부터 CD 또는 온라인을 통해 제공받을 수 있습니다. 이 가이드에서는 SLES 8 CD와 Service Pack 3를 사용하여 설치를 진행합니다.

  1. 1. SLES9 CD를 사용하여 서버를 부팅합니다.
    • CD로부터의 부팅을 위해 BIOS 설정을 변경해야 할 수도 있습니다.
  2. 2. SUSE Linux Enterprise Server 설치 화면이 표시됩니다.
    • Installation을 선택합니다.
    • 인스톨러가 하드웨어를 검색하고 YaST 인터페이스를 표시합니다.
  3. Language Selection
    • License Agreement를 확인하고 승인합니다.
    • English (US)를 선택합니다.
  4. Installation Settings
    • New Installation을 선택합니다.
  5. Partitioning
    • 디스크 파티셔닝에 대한 상세한 설명은 이 가이드의 주제 범위에서 벗어나므로, 여기에서는 사용자가 디스크 파티셔닝 방법에 대해 숙지하고 있는 것으로 가정합니다.

      (WARNING: 디스크 파티셔닝 과정에서의 실수로 인해 하드 디스크의 모든 내용이 삭제될 수 있음을 각별히 주의하시기
      바랍니다. 진행 방법을 정확히 이해하지 못한 경우 작업을 중단하고 다른 정보를 참고하시기 바랍니다. 그렇지 않은 경우
      데이타를 모두 잃어 버릴 수 있습니다!)

      이 가이드에서는 아래와 같은 파티셔닝 구성을 사용합니다. (ext3 파일시스템 사용):

      첫 번째 컨트롤러 (/dev/sda)의 9GB 디스크에는 Linux 및 오라클 소프트웨어가 저장되며, 다음과 같이 파티션이 설정됩니다:
      - 100MB /boot 파티션
      -1,500MB swap 파티션—이 파티션의 용량은 최소 RAM 사이즈의 두 배, 최대 2 GB를 넘지 않도록 설정합니다. (32 bit 시스템은 2 GB 이상의 스왑 파일을 지원하지 않습니다.) 2 GB이상의 스왑 공간이 필요한 경우에는 스왑 파티션을 여러 개 생성합니다.
      -7,150MB root 파티션—이 파티션은 /usr, /tmp, /var, /opt, /home 등의 모든 데이타를 저장하는데 사용합니다. 여기에서는 설치 과정에 대한 이해가 쉽도록 매우 단순한 구성을 사용하였습니다. 보다 안정적인 환경을 구현하려면 디렉토리들을 별도의 파일시스템에 구분하여 생성해야 할 것입니다.

  6. Software
    • Software 링크를 클릭합니다.
    • Software Selection 스크린이 표시됩니다.
    • Detailed Selection을 클릭합니다.
    • 왼쪽 윈도우에 소프트웨어 선택을 위한 목록이 표시됩니다. 각 항목의 상자를 체크하여 소프트웨어를 선택하거나 선택을
      해제합니다.
    • 아래 소프트웨어를 선택합니다. (아래는 권장 목록이며, 그 밖의 다른 소프트웨어는 모두 선택하지 않아야 합니다.):
      - C/C++ Compiler and Tools
      - KDE (or Gnome)
      - LSB Runtime Environment
      - Help & Support Documentation
      - Graphical Base System
      - YaST2 config modules
      - SLES Administration Tools
    • 아래 항목은 설치하지 않는 것이 권장됩니다 (동일한 서비스를 제공하는 오라클 제품과 충돌할 수 있습니다.):
      - Simple Webserver
      - Authentication Server (NIS, LDAP, Kerberos)
  7. Time Zone
    • 시간대를 설정합니다.
  8. Accept를 클릭합니다.
  9. 경고 메시지가 표시됩니다. 메시지를 확인한 후 Yes, install를 클릭합니다.
  10. 인스톨러 프롬프트가 표시되면 CD를 교체합니다.
  11. 소프트웨어가 설치된 후, 베이스 시스템의 설치가 성공적으로 완료되었다는 메시지 윈도우가 표시됩니다.
    • 설치 CD를 제거하고 OK를 클릭합니다.
  12. 시스템이 리부팅 됩니다.
  13. root 패스워드를 반복하여 입력합니다.
  14. 로컬 사용자 계정을 생성합니다. (오라클 계정은 아직 생성하지 않습니다.).
  15. Desktop Settings
    • 디폴트 설정을 그대로 사용합니다.
  16. 로컬 프린터를 자동 인식할 것인지 묻는 경고 창이 뜹니다.
    • Skip detection을 클릭합니다.
  17. 네트워크 인터페이스를 설정한 뒤 Next를 클릭합니다.
    • 일반적으로 서버에는 정적 IP 주소를 설정하는 것이 권장됩니다.
    • 데이타베이스 서버의 경우 프린터, 모뎀, ISDN 어댑터, 사운드 등은 설정할 필요가 없습니다.
  18. 그래픽 로그인 UI가 표시됩니다.
  19. 이제 Service Pack 3를 설치할 차례입니다. 앞에서 생성한 계정으로 로그인합니다.
  20. 업데이트 CD를 삽입하고, Patch CD Update를 클릭합니다.
  21. SUSE의 시스템 관리 툴인 YaST2를 실행합니다.
    • SUSE > System > YaST2을 선택합니다. (“SUSE”는 웃고 있는 도마뱀이 그려진 초록색 원형 버튼으로, 스크린 좌측 하단에
      위치하고 있습니다.)
    • root 패스워드를 묻는 윈도우가 표시됩니다. 패스워드를 입력하고 OK를 클릭합니다.
    • YaST Control Center가 실행됩니다.
  22. YaST Online Update 윈도우가 표시됩니다.
    • 디폴트 설정을 그대로 사용하고, Next를 클릭합니다.
  23. 패치 업데이트 목록 윈도우가 표시됩니다.
    • 다른 시스템 업데이트 작업을 수행하기 전에, 먼저 YaST를 업데이트해야 합니다. 필요한 패키지는 자동으로 선택됩니다.
      이 때 다른 패키지를 선택하지 않도록 합니다.
    • Accept를 클릭합니다.
  24. 온라인 업데이트를 재시작한다는 메시지 윈도우가 표시됩니다.
    • OK를 클릭합니다.
  25. 설치 작업이 성공적으로 완료되었음을 알리는 메시지 윈도우가 표시됩니다.
    • OK를 클릭합니다.
  26. YaST Online Update 윈도우에서 Finish를 클릭합니다.
  27. YaST Online Update 윈도우에서 Close를 클릭합니다.
  28. 21번, 22번 단계의 작업을 반복합니다.
  29. 패치 업데이트 목록 윈도우가 표시됩니다.
    • Accept를 클릭하여 디폴트 설정을 승인합니다.
    • 이 과정에서 팝업 윈도우를 통해 몇 가지 정보가 표시될 수 있습니다. (예: "Make sure you update sendmail.")
      OK
      를 클릭하고 다음 단계로 넘어 갑니다.
    • 이 과정은 꽤 오랜 시간이 걸릴 수 있습니다. 업데이트가 아직 수행 중인 상태에서는 Next 버튼 위에 커서를 가져가면 시계
      모양 아이콘이 표시됩니다.
  30. 설치가 성공적으로 완료되었음을 알리는 윈도우가 표시됩니다.
    • OK를 클릭합니다.
  31. YaST Online Update 스크린에서 Next를 클릭합니다.
    • 인스톨러가 시스템 설정을 기록합니다.
  32. YaST Control Center에서 Close를 클릭합니다.
  33. Log out.
    • SUSE > Logout을 선택합니다.
  34. 업데이트 CD를 제거합니다.
  35. 시스템을 리부트합니다.
    • 그래픽 로그인 스크린에서 Menu를 클릭합니다.
    • Shutdown을 선택합니다.
    • Restart computer를 선택합니다.
    • root 패스워드를 입력합니다.
    • OK를 클릭합니다.
  36. 축하합니다! Linux 소프트웨어의 설치가 완료되었습니다.

설치 결과의 검증

위에서 설명된 모든 과정을 완료했다면, Oracle Database 10g 에 필요한 모든 패키지와 업데이트가 적용된 상태입니다.
설치 결과의 검증을 위해 아래 작업을 수행합니다.

커널 버전 요구사항: 2.4.21-138 (or later)

아래 명령을 수행하여 커널 버전을 점검합니다:

uname -r

Ex:
# uname -r
k_smp-2.4.21-138

기타 패키지의 버전은 아래와 동일하거나 그 이후의 버전이어야 합니다:

  • gcc-3.2.2-38
  • make-3.79
  • binutils-2.12
  • openmotif-2.2.2-124

시스템에 설치된 패키지의 버전을 확인하기 위해, root 계정에서 아래와 같이 명령을 입력합니다:

rpm -q gcc make binutils openmotif

Ex:  
# rpm rpm -q gcc make binutils openmotif
gcc-3.2.2-38
make-3.79.1-407
binutils-2.12.90.0.15-50
openmotif-2.2.2-124

패키지가 설치되지 않았거나 위에 명시된 것보다 이전 버전인 경우, SUSE Linux Portal에서 업데이트를 다운로드하여 설치하시기
바랍니다.


제 II 부: 오라클 환경을 위한 Linux 설정

Linux 소프트웨어의 설치가 완료되었다면, 다음에는 오라클 환경의 설정 작업을 수행할 차례입니다.
이 섹션에서는 Oracle Database 10g 를 위해 Linux를 설정하는 과정을 설명합니다.

시스템 요구사항의 검증

시스템이 Oracle Database 10g 의 최소 요구사항을 만족하는지 확인하기 위해, root 계정으로 로그인하고 아래 명령을 수행합니다.

메모리와 swap 공간을 확인하기 위해서 아래와 같이 실행합니다:

grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo

Ex:
# grep MemTotal /proc/meminfo
MemTotal:       512236 kB
# grep SwapTotal /proc/meminfo
SwapTotal:     1574360 kB

최소 메모리 요구사양은 512MB, swap 공간의 최소 요구사항은 1GB입니다. swap 공간은 2GB 이하 메모리를 장착한 시스템의 경우 메모리 용량의 2배로, 2GB를 넘는 메모리를 장착한 시스템의 경우 메모리 용량의 1~2배 사이의 용량으로 설정되어야 합니다.

또 Oracle Database 10g 소프트웨어를 위해 2.5 GB의 공간이 필요하며, 이와 별도로 데이타베이스를 위해 1.2 GB의 추가 공간이 요구됩니다. /tmp 디렉토리에는 최소한 400 MB의 여유 공간이 있어야 합니다. 디스크 여유 공간을 확인하기 위해, 아래와 같이 명령을 수행합니다:

df -h

Ex:
# df -h
Filesystem        Size  Used Avail Use% Mounted on
/dev/sda3         6.8G  1.3G  5.2G  20% /
/dev/sda1         99M   17M   77M  18% /boot

위의 예에서는 /tmp 디렉토리가 별도 파일시스템에 구현되어 있지 않고, root 파일시스템에 포함되어 있습니다. 디스크 여유공간이 5.2 GB이므로, 설치에 필요한 공간(2.5 + 1.2 + 0.4 = 4.1GB)은 충분합니다.

오라클 그룹 및 사용자 계정 생성

다음으로, Oracle Database 10g 소프트웨어의 설치 및 관리에 사용할 Linux 그룹 및 사용자 계정을 생성합니다. 사용자 계정은 ‘oracle’, 그룹은 ‘oinstall’과 ‘dba'로 명명합니다. root 계정으로 아래 명령을 실행합니다:

/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/useradd -m -g oinstall -G dba oracle
id oracle

Ex:
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oinstall -G dba oracle
# id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)

오라클 계정의 패스워드를 설정합니다:

passwd oracle

Ex:
# passwd oracle
Changing password for user oracle.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

디렉토리의 생성

이제 Oracle 10g 소프트웨어와 데이타베이스 파일을 저장할 디렉토리를 생성할 차례입니다. 본 문서는 Optimal Flexible Architecture (OFA)의 디렉토리 명명법을 준수하고 있습니다. OSF 표준에 대한 자세한 정보는 Oracle Database 10g Installation Guide for UNIX SystemsAppendix D 를 참고하시기 바랍니다 .

모든 디렉토리는 root 파일 시스템에 생성하는 것으로 가정합니다. 이것은 일반적으로 권장되는 구성은 아니지만, 예제를 단순화함으로써 이해를 돕기 위해 설정한 것입니다. 일반적으로 오라클 디렉토리는 별도의 파일 시스템에 생성하는 것이 권장됩니다.

root 계정에서 아래 명령을 실행합니다t:

mkdir -p /u01/app/oracle
mkdir -p /u02/oradata
chown -R oracle:oinstall /u01/app/oracle /u02/oradata
chmod -R 775 /u01/app/oracle /u02/oradata

Ex:
# mkdir -p /u01/app/oracle
# mkdir -p /u02/oradata
# chown -R oracle:oinstall /u01/app/oracle /u02/oradata
# chmod -R 775 /u01/app/oracle /u02/oradata

Linux 커널 매개변수의 설정

다른 UNIX 시스템과 달리, Linux 운영체제에서는 시스템이 실행 중인 상태에서 대부분의 커널 매개변수를 수정할 수 있습니다.
커널 매개변수를 변경한 뒤에 시스템을 리부팅할 필요도 없습니다. Oracle Database 10g 가 요구하는 커널 매개변수 설정이 아래와 같습니다. 아래 설정된 수치는 최소값을 의미하며, 시스템이 아래 명시된 것보다 높은 수치로 설정되어 있는 경우에는 변경하지 마시기 바랍니다.

kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

본 문서의 설명대로 Linux 운영체제를 설치한 경우라면 커널 매개변수가 디폴트 값으로 설정되어 있으므로, root로 로그인한 후
아래 명령을 복사하여 붙여 넣는 방법으로 실행할 수 있습니다.

cat >> /etc/sysctl.conf <<EOF
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
EOF
/sbin/sysctl -p

Ex:
# cat >> /etc/sysctl.conf <<EOF
> kernel.shmall = 2097152
> kernel.shmmax = 2147483648
> kernel.shmmni = 4096
> kernel.sem = 250 32000 100 128
> fs.file-max = 65536
> net.ipv4.ip_local_port_range = 1024 65000
> EOF
# /sbin/sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
kernel.sysrq = 0
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

설정을 확인하기 위해 아래 명령을 실행합니다:

/sbin/sysctl -a | grep shm
/sbin/sysctl -a | grep sem
/sbin/sysctl -a | grep file-max
/sbin/sysctl -a | grep ip_local_port_range

Ex:
# /sbin/sysctl -a | grep shm
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shm-use-bigpages = 0
# /sbin/sysctl -a | grep sem
kernel.sem = 250        32000   100     128
# /sbin/sysctl -a | grep file-max
fs.file-max = 65536
# /sbin/sysctl -a | grep ip_local_port_range
net.ipv4.ip_local_port_range = 1024     65000

시스템의 매개변수가 위에 명시된 값보다 낮게 설정된 경우, /etc/sysctl.conf의 매개변수를 추가하거나 수정해야 합니다.
작업이 완료되면, 아래 명령을 실행하여 변경된 설정을 반영시킵니다:

/sbin/sysctl -p

Novell SUSE Linux 운영체제의 경우 아래 명령을 사용합니다:

				   /sbin/chkconfig boot.sysctl on

oracle 사용자 계정의 Shell Limit 설정

오라클은 Linux 계정 별로 실행되는 프로세스와 열린 파일의 수를 제한하는 것을 권장합니다. 이를 위해, root 계정에서 아래 명령을
복사하여 붙여 넣는 방법으로 실행합니다:

cat >> /etc/security/limits.conf <<EOF
oracle               soft    nproc   2047
oracle               hard    nproc   16384
oracle               soft    nofile  1024
oracle               hard    nofile  65536
EOF

cat >> /etc/pam.d/login <<EOF
session    required     /lib/security/pam_limits.so
EOF

RHEL 2.1 / 3의 경우, 아래 명령을 사용합니다:

cat >> /etc/profile <<EOF
if [ \$USER = "oracle" ]; then  
   if [ \$SHELL = "/bin/ksh" ]; then
       ulimit -p 16384
       ulimit -n 65536
   else
       ulimit -u 16384 -n 65536
   fi
   umask 022
fi
EOF

cat >> /etc/csh.login <<EOF
if ( \$USER == "oracle" ) then
   limit maxproc 16384
   limit descriptors 65536
   umask 022
endif
EOF

SLES8의 경우, 아래 명령을 사용합니다:

cat >> /etc/profile.local <<EOF
if [ \$USER = "oracle" ]; then  
   if [ \$SHELL = "/bin/ksh" ]; then
       ulimit -p 16384
       ulimit -n 65536
   else
       ulimit -u 16384 -n 65536
   fi
   umask 022
fi
EOF

cat >> /etc/csh.login.local <<EOF
if ( \$USER == "oracle" ) then
   limit maxproc 16384
   limit descriptors 65536
   umask 022
endif
EOF

버그를 피하자! (Novell SUSE Linux에만 해당)

SLES8 및 SLES9 운영체제에는 /etc/services에 예약된 포트 설정으로 인해 Oracle Enterprise Manager 10g 의 설치가 실패하는 버그가 존재합니다. OEM DBConsole은 포트 1830을 필요로 하며, SUSE 환경에는 이 포트가 이미 /etc/services에 예약되어 있습니다. 이 버그에 대한 문서는 MetaLink(bug# 3513603)에서 확인하실 수 있습니다.

설치 과정에서의 문제를 예방하기 위해, Oracle Database 10g 소프트웨어를 설치하기 전에 root로 로그인하여 /etc/services 파일의 포트 1830~1849 부분을 코멘트 처리합니다. (변경 내용이 확실히 반영되도록 하기 위해 서버를 리부팅하는 것이 바람직합니다.)

oracle 계정을 위한 환경변수

오라클 제품을 사용하기 위해서 몇 가지 환경변수의 설정이 필요합니다. 데이타베이스 서버에서 설정해야 하는 환경변수가 아래와 같습니다:

ORACLE_BASE
ORACLE_HOME
ORACLE_SID
PATH

하나의 서버에 여러 가지의 오라클 제품 또는 데이타베이스를 운영하는 경우에는, ORACLE_HOME, ORACLE_SID, PATH 변수를 변경해야 합니다. ORACLE_BASE 변수는 변경되어서는 안되며, 변경이 필요한 경우 로그인 프로파일에서 설정해야 합니다. 오라클은 환경변수의 설정을 위한 유틸리티(oraenv)를 제공하고 있습니다.

ORACLE_BASE 변수를 로그인 프로파일에 추가하기 위해, oracle 계정으로 로그인한 뒤 (bash 또는 ksh을 사용하는 경우) bash_profile 또는 .profile 파일에 아래 라인을 추가합니다:

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

또는 (csh을 사용하는 경우) .login 파일에 아래 라인을 추가합니다:

setenv ORACLE_BASE /u01/app/oracle

변경 내역은 oracle 계정으로 다시 로그인하는 시점에 반영됩니다. 현재 세션의 변경 내역을 활성화하려면, 커맨드 라인에서 명령을
실행하면 됩니다.


제 III 부: 오라클의 설치

Oracle Database 10g는 OTN에서 다운로드할 수 있습니다. 오라클은 개발 및 테스트용 라이센스를 무료로 제공합니다. 하지만 기술지원은 제공되지 않으며, 운영 환경에서의 사용은 허용되지 않습니다. 상세한 라이센스 조건은 OTN에서 확인하실 수 있습니다.

먼저 Oracle Database 10g 소프트웨어의 배포본을 서버에 직접 다운로드하는 방법을 설명합니다.

로그인 UI를 통해 oracle 계정으로 로그인합니다.

Oracle Database 10g 배포본을 저장할 디렉토리를 생성합니다:

mkdir 10g _db

OTN으로부터 Oracle Database 10g 를 다운로드하기 위해, 브라우저에서 다음 URL을 입력합니다. (Mozilla를 통해서도 다운로드 가능합니다.) http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/linuxsoft.html. Eligibility Export Restrictions 페이지를 작성하고 OTN License Agreement를 숙지합니다. 조건에 동의하는 경우, I Accept를 클릭합니다.

ship.db.cpio.gz 링크를 클릭하고, 위에서 생성한 디렉토리(10g _db)에 파일을 저장합니다. OTN에 로그인하지 않은 경우에는,
로그인이 필요하다는 프롬프트가 뜨게 됩니다.

파일의 압축을 풉니다:

cd 10g _db
gunzip ship.db.cpio.gz
cpio -idmv < ship.db.cpio

소프트웨어의 설치

오라클 계정을 사용하여 로그인 합니다.

database name(ORACLE_SID)을 입력합니다. 일반적으로 5 문자 이하의 이름이 사용되며, 여기에서는 demo1이라는 이름을 사용하기로 합니다.

환경변수를 설정합니다:

  • Bourne and Korn shells
    ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
    ORACLE_SID=demo1; export ORACLE_SID
    
    RHEL4 / SLES9의 경우:
    LD_ASSUME_KERNEL=2.4.19; export LD_ASSUME_KERNEL
    
  • C shell
    setenv ORACLE_BASE /u01/app/oracle
    setenv ORACLE_SID demo1
    
    RHEL4 / SLES9의 경우:
    setenv LD_ASSUME_KERNEL 2.4.19

RHEL4 관련 주의 사항: Oracle Universal Installer는 설치 전에 운영체제의 버전을 점검하고 지원 가능 여부를 검증합니다.
Oracle Database 10g 10.1.0.3의 Installer는 RHEL4가 지원 가능한 버전임을 인식하지 못합니다. 이 경우, runInstaller를 실행하기 전에
아래 작업을 수행해야 합니다.

cp /etc/redhat-release /etc/redhat-release.orig
cat > /etc/redhat-release << EOF
Red Hat Enterprise Linux AS release 3 (Taroon)
EOF

Oracle Database 10g 소프트웨어의 압축을 푼 디렉토리로 이동합니다.

Ex:
$ cd $HOME/10g _db

Disk1 디렉토리로 이동합니다.

Ex:
$ cd Disk1

Oracle Universal Installer를 시작합니다.

$ ./runInstaller

  1. Welcome
    • Next를 클릭합니다.
  2. Specify Inventory Directory and Credentials
    • 이 가이드의 설명을 그대로 따라 했다면, 디폴트 설정을 사용해도 무방합니다. 그렇지 않은 경우, 올바른 inventory directory를 입력합니다.
    • operating system group name으로 oinstall을 입력합니다.
  3. Oracle을 서버에 처음 설치한 경우라면, orainstRoot.sh 스크립트를 root 계정에서 실행해야 한다는 팝업 창이 표시됩니다.
    root로 로그인한 뒤, 팝업 창에 명시된 디렉토리로 이동하여 스크립트를 실행합니다.
  4. Specify File Locations
    • 이 가이드의 설명을 그대로 따라 했다면, 디폴트 설정을 사용해도 무방합니다.
      그렇지 않은 경우, Source 경로와 Destination 경로가 올바르게 설정되었는지 확인합니다.
  5. Select Installation Type
    • 디폴트 설정(Enterprise Edition)을 그대로 사용합니다.
  6. Product-specific Prerequisite Checks
    • 이 가이드의 설명을 그대로 따라 했다면, 점검 작업에서 아무런 문제가 발생되지 않을 것입니다. 점검 작업이 실패한 경우,
      다음 단계로 진행하기 전에 문제의 원인을 확인합니다. (RHEL4 운영체제에서 binutils, gcc, openmotif에 대한 점검작업이 실패한 경우에는 경고 메시지를 무시하고 다음 단계로 진행합니다. SLES9에서 openmotif에 대한 점검작업이 실패한 경우에는 경고 메시지를 무시하고 다음 단계로 진행합니다.)
  7. Select Database Configuration
    • 디폴트 설정(Create a starter database, General Purpose)을 그대로 사용합니다.
  8. Specify Database Configuration Options
    • 데이타베이스의 Global Database Name을 입력합니다. ORACLE_SID와 서버의 domain name을 연결하여 명명해야 합니다. (예를 들어 ORACLE_SID가 demo1이고 domain name이 orademo.org라면, Global Database Name은 demo1.orademo.org가 됩니다.)
    • Global Database Name를 입력하면, SID는 자동으로 입력됩니다.
    • 디폴트 Database Character Set을 그대로 사용합니다.
    • Create database with sample schemas을 선택합니다.
  9. Select Database Management Option
    • Use Database Control for Database Management을 사용합니다.
  10. Specify Database File Storage Option
    • File System을 선택하고, 데이타베이스가 사용할 경로를 입력합니다 (예: /u02/oradata)
  11. Specify Backup and Recovery Options
    • Do not enable Automated backups를 선택합니다.
  12. Specify Database Schema Passwords
    • Use the same password for all the accounts를 선택합니다.
    • 패스워드를 반복 입력합니다.
  13. Summary
    • 설치되는 제품에 대한 요약이 제공됩니다.
    • Install을 클릭합니다.
  14. Install
    • 오라클 소프트웨어의 설치가 진행되는 과정에 여러 단계의 스크린이 표시됩니다.
    • 설치 과정의 마지막 단계에서 팝업 창을 통해 설정 정보가 표시됩니다. Enterprise Manager URL을 확인한 후 OK를 클릭하여 창을 닫습니다.
    • "Setup Privileges" 팝업 창을 통해 root 계정으로 configuration script를 실행해야 한다는 메시지가 표시됩니다.
      root로 로그인하여 팝업 창에 명시된 디렉토리로 이동한 뒤 root.sh 스크립트를 실행합니다. 스크립트에서 local bin directory의 위치를 묻는 프롬프트가 뜨면, 디폴트 값을 승인하고 Enter를 누릅니다. 스크립트의 실행이 완료되면 Setup Privileges 창으로 돌아가 OK를 클릭합니다 (아래 그림 참조.)
  15. End of Installation
    • 요약 화면에 표시된 URL을 확인하고 Exit를 클릭합니다.
  16. 축하합니다! 이것으로 Oracle 10g 데이타베이스의 설치가 완료되었습니다.


제 IV 부: 스토리지의 설정

제 3부에서 생성한 데이타베이스는 하나의 파일시스템(/u02/oradata)만을 사용합니다. 하지만 오라클 데이타베이스의 실제 스토리지 설정에는 여러 가지 방법이 가능합니다.

제 4부에서는 데이타베이스의 디스크 스토리지를 설정하는 방법에 대해 설명합니다. 특히 파일시스템을 추가하는 구성과 Automatic Storage Management (ASM)을 중점적으로 설명하게 될 것입니다. 로우 디바이스(raw device)를 사용한 구성과 Oracle Cluster File System (OCFS)에 대한 설명은 향후 작성될 Oracle Real Application Clusters 가이드 문서에 포함될 예정입니다.

파일시스템

파일시스템은 오라클 데이타베이스의 데이타 파일, 리두 로그, 컨트롤 파일을 저장하는 가장 일반적인 방법으로 활용됩니다.
파일시스템은 구현이 쉽고 써드 파티 소프트웨어를 이용한 관리가 불필요하다는 장점을 제공합니다.

대부분의 경우, 파일시스템은 Linux 운영체제의 최초 설치과정에서 생성됩니다. 하지만 설치가 완료된 이후에 새로운 파일시스템을
생성해야 하는 상황(예: 새로운 디스크 드라이브를 설치하는 경우)이 종종 발생하기도 합니다.

이 섹션에서는 새로운 파일 시스템을 생성하고, 오라클 데이타베이스에서 이를 활용하는 방법을 설명합니다. (별도로 명시되지 않는 한, 모든 명령은 root 계정으로 실행하는 것으로 가정합니다.)

디스크 파티셔닝

파일 시스템을 생성하려면 빈 디스크 파티션이 필요합니다. 이미 빈 디스크 파티션이 구성되어 있다면, 아래 과정을 생략해도 무방합니다.

아래 내용은 Linux 파일시스템을 위한 새로운 파티션을 생성하는 방법을 설명하고 있습니다. (주의: 디스크 파티셔닝 과정에서의 실수로 인해 하드 디스크의 모든 데이타가 삭제될 수도 있습니다.)

아래 예제에서는 /dev/sdb(파티션이 구성되지 않은 빈 SCSI 디스크)를 사용하여 전체 디스크(36 GB)를 하나의 파티션으로 설정합니다.

Ex:
# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.


The number of cylinders for this disk is set to 4427.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sdb: 255 heads, 63 sectors, 4427 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-4427, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-4427, default 4427):
Using default value 4427

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.

생성된 파티션을 확인합니다:

Ex:
# fdisk /dev/sdb 

The number of cylinders for this disk is set to 4427.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sdb: 255 heads, 63 sectors, 4427 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sdb1             1      4427  35559846   83  Linux

Command (m for help): q

파일시스템의 생성

ext3를 사용하여 새로운 파일시스템을 생성합니다. 다른 파일시스템도 정상적으로 동작하지만, ext3의 경우 시스템 크래시가 발생했을 때 가장 빠른 복구가 가능하다는 장점이 있습니다.

Ex:
# mke2fs -j /dev/sdb1
mke2fs 1.26 (3-Feb-2002)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
4447744 inodes, 8889961 blocks
444498 blocks (5.00%) reserved for the super user
First data block=0
272 block groups
32768 blocks per group, 32768 fragments per group
16352 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632,
        2654208, 4096000, 7962624

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

마운트 포인트의 생성

파일 시스템에는 마운트 포인트(mount point)가 필요합니다. 마운트 포인트란 파일시스템을 시스템의 디렉토리 트리에 “연결(attach)”하는데 사용되는 빈 디렉토리를 의미합니다. 마운트 포인트는 Oracle Flexible Architecture (OFA) 표준에 따라 명명되어야 합니다.
OFA 표준에 대한 자세한 설명은 Oracle 10g Database Installation GuideAppendix D를 참고하시기 바랍니다 .

이미 1 부에서 “/u01”, “/u02”를 디렉토리 명으로 사용했으므로, 여기에서는 “/u03”을 사용하기로 합니다.

Ex:
# mkdir /u03

새로운 파일시스템을 /etc/fstab에 추가

시스템이 부팅될 때 파일시스템이 자동으로 마운트 되도록 하려면, /etc/fstab 파일에 파일시스템과 마운트 포인트에 대한 설정 항목을
추가해야 합니다. 텍스트 편집기를 사용하여 /etc/fstab 파일에 아래와 같이 라인을 추가합니다.

/dev/sdb1         /u03           ext3    defaults       1 1

파일시스템의 마운트

마운트된 파일시스템은 사용이 가능합니다. 파일시스템이 마운트 되기 전에는 파일의 저장이 불가능합니다. 아래 명령을 사용하여
파일시스템을 마운트하고, 사용가능 여부를 확인합니다.

mount /u03
df -h /u03

Ex:
# mount /u03
# df -h /u03
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1             33G   33M  31G   1%   /u03

Oracle 디렉토리의 생성 및 권한 설정

이제 오라클 파일을 저장할 디렉토리를 생성할 차례입니다. 디렉토리 명은 OFA 표준 명명법을 따르며, ORACLE_SID=demo1의 설정을
사용합니다.

mkdir -p /u03/oradata/demo1
chown -R oracle:oinstall /u03/oradata
chmod -R 775 /u03/oradata

파일시스템에 테이블스페이스 생성

이제 파일시스템을 사용할 준비가 완료되었습니다. 다음으로 파일시스템에 데이타베이스 오브젝트를 저장할 테이블스페이스를 생성합니다. SYSTEM 계정으로 데이타베이스에 연결한 뒤, CREATE TABLESPACE 구문을 실행합니다.

Ex:
$ sqlplus

SQL*Plus: Release 10.1.0.2.0 - Production on Sun Jun 13 15:01:08 2004

Copyright (c) 1982, 2004, Oracle.  All rights reserved.

Enter user-name: system
Enter password:

Connected to:
Oracle Database 10g  Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> create tablespace data1
  2  datafile '/u03/oradata/demo1/data1_01.dbf' size 100M
  3  extent management local
  4  segment space management auto;

Tablespace created.

이제 새로운 테이블스페이스에 테이블, 인덱스 등의 데이타베이스 오브젝트를 저장할 수 있습니다.

Ex:
SQL> create table demotab (id number(5) not null primary key,
  2  name varchar2(50) not null,
  3  amount number(9,2))
  4  tablespace data1;
  
Table created.


Automatic Storage Management (ASM)

이제 마지막으로 가장 흥미로운 부분에 대해 설명할 차례입니다. ASM은 Oracle Database 10g 에 추가된 새로운 기능으로, 플랫폼 독립적인 환경에서 파일시스템, 논리적 볼륨 관리자, 소프트웨어 RAID 등의 서비스를 제공합니다. ASM을 이용하여 디스크 스트라이핑(striping) 또는 미러링(mirroring)을 구성하거나, 데이타베이스가 운영 중인 상태에서 디스크를 추가하거나 제거할 수 있으며, 성능병목 요소(hot spot)를 제거하기 위해 자동으로 I/O 로드 밸런싱을 수행하는 것이 가능합니다. ASM은 direct I/O와 asynchronous I/O를 지원하며, Oracle9i에서 처음 구현된 Oracle Data Manager API(단순화된 I/O system call interface)를 통해 구현되었습니다.

AASM은 범용적인 파일시스템이 아니며, 오라클 데이타 파일, 리두 로그, 컨트롤 파일이 저장된 환경에서만 사용 가능합니다.
ASM의 파일의 생성/명명 작업은 데이타베이스(Oracle Managed Files 기능)에 의해 자동 수행될 수도 있고, DBA에 의해 수작업으로
수행될 수도 있습니다. ASM에 저장된 파일은 운영체제에서 접근할 수 없으며, ASM 파일의 백업/복구를 수행하려면 RMAN(Recovery Manager)을 사용해야 합니다.

ASM은 다른 데이타베이스가 접근 가능한 별도의 오라클 인스턴스에 구현됩니다. Linux에서 ASM을 사용하려면 OCSSD 서비스(Oracle Universal Installer에 의해 디폴트로 설치됩니다)가 실행되고 있어야 합니다. ASM의 메모리 요구사항은 매우 낮으며, 대부분의 시스템
환경에서 64 MB만을 사용합니다.

ASM의 설치

Linux 플랫폼에서 ASM을 구성하는 경우, 로우 디바이스(raw device)를 사용하거나, ASMLib 인터페이스를 통해 관리되는 디바이스를
사용할 수 있습니다. 오라클은 사용편의성 및 성능을 고려했을 때 로우 디바이스 대신 ASMLib을 사용하는 것을 권장합니다. ASMLib은 OTN에서 무료로 다운로드 가능합니다. 이 섹션에서는 ASMLib을 사용하여 단순한 형태의 ASM 인스턴스를 설정하고 ASM을 사용한
데이타베이스를 구현하는 방법을 설명합니다.

ASMLib 버전의 확인

ASMLib은 세 가지 Linux 패키지의 형태로 제공됩니다:

  • oracleasmlib - ASM 라이브러리
  • oracleasm-support - ASMLib 관리 유틸리티
  • oracleasm - ASM 라이브러리를 위한 커널 모듈

오라클은 각각의 Linux 배포판 별로 서로 다른 ASMLib 패키지를 제공합니다. 또 운영체제의 각 커널 버전 별로 서로 다른 oracleasm
패키지가 사용됩니다. 어떤 패키지를 사용해야 하는지 확인하기 위해 아래에 설명된 것과 같이 작업을 수행합니다.

먼저, 현재 사용 중인 커널 버전을 확인하기 위해 root 계정으로 로그인하고 아래 명령을 실행합니다:

uname -rm

Ex:
# uname -rm
2.4.9-e.27smp i686

위 실행 예의 경우, Intel i686 CPU 기반 SMP (multiprocessor) 시스템을 위한 2.4.9 커널 버전이 사용되고 있음을 확인할 수 있습니다.

ASMLib 패키지를 적용하기 위해 아래와 같이 작업을 수행합니다:

  1. 웹 브라우저에서 다음 URL을 입력합니다: http://www.oracle.com/technology/tech/linux/asmlib
  2. 사용 중인 Linux 버전의 링크를 클릭합니다.
  3. 사용 중인 Linux 버전의 oracleasmlib, oracleasm-support 패키지를 다운로드 합니다.
  4. 사용 중인 커널 버전의 oracleasm 패키지를 다운로드합니다.
    위 실행 예의 경우 oracleasm-2.4.9-e-smp-1.0.0-1.i686.rpm 패키지를 다운로드해야 합니다.

    다음으로, root 계정으로 아래 명령을 실행하여 패키지를 설치합니다:

    rpm -Uvh oracleasm-kernel_version-asmlib_version.cpu_type.rpm \
    oracleasmlib-asmlib_version.cpu_type.rpm \
    oracleasm-support-asmlib_version.cpu_type.rpm
    
    Ex:
    # rpm -Uvh \
    > oracleasm-2.4.9-e-smp-1.0.0-1.i686.rpm \
    > oracleasmlib-1.0.0-1.i386.rpm \
    > oracleasm-support-1.0.0-1.i386.rpm
    Preparing...                #################################### [100%]
       1:oracleasm-support      #################################### [ 33%]
       2:oracleasm-2.4.9-e-smp  #################################### [ 66%]
    Linking module oracleasm.o into the module path [  OK  ]
       3:oracleasmlib           #################################### [100%]

ASMLib의 설정

ASMLib을 사용하기 전에, 먼저 구성 스크립트를 실행하여 드라이버를 설정해야 합니다. 아래에 설명된 것과 같이 명령을 실행합니다.

# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Fix permissions of Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration            [  OK  ]
Creating /dev/oracleasm mount point                        [  OK  ]
Loading module "oracleasm"                                 [  OK  ]
Mounting ASMlib driver filesystem                          [  OK  ]
Scanning system for ASM disks                              [  OK  ]

ASMLib 드라이버를 아래와 같이 활성화합니다.

# /etc/init.d/oracleasm enable
Writing Oracle ASM library driver configuration            [  OK  ]
Scanning system for ASM disks                              [  OK  ]

ASM 디스크의 구성

다음으로, ASM 드라이버가 사용할 디스크를 설정합니다. 여기에서는 파티션도 설정되지 않은 빈 디스크를 사용하고 있음에 주의하시기
바랍니다. ASM에 디스크 파티션을 사용하는 것도 가능하지만 권장되지는 않습니다.

root 계정으로 아래 명령을 실행하여, ASMLib에서 사용할 디스크를 설정합니다:

/etc/init.d/oracleasm createdisk DISK_NAME device_name

(주의: DISK_NAME은 대문자로 입력합니다. 소문자를 사용하는 경우 ASM 인스턴스에서 디스크를 인식하지 못하는 버그가 존재합니다.)

Ex:
# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb
Marking disk "/dev/sdb" as an ASM disk                     [  OK  ]
# /etc/init.d/oracleasm createdisk VOL2 /dev/sdc
Marking disk "/dev/sdc" as an ASM disk                     [  OK  ]
# /etc/init.d/oracleasm createdisk VOL3 /dev/sdd
Marking disk "/dev/sdd" as an ASM disk                     [  OK  ]
# /etc/init.d/oracleasm createdisk VOL4 /dev/sdf
Marking disk "/dev/sdf" as an ASM disk                     [  OK  ]
# /etc/init.d/oracleasm createdisk VOL5 /dev/sdg
Marking disk "/dev/sdg" as an ASM disk                     [  OK  ]
# /etc/init.d/oracleasm createdisk VOL6 /dev/sdh
Marking disk "/dev/sdh" as an ASM disk                     [  OK  ]

TASMLib에서 사용하도록 설정된 디스크의 목록을 확인하는 예가 아래와 같습니다.

# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
VOL4
VOL5
VOL6

이것으로 ASMLib의 설치 및 디스크 설정이 완료되었습니다. 이제 ASM 인스턴스를 생성하고, ASM을 사용하는 데이타베이스를 구현할 수 있습니다. Data Base Configuration Assistant (DBCA)을 이용하면 이 작업을 간단하게 수행할 수 있습니다.

oracle 계정으로 로그인하고 DBCA를 실행합니다:

$ dbca

  1. Welcome
    • Next를 클릭합니다
  2. Operations
    • Create a Database를 선택합니다.
  3. Database Templates
    • General Purpose를 선택합니다.
  4. Database Identification
    • Global Database Name을 입력합니다.
  5. Management Options
    • Configure the Database with Enterprise Manager를 선택합니다.
    • Use Database Control for Database Management를 선택합니다.
  6. Database Credentials
    • Use Same Password for All Accounts를 선택합니다.
    • 패스워드를 설정합니다.
  7. Storage Options
    • Automatic Storage Management (ASM)를 선택합니다.
  8. Create ASM Instance
    • ASM 인스턴스의 패스워드를 설정합니다.
  9. 9. DBCA가 ASM 인스턴스를 생성 및 시작한다는 팝업 창이 표시됩니다.
    • OK를 클릭합니다.
  10. 10. ASM 인스턴스가 생성되는 동안 팝업 진행 창이 표시됩니다.
  11. ASM Disk Groups
    • ASM 인스턴스가 아직 생성되지 않은 상태이므로, 사용 가능한 디스크 그룹이 없다는 메시지 창이 표시됩니다.
    • Create New를 클릭합니다.
  12. Create Disk Group
    • Disk Group Name
      - 디스크 그룹 명(예: DATA1)을 입력합니다.
    • Redundancy
      - High는 데이타를 2중으로 미러링 합니다.
      - Normal은 기본적인 미러링 구성입니다.
      - External은 ASM의 디스크를 미러링 하지 않습니다. 이 옵션은 일반적으로 하드웨어 RAID 어레이가 구성된 경우에
      사용됩니다.
    • Select Member Disks
      - ASMLib 디스크의 위치를 수작업으로 지정해 주어야 합니다. Change Disk Discovery Path를 클릭합니다.
      -
      팝업 창을 통해 Disk Discovery Path를 입력합니다. 아래와 같이 Disk Discovery Path를 'ORCL:*'로 변경합니다.
      - OK를 클릭합니다.
    • 다시 Selected Member Disks 윈도우로 돌아갑니다. 사용할 ASMLib 디스크가 목록에 포함되었는지 확인합니다.
      체크박스를 클릭하여 디스크 그룹에 사용할 디스크를 선택합니다. 작업이 완료되면 OK를 클릭합니다.
  13. ASM Disk Groups
    • ASM Disk Groups 윈도우로 돌아갑니다. 앞 단계에서 생성한 디스크 그룹이 목록에 포함되었는지 확인합니다.
    • 디스크 그룹의 체크박스를 클릭합니다. (여기에서는 하나의 디스크 그룹만을 사용하는 것으로 합니다.)
    • Next를 선택합니다.
  14. Database File Locations
    • Use Oracle-Managed Files를 선택합니다.
    • 생성된 디스크 그룹에 Database Area가 설정되었는지 확인합니다. (플러스 기호로 시작됩니다. 예: “+DATA1”)
  15. Recovery Configuration
    • Specify Flash Recovery Area를 선택합니다.
      - Flash Recovery Area—Flash Recovery를 위해 사용할 ASM 디스크 그룹을 입력합니다.
      - Flash Recovery Area Size—디폴트 설정(2048)을 그대로 사용합니다.
    • 아카이브로그 모드를 사용하려는 경우 Enable Archiving을 선택합니다. 테스트 용도로만 사용하려는 경우라면 선택하지
      않고 다음 단계로 진행합니다.
  16. Database Content
    • Sample Schemas를 선택합니다.
    • Custom Script를 사용하지 않으므로 Next를 클릭합니다.
  17. Initialization Parameters
    • Next를 클릭합니다.
  18. Database Storage
    • Next를 클릭합니다.
  19. Creation Options
    • 디폴트 설정(Create Database)을 그대로 사용하고 Finish를 클릭합니다.
  20. Confirmation
    • Database Details 정보를 확인한 후 OK를 클릭합니다.
  21. DBCA가 수행할 작업 목록과 진행 상황을 표시합니다. 데이타베이스를 생성하는 작업은 하드웨어 환경에 따라 수 분에서 수
    시간이 소요됩니다.
  22. 데이타베이스 생성이 완료되었다는 메시지와 함께 요약 정보가 표시됩니다. Enterprise Manager URL을 확인한 후 Exit
    클릭합니다.


결론

이제 데이타베이스를 실행하고 Oracle Database 10g 가 제공하는 새로운 기능을 체험해 보기 위한 모든 준비가 완료되었습니다.
제일 먼저, 웹 인터페이스를 기반으로 전혀 새롭게 재작성된 Oracle Enterprise Manager를 확인해 보시기 바랍니다.
오라클 데이타베이스의 사용 방법에 익숙하지 않은 경우, Oracle Database 10g Concepts Guide2-Day DBA 가이드 를 참고하시면 도움이 됩니다. OTN은 10g 의 활용도를 극대화하기 위한 다양한 가이드를 제공하고 있습니다.
필자는 개인적으로, Arup Nanda의 "Oracle Database 10g : DBA를 위한 20가지 기능"을 추천합니다.


부록

SQL*Plus를 이용한 데이타베이스의 접근

oracle 계정으로 Linux 시스템에 로그인하고 아래와 같이 환경 변수를 설정합니다.

Set the Oracle environment variables:

$ export ORACLE_BASE=/u01/app/oracle
$ export ORACLE_SID=demo1
$ export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1
$ export PATH=$PATH:$ORACLE_HOME/bin

SQL*Plus를 실행합니다:

$ sqlplus

SQL*Plus: Release 10.1.0.2.0 - Production on Sat Jun 5 16:59:21 2004

Copyright (c) 1982, 2004, Oracle.  All rights reserved.

Enter user-name: / as sysdba

Connected to:
Oracle Database 10g  Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> 

Oracle Enterprise Manager 10g Database Control의 사용

웹 브라우저에서 설치과정에서 제공된 URL을 입력합니다.

Ex:
http://ds1.orademo.org:5500/em (데이타베이스에 DNS가 설정되지 않은 경우, 호스트 네임 대신 IP 주소를 입력해야 합니다.)

User Name: SYS
Password: <설치과정에서 입력한 패스워드>
Connect As: SYSDBA

<Login>을 클릭합니다

Oracle Enterprise Manager 10g Database Control의 놀라운 세계에 오신 것을 환영합니다!

Oracle Enterprise Manager Database Control의 시작 및 중단:

$ emctl start dbconsole
$ emctl stop dbconsole

iSQL*Plus를 이용한 데이타베이스 접근

iSQL*Plus는 SQL*Plus의 웹 기반 버전입니다. iSQL*Plus를 사용하려면, OEM 콘솔의 Related Links 섹션에 있는 iSQL* Plus 링크를
클릭하거나, 설치 과정에서 제공된 iSQL*Plus URL을 브라우저에 입력합니다.

Ex:
http://ds1.orademo.org:5560/isqlplus (데이타베이스에 DNS가 설정되지 않은 경우, 호스트 네임 대신 IP 주소를 입력해야 합니다.)

User Name: SYSTEM
Password: <설치과정에서 입력한 패스워드>

<Login>을 클릭합니다.

Workspace 박스에 SQL 명령을 입력한 뒤 Execute를 클릭합니다.

iSQL*Plus의 시작 및 중단:

$ isqlplusctl start
$ isqlplusctl stop

Listener의 시작 및 중단:

리스너(listener)는 클라이언트의 요청을 접수하고 인증 과정을 거친 후 데이타베이스 연결을 생성하는 역할을 담당합니다.
OEM과 ISQL*Plus를 사용하려면 리스너가 실행되고 있어야 합니다.

$ lsnrctl start
$ lsnrctl stop

데이타베이스의 시작 및 중단:

데이타베이스를 시작/중단하는 가장 간단한 방법은 OEM 콘솔을 이용하는 것입니다. 같은 작업을 커맨드 라인에서 수행하려면 SQL*Plus에 oracle 계정으로 로그인하고 아래와 같이 실행합니다:

데이타베이스의 시작:

$ sqlplus

SQL*Plus: Release 10.1.0.2.0 - Production on Sun Jun 13 22:27:48 2004

Copyright (c) 1982, 2004, Oracle.  All rights reserved.

Enter user-name: / as sysdba
Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area  188743680 bytes
Fixed Size                   778036 bytes
Variable Size             162275532 bytes
Database Buffers           25165824 bytes
Redo Buffers                 524288 bytes
Database mounted.
Database opened.
SQL> exit

데이타베이스의 중단:

$ sqlplus

SQL*Plus: Release 10.1.0.2.0 - Production on Sun Jun 13 22:25:55 2004

Copyright (c) 1982, 2004, Oracle.  All rights reserved.

Enter user-name: / as sysdba

Connected to:
Oracle Database 10g  Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit

오라클 프로세스의 목록 조회:

$ ps ?fuoracle

ocssd.bin 프로세스란 무엇인가?

Oracle Cluster Synchronization Services (OCSSD)는 ASM을 사용하는 RAC 및 단일 인스턴스 데이타베이스에서 요구되는 서비스입니다. OCCSD는 디폴트로 설치되며, 매우 적은 시스템 리소스만을 사용합니다. OCCSD는 /etc/inittab을 통해 설정 가능합니다.
이 프로세스는 시스템이 부팅될 때마다 자동으로 시작됩니다. 오라클은 ASM을 사용하지 않는 경우라도 OCCSD를 비활성화하는 것을
권장하지 않습니다.


John Smiley (smileyj@tusc.com)는 TUSC Inc.의 Technical Management Consultant입니다. John은 오라클 기반 시스템에 대한 18년 간의 DBA, 개발자, 프로젝트 관리자 경력을 보유하고 있습니다. John은 UNIX 시스템의 고급 성능 튜닝, Oracle Real Application Clusters, PL/SQL 프로그래밍, 용량 계획, 데이타베이스의 물리/논리 설계 등을 전문 분야로 하고 있습니다.

'DataBase > Oralce' 카테고리의 다른 글

오라클(OCP)10g 설치방법  (0) 2008.10.01
Oracle 실행 및 종료, lsnrctl 실행  (0) 2008.10.01
oracle 10g+linux as4설치방법  (0) 2008.10.01
lsnrctl  (0) 2008.10.01
오라클 RedHat Linux AS 4.4 x86 Oracle 9i 설치  (0) 2008.10.01
oracle sqlplus 명령 모음  (0) 2008.10.01
Oracle SYS, System 비번 잃어버렸을때  (0) 2008.10.01
« PREV : 1 : 2 : 3 : 4 : 5 : NEXT »