Marcel Moolenaar <marcel@scc.nl> Àú.
http://www.scc.nl/~marcel/howto-oracle.html

±è½Â¿µ <nobreak@kr.FreeBSD.org> ¿ª.
1999³â 7¿ù 6ÀÏ

0. ¸Ó¸®¸»

º» HOWTO ¹®¼­´Â ´ÙÀ½ ¹öÀüÀÇ ¿À¶óŬ¿¡ Àû¿ëµË´Ï´Ù: ¿©±â¿¡ ³ª¿­µÇÁö ¾ÊÀº ¿À¶óŬ ¹öÀü¿¡ ´ëÇؼ­ º» ¹®¼­ÀÇ ³»¿ëÀ» Àû¿ëÇÒ ¼ö ¾ø´Ù´Â ¶æÀº ¾Æ´ÏÁö¸¸ È®½ÅÇÒ ¼ö´Â ¾ø½À´Ï´Ù.

1. ¸®´ª½º ȯ°æ ¼³Ä¡

Æ÷Æ® ÄÝ·º¼ÇÀ¸·Î Á¦°øµÇ´Â linux_base¿Í linux_devtools¸¦ ¼³Ä¡ÇϽʽÿä. º» Æ÷Æ®µéÀº FreeBSD 3.2 ÀÌÈÄ¿¡ Á¦°øµÇ¹Ç·Î, FreeBSD 3.2 ȤÀº ÀÌÀü ¹öÁ¯´ë¸¦ »ç¿ëÇÑ´Ù¸é, Æ÷Æ® ÄÝ·º¼ÇÀ» ¾÷µ¥ÀÌÆ® ÇϽñ⠹ٶø´Ï´Ù. ¾Æ¸¶ FreeBSD ÀÚüµµ ¾÷µ¥ÀÌÆ® ÇÏ±æ ¿øÇÏ°ÚÁö¿ä. ÀÎÅÚ¸®ÀüÆ® ¿¡ÀÌÀüÆ®¸¦ »ç¿ëÇÏ°íÀÚ ÇÑ´Ù¸é, ´ÙÀ½ ÆÐÅ°Áöµµ ¼³Ä¡ÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù:
tcl-8.0.3-20.i386.rpm
°ø½Ä RPM Æ÷Æ®¸¦ ÅëÇØ ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÏ´Â ÀϹÝÀûÀÎ ¸í·ÉÀº ´ÙÀ½°ú °°½À´Ï´Ù:
rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm <package>
ÆÐÅ°Áö ¼³Ä¡°úÁ¤¿¡¼­ ¾î¶°ÇÑ ¿À·ùµµ ¹ß»ýÇÏÁö ¾Ê¾Æ¾ß ÇÕ´Ï´Ù.

ÁÖÀÇ: linux-base Æ÷Æ®´Â /·ÎÀÇ ¸µÅ© /compat/linux/compat/linux¸¦ »ý¼ºÇÕ´Ï´Ù. ¿À¶óŬÀ» ¼³Ä¡Çϱâ Àü¿¡ º» ¸µÅ©¸¦ »èÁ¦Çϼ¼¿ä.

2. ¿À¶óŬ ȯ°æ ¼³Á¤

¿À¶óŬ ¼³Ä¡ Àü¿¡ Àû´çÇÑ È¯°æº¯¼ö ¼³Á¤À» ÇؾßÇÕ´Ï´Ù. º» ¹®¼­´Â ¸®´ª½º¿ë ¿À¶óŬÀ» FreeBSD¿¡¼­ µ¿ÀÛ½ÃÅ°±â À§ÇØ *Ưº°È÷* ÇؾßÇÒ °ÍµéÀ» ´Ù·ç´Âµ¥ ÀÌ´Â ¿À¶óŬ ¼³Ä¡ °¡À̵åÀÇ ³»¿ë°ú´Â Â÷ÀÌ°¡ ÀÖ½À´Ï´Ù.

2.1 Ä¿³Î Æ©´×

¿À¶óŬ ¼³Ä¡ °¡À̵忡 µû¸£¸é °øÀ¯ ¸Þ¸ð¸®ÀÇ ÃÖ´ë ¿ë·®À» ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù¸¸ FreeBSD¿¡¼­´Â À̸¦ À§ÇØ SHMMAX¸¦ »ç¿ëÇÏÁø ¸¶½Ê½Ã¿À. SHMMAX´Â ´ÜÁö SHMMAXPGS¿Í PGSIZE¸¦ °è»êÇϱâ À§ÇØ »ç¿ëµÉ »ÓÀÔ´Ï´Ù. ´ë½Å SHMMAXPGS¸¦ »ç¿ëÇϼ¼¿ä. ´Ù¸¥ ¿É¼ÇµéÀº °¡À̵忡 ¼³¸íµÈ ´ë·Î ÇÏ¿©µµ ÁÁ½À´Ï´Ù. ¿¹¸¦ µé¾î:
options SHMMAXPGS=10000
options SHMMNI=100
options SHMSEG=10
options SEMMNS=200
options SEMMNI=70
options SEMMSL=61
¿À¶óŬÀÌ »ç¿ëµÇ´Â ¿ëµµ¿¡ µû¶ó ÀûÀýÈ÷ ¿É¼ÇÀ» Á¶Á¤Çϼ¼¿ä.

¶ÇÇÑ, ´ÙÀ½ ¿É¼ÇÀÌ Ä¿³Î ¼³Á¤ ÆÄÀÏ¿¡ ¼³Á¤µÇ¾î ÀÖ´ÂÁö È®ÀÎÇϽʽÿä.

options SYSVSHM #SysV shared memory
options SYSVSEM #SysV semaphores
options SYSVMSG #SysV interprocess communication

2.2 ¿À¶óŬ °èÁ¤

´Ù¸¥ °èÁ¤À» ¸¸µéµíÀÌ ¿À¶óŬ °èÁ¤À» ¸¸µå½Ê½Ã¿À. ÀÌ´Â ¿À¶óŬ °èÁ¤¿¡ Ưº°È÷ ¸®´ª½º ½©À» Á¦°øÇϱâ À§ÇÔÀÔ´Ï´Ù. /compat/linux/bin/bashÀ» /etc/shells¿¡ Ãß°¡ÇÑ ÈÄ, ¿À¶óŬ °èÁ¤ÀÇ ½©À» /compat/linux/bin/bash·Î ¼³Á¤ÇϽʽÿÀ.

2.3 ȯ°æ º¯¼ö

ORACLE_HOME°ú ORACLE_SID¿Í °°Àº ÀϹÝÀûÀÎ ¿À¶óŬ º¯¼ö ¿Ü¿¡ ´ÙÀ½ÀÇ È¯°æ º¯¼ö¸¦ ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù:
LD_LIBRARY_PATH=$ORACLE_HOME/lib
CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
PATH=/compat/linux/bin:/compat/linux/sbin: \
     /compat/linux/usr/bin:/compat/linux/usr/sbin: \
     /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin: \
$ORACLE_HOME/bin
.profile¿¡ ¸ðµç ȯ°æº¯¼ö ¼³Á¤À» ³Ö±â ¹Ù¶ø´Ï´Ù. ¿Ï¼ºµÈ ¿¹´Â ´ÙÀ½°ú °°½À´Ï´Ù:
ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=/oracle; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH
ORACLE_SID=ORCL; export ORACLE_SID
ORACLE_TERM=386x; export ORACLE_TERM
CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
export CLASSPATH

PATH=/compat/linux/bin:/compat/linux/sbin: \
     /compat/linux/usr/bin:/compat/linux/usr/sbin:/bin: \
     /sbin:/usr/bin:/usr/sbin:/usr/local/bin: \
$ORACLE_HOME/bin;
export PATH

3. ¿À¶óŬ ¼³Ä¡

¸®´ª½º ¿¡¹Ä·¹ÀÌÅÍÀÇ »ç¼ÒÇÑ Â÷ÀÌ(¿ªÀÚÁÖ: FreeBSD ȯ°æ¿¡¼­ÀÇ ¸®´ª½º ¿¡¹Ä·¹ÀÌÅÍ°¡ ½ÇÁ¦ ¸®´ª½º ȯ°æ°ú 100% °°Áö ¾Ê´Ù´Â)·Î ÀÎÇØ, ÀνºÅç·¯¸¦ ½ÇÇàÇϱâ Àü /var/tmpµð·ºÅ丮¿¡ .oracle µð·ºÅ丮¸¦ ¸¸µé¾î¾ß ÇÕ´Ï´Ù. ´©±¸³ª ¾µ ¼ö ÀÖµµ·Ï Æ۹̼Ç(¿ªÀÚÁÖ: chmod 777 .oracle)À» Á¶Á¤Çϰųª ¼ÒÀ¯ÁÖ(¿ªÀÚÁÖ: chown oracle .oracle)¸¦ oracle »ç¿ëÀÚ·Î ¼³Á¤ ÇϽʽÿä. ¾Æ¹« ¹®Á¦¾øÀÌ ¿À¶óŬÀÌ ¼³Ä¡µÉ °ÍÀÔ´Ï´Ù. ¹®Á¦°¡ »ý±ä´Ù¸é ¿À¶óŬ ¹èÆ÷ÆÇ°ú ¼³Á¤À» ¸ÕÀú Á¡°ËÇØ º¸½Ê½Ã¿À! ¿À¶óŬÀ» ¼³Ä¡ÇÑ ÈÄ, ´ÙÀ½¿¡ ³ª¿À´Â ÆÐÄ¡¸¦ Àû¿ëÇϼ¼¿ä.

ÀÚÁÖ ¹ß»ýµÇ´Â ¹®Á¦´Â TCP ÇÁ·ÎÅäÄÝ ¾îµªÅÍ°¡ Á¤È®È÷ ¼³Ä¡µÇÁö ¾Ê´Â °ÍÀÔ´Ï´Ù. µû¶ó¼­ TCP ¸®½º³Ê°¡ ½ÇÇàµÇÁö ¾Ê´Âµ¥, ´ÙÀ½°ú °°ÀÌ ¹®Á¦¸¦ ÇØ°áÇϽʽÿÀ:


cd $ORACLE_HOME/network/lib
make -f ins_network.mk ntcontab.o
cd $ORACLE_HOME/lib
ar r libnetwork.a ntcontab.o
cd $ORACLE_HOME/network/lib
make -f ins_network.mk install
ÀØÁö¸»°í root.sh¸¦ ´Ù½Ã ½ÇÇà ÇϽʽÿä.

3.1. root.sh ÆÐÄ¡Çϱâ

ÀνºÅç °úÁ¤¿¡¼­ ·çÆ® ±ÇÇÑÀ¸·Î ¼öÇàµÇ¾î¾ß ÇÒ ºÎºÐµéÀº ½© ½ºÅ©¸³Æ® root.sh¿¡ ±â·ÏµÇ¸ç, orainst µð·ºÅ丮¿¡ ¸¸µé¾îÁý´Ï´Ù. ´ÙÀ½ ÆÐÄ¡¸¦ root.sh¿¡ Àû¿ëÇÏ¿© chown ¸í·ÉÀÇ À§Ä¡¸¦ Á¤È®ÇÏ°Ô ¼³Á¤Çϼ¼¿ä.

*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
--- orainst/root.sh Mon Dec 28 15:58:53 1998
***************
*** 31,37 ****
  # This is the default value for CHOWN
  # It will redefined later in this script for those ports
  # which have it conditionally defined in ss_install.h
! CHOWN=/bin/chown

  #
  # Define variables to be used in this script
--- 31,37 ----
  # This is the default value for CHOWN
  # It will redefined later in this script for those ports
  # which have it conditionally defined in ss_install.h
! CHOWN=/usr/sbin/chown

  #
  # Define variables to be used in this script

CD¿¡¼­ ¹Ù·Î ¼³Ä¡ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó¸é, root.shÀÇ ¼Ò½ºÆÄÀÏ(¿ªÀÚÁÖ: root.sh´Â ÀÌ¹Ì Á¸ÀçÇÏ´Â ½ºÅ©¸³Æ®°¡ ¾Æ´Ï¶ó rthd.sh ÆÄÀÏÀ» ±â¹ÝÀ¸·Î »ý¼ºµË´Ï´Ù)¿¡ ÆÐÄ¡¸¦ ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. rthd.sh ÆÄÀÏÀÌ ±×°ÍÀ̸ç orainst µð·ºÅ丮¿¡ ÀÖ½À´Ï´Ù.

3.2 genclntsh ÆÐÄ¡Çϱâ

genclntsh´Â ´ÜÀÏ °øÀ¯ Ŭ¶óÀ̾ðÆ® ¶óÀ̺귯¸®¸¦ »ý¼ºÇϱâ À§ÇØ »ç¿ëµË´Ï´Ù. µ¥¸ð¸¦ ºôµåÇϴµ¥ ÇÊ¿äÇÕ´Ï´Ù. PATH Á¤ÀǸ¦ ÁÖ¼®Ã³¸®Çϱâ À§ÇØ ´ÙÀ½ ÆÐÄ¡¸¦ Àû¿ëÇϼ¼¿ä:

*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
--- bin/genclntsh Tue Dec 22 15:36:49 1998
***************
*** 32,38 ****
  #
  # Explicit path to ensure that we're using the correct commands
  #PATH=/usr/bin:/usr/ccs/bin export PATH
! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH

  #
  # each product MUST provide a $PRODUCT/admin/shrept.lst
--- 32,38 ----
  #
  # Explicit path to ensure that we're using the correct commands
  #PATH=/usr/bin:/usr/ccs/bin export PATH
! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH

  #
  # each product MUST provide a $PRODUCT/admin/shrept.lst

4. ¿À¶óŬ ±¸µ¿

¼³Ä¡°úÁ¤À» ¸¶ÃÆ´Ù¸é, ½ÇÁ¦ ¸®´ª½º»ó¿¡¼­ µ¿ÀÛÇÏ´Â °Í°ú °°ÀÌ ¿À¶óŬÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸®´ª½º¸¦ ¾î¶»°Ô »ý°¢ÇÏ´À³Ä¿¡ µû¶ó ´Ù¸£°ÚÁö¸¸ :) ÁÁµç ½Èµç FreeBSD¿ë ¿À¶óŬÀÌ Áö¿øµÇ±â±îÁö´Â ÀÌ ¹æ¹ý¹Û¿¡ ¾ø½À´Ï´Ù.