Á¦ II ºÎ: ¿À¶óŬ ȯ°æÀ» À§ÇÑ Linux ¼³Á¤

John Smiley¦¢TUSC Inc.

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 SystemsÀÇ Appendix D ¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù .

¸ðµç µð·ºÅ丮´Â root ÆÄÀÏ ½Ã½ºÅÛ¿¡ »ý¼ºÇÏ´Â °ÍÀ¸·Î °¡Á¤ÇÕ´Ï´Ù. À̰ÍÀº ÀϹÝÀûÀ¸·Î ±ÇÀåµÇ´Â ±¸¼ºÀº ¾Æ´ÏÁö¸¸, ¿¹Á¦¸¦ ´Ü¼øÈ­ÇÔÀ¸·Î½á ÀÌÇØ¸¦ µ½±â À§ÇØ ¼³Á¤ÇÑ °ÍÀÔ´Ï´Ù. ÀϹÝÀûÀ¸·Î ¿À¶óŬ µð·ºÅ丮´Â º°µµÀÇ ÆÄÀÏ ½Ã½ºÅÛ¿¡ »ý¼ºÇÏ´Â °ÍÀÌ ±ÇÀåµË´Ï´Ù.

root °èÁ¤¿¡¼­ ¾Æ·¡ ¸í·ÉÀ» ½ÇÇàÇÕ´Ï´Ù:

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 <
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 <
> 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 <
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF

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

RHEL 2.1 / 3ÀÇ °æ¿ì, ¾Æ·¡ ¸í·ÉÀ» »ç¿ëÇÕ´Ï´Ù:

cat >> /etc/profile <
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 <
if ( \$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
EOF

SLES8ÀÇ °æ¿ì, ¾Æ·¡ ¸í·ÉÀ» »ç¿ëÇÕ´Ï´Ù:

cat >> /etc/profile.local <
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 <
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 °èÁ¤À¸·Î ´Ù½Ã ·Î±×ÀÎÇÏ´Â ½ÃÁ¡¿¡ ¹Ý¿µµË´Ï´Ù. ÇöÀç ¼¼¼ÇÀÇ º¯°æ ³»¿ªÀ» Ȱ¼ºÈ­ÇÏ·Á¸é, Ä¿¸Çµå ¶óÀο¡¼­ ¸í·ÉÀ»
½ÇÇàÇÏ¸é µË´Ï´Ù.

Á¦°ø : DBÆ÷Å»»çÀÌÆ® DBguide.net

Ãâó¸í : Çѱ¹¿À¶óŬ

Ãâó : Tong - ¾ÆÈæ ¸Ó¸®¾ÆÆÄ¶û~´ÔÀÇ DBÅë