MaxDB
|
µµÈÀç ¼®¹®È£Èí °ºó(˰ޯ)
v0.0.1, 2004³â 4¿ù 9ÀÏ
1.1. MaxDB ¼Ò°³ ¶database.sarang.net ¿¡¼ Àοë
Ȥ½Ã Adabas D ¶ó´Â DBMS ¿¡ ´ëÇØ¼ ¾Ë°í ÀÖ´Â ºÐÀÌ °è½ÅÁö Àß ¸ð¸£°Ú´Ù. ÀÌ °ÍÀº »ó´çÈ÷ ÃÊâ±â¿¡ Linux ¿ë DBMS ¸¦ ³»¾î ³õÀº ȸ»ç·Î¼ DBMS ¸Å´Ï¾Æ¿Í ¿À·¡µÈ ¸®´ª½º À¯Àúµé¿¡°Ô´Â ¾î´À Á¤µµ ±â¾ïµÇ°í ÀÖ´Â DBMS ÀÔ´Ï´Ù. À̰ÍÀ» R/3 ERP ·Î À¯¸íÇÑ SAP-AG »ç¿¡¼ »çµé¿©¼ »õ·Î °³¹ßÇÏ¿© GPL ·Î ¹ßÇ¥ÇÑ °ÍÀÌ SAP DB ÀÔ´Ï´Ù. ±×·¯´Ï SAP DB ·Î ¹ßÇ¥µÈÁö ºÒ°ú 3³â Á¤µµ¸¸¿¡ À̸¸ÇÑ ¿Ï¼ºµµ¸¦ º¸À̰í ÀÖ´Â °ÍÀÔ´Ï´Ù. ÀϹæÀûÀ¸·Î SAP »ç¿¡¼ °³¹ß ÇÑ °ÍÀ̶ó¸é ÀÌÁ¤µµÀÇ °³¹ß ¼Óµµ¸¦ º¸Àϼö°¡ ¾ø´Â °ÍÀÔ´Ï´Ù. ¿©±â¼ Á¦°øÇÏ´Â Tool µéÀº »ó´çÇÑ Á¤µµÀÇ ¿Ï¼ºµµ¸¦ º¸À̸ç, ´Ù¸¥ ¿©Å¸ »ó¿ë DBMS ¿¡ µÚÁöÁö ¾Ê´Â °ÍÀÔ´Ï´Ù. (ÀÌ·¸°Ô ¸»ÇÏ´Ï Á» ÀÌ»óÇϱº¿ä. ¿ø·¡ »ó¿ë DBMS Àε¥ À̰ÍÀÌ GPL ·Î ¹ßÇ¥µÈ °Í »ÓÀε¥ ¸»ÀÌÁÒ.) ÇöÀç SAP DB ´Â ÁÖ·Î À¯·´ÂÊ ¸Å´Ï¾Æµé »çÀÌ¿¡¼ ¸¹ÀÌ »ç¿ëµÇ°í ÀÖÀ¸¸ç, ÀϹÝÀûÀÎ ¸®´ª½º ÂÊ open source »ç¿ëÀڵ鿡°Ô´Â Àß »ç¿ëµÇ°í ÀÖÁö ¾ÊÀº ½ÇÁ¤ÀÔ´Ï´Ù. °³ÀÎÀûÀ¸·Î »ý°¢ÇÒ¶§ ÀÌÁ¤µµÀÇ ¿Ï¼ºµµ¸¦ Áö´Ï°í ÀÖÀ¸¸é¼, ¶óÀ̼¾½º ÇǸ¦ ¹°Áö ¾Ê¾Æµµ µÈ´Ù´Â ÀåÁ¡À» »ý°¢Çϸé ÃæºÐÈ÷ »ç¿ëÇÒ¸¸ÇÑ °¡Ä¡°¡ ÀÖ´Â DBMS ¶ó°í »ý°¢ÇÒ ¼ö ÀÖÀ¸¸ç, ¾ÕÀ¸·Î ¸¹Àº ¹ßÀüÀÇ ¿©Áö°¡ ÀÖ´Ù°í ÆÇ´ÜµË´Ï´Ù. www.mysql.com ¿¡¼ Àοë
MaxDB by MySQL is a re-branded and enhanced version of SAP DB, SAP AG's open source database. MaxDB is a heavy-duty, SAP-certified open source database that offers high availability, scalability and a comprehensive feature set. MaxDB complements the MySQL database server, targetted for large mySAP ERP environments and other applications that require maximum enterprise-level database functionality. Today, about 5,000 customer installations are using MaxDB technology globally, including Intel, DaimlerChrysler, Braun, Bayer, Colgate, Yamaha, Deutsche Post (the German Post Office) and Toyota South Africa. MaxDB is available without a license fee under the GNU General Public License (GPL). Commercial non GPL licenses are available for users who prefer not to be restricted by the terms of the GPL. Main Benefits: Round-the-clock operation Easy administration No reorganization required Unlimited number of users Unlimited database size Supports all SAP solutions 1.2. History ¶2000³â 8¿ù, SAP AG, SAP DB¸¦ GPL·Î ¸±¸®Áî, SAP DB Release 7.2 2003³â 5¿ù, SAP AG¿Í MySQL AB cross licensing partnership. 2003³â 8¿ù, 'MaxDB¢â'·Î ºê·£µå ¹Ù²Þ. 2003³â 12¿ù, MySQL¿¡ ÀÇÇØ MaxDB¢â ¸±¸®Áî. ¿Ö SAP´Â SAP DB¸¦ ¿ÀǼҽº·Î ¸±¸®Áî Çߴ°¡?
º¯Çذ¡´Â ½Ã´ëÀÇ È帧¼Ó¿¡ µ¥ÀÌÅͺ£À̽º°¡ technology infrastructure¿¡ ±âº»ÀûÀÎ ±â¼úÀÌ µÊ¿¡ µû¶ó µ¥ÀÌÅͺ£À̽º´Â µ¶Á¡ÀûÀ̰ųª, º¹ÀâÇÒ Çʿ䰡 ¾ø°Ô µÇ¾ú´Ù°í ¿¹»óÇÏ¿´´Ù. µû¶ó¼, SAP´Â µ¥ÀÌÅͺ£À̽º ±â¼úÀÌ Çõ½ÅÀûÀ¸·Î ÀÎÁ¤¹ÞÀº ¿ÀǼҽº °³¹ß¹æ½ÄÀ¸·Î ÀÌ·ç¾îÁ®¾ß ÇÑ´Ù°í ÆÇ´Ü, SAP DB¸¦ ¿ÀǼҽºÈ ÇÏ¿´´Ù. 2.1. ´Ù¿î·Îµå ¶Âü°í·Î ¼³Ä¡ ȯ°æÀº Debian/GNU Linux Woody 3.0r2¿¡¼ ÁøÇàÇÏ¿´´Ù.
[Standard installation, Linux (x86) 7.5.00.08] maxdb-all-linux-32bit-i386-7_5_0_8.tgz ÀÌ·¸°Ô ÇϳªÀÇ ÆÄÀϸ¸ ¹ÞÀ¸¸é µÈ´Ù, MS-Windows »ç¿ëÀÚ´Â DBM GUI, SQL Studio¸¦ ¹Þ¾Æ¼ ¼³Ä¡ÇÏ¸é Æí¸®ÇÏ´Ù.
2.2. Standard ¼³Ä¡ ¶root·Î ·Î±×ÀÎÇÏ¿©, ¾Æ¹«°÷¿¡³ª maxdb-all-linux-32bit-i386-7_5_0_8.tgz ÈÀÏÀ» Ç®¾î ³õ´Â´Ù.
$ tar xvzf maxdb-all-linux-32bit-i386-7_5_0_8.tgz $ cd maxdb-all-linux-32bit-i386-7_5_0_8 $ ./SDBINST
Installation of MaxDB Software
*******************************
starting installation Su, Apr 04, 2004 at 09:14:58
operating system: Linux I386 2.4.24 2-686 GLIBC 2.2.5
callers working directory: /root/maxdb-all-linux-32bit-i386-7_5_0_8
installer directory: /root/maxdb-all-linux-32bit-i386-7_5_0_8
archive directory: /root/maxdb-all-linux-32bit-i386-7_5_0_8
existing profiles:
0: Server
1: Runtime For SAP AS
2: DB Analyzer
3: C Precompiler
4: Webtools
5: ODBC
6: JDBC
7: Script Interface
8: Loader
9: XML Indexing Engine
10: all
11: none
please enter profile id:
10 ¹øÀ» ¼±ÅÃÇÏÀÚ.
2.2.1. preparing phase of package Base ¶ÀÌÁ¦ BASE ÆÐŰÁö¸¦ ¼³Ä¡ÇÏ´Â ´Ü°è´Ù.
starting preparing phase of package Base 7.5.00.08 32 bit --------------------------------------------------------- no updatable installation of package "Base" found MaxDB (SAP DB)¸¦ ±¸µ¿À» À§ÇÑ ±×·ì¸íÀ» ¼³Á¤ÇÑ´Ù. - ±×³É ¿£ÅÍ
please enter group name for database programs [sdba]: unknown group - create "sdba" on local machine? (y/n) y MaxDB (SAP DB)¸¦ ±¸µ¿À» À§ÇÑ À¯Àú¸íÀ» ¼³Á¤ÇÑ´Ù. - ±×³É ¿£ÅÍ
please enter owner name for database programs [sdb]: unknown user - create "sdb" on local machine? (y/n) y ÀÚ ÀÌÁ¦ ¼³Ä¡ÇÒ µð·ºÅ͸®¸¦ ¼³Á¤ÇÏÀÚ.
please enter independent data path [/var/opt/sdb/data]: /var/lib/sdb/data directory "/var/lib/sdb/data" does not exist, create? (y/n) y µ¶¸³ÀûÀÎ µ¥ÀÌÅÍ °ø°£À» ÁöÁ¤ÇÑ´Ù. ¿©±â¼´Â /var/lib/sdb/data ·Î ÇÏ¿´´Ù.
please enter independent program path [/opt/sdb/programs]: /var/lib/sdb/programs directory "/var/lib/sdb/program" does not exist, create? (y/n) y µ¶¸³ÀûÀÎ ÇÁ·Î±×·¥µéÀÇ À§Ä¡¸¦ ÁöÁ¤ÇÑ´Ù. ¿©±â¼´Â /var/lib/sdb/programs ·Î ÇÏ¿´´Ù.
2.2.2. preparing phase of package Server Utilities ¶ÀÔ·ÂÇÏ°í ³ª¸é ´ÙÀ½Ã³·³ BASE À¯Æ¿¸®Æ¼°¡ ¼³Ä¡µÈ´Ù.
starting preparing phase of package Server Utilities 7.5.00.08 32 bit --------------------------------------------------------------------- checking interferences to other packages... ok collecting data finished: independent program path: /var/lib/sdb/program owner: sdb group: sdba start extraction test run of "/root/maxdb-all-linux-32bit-i386-7_5_0_8/SDBUTL.TGZ" package Server Utilities successfully checked 2.2.3. preparing phase of package Database Kernel ¶ÀÌÁ¦´Â µ¥ÀÌÅͺ£À̽ºÀÇ Ä¿³ÎÀ» ¼³Ä¡ÇÏ´Â ´Ü°è´Ù.
starting preparing phase of package Database Kernel 7.5.00.08 32 bit -------------------------------------------------------------------- no updatable installation of package "Database Kernel" found please enter dependent path [/opt/sdb/7500]: /var/lib/sdb/kernel_7500 directory "/var/lib/sdb/kernel_7500" does not exist, create? (y/n) y ¿©±â¼´Â /var/lib/sdb/kernel_7500 À¸·Î ÁöÁ¤ÇÏ¿´´Ù. y¸¦ ´©¸£¸é ¼³Ä¡°¡ ÁøÇàÀÌ µÈ´Ù.
2.2.4. ¼³Ä¡ Á¾·á ¶installation of MaxDB Software finished successfully Su, Apr 04, 2004 at 10:12:18 ÀÌÁ¦ ¿ì¸®´Â °¢°¢ 3°¡ÁöÀÇ PATH·Î MaxDB À§Ä¡¸¦ ÁöÁ¤ÇÏ¿´´Ù.
<independent_program_path> : /var/lib/sdb/programs <independent_data_path> : /var/lib/sdb/data <dependent_path> : /var/lib/sdb/kernel_7500 ÀÌ À§Ä¡µéÀ» Àß ¿°µÎÇØ µÎÀÚ.
2.3.1. MaxDB ±âº» ¼³Á¤ File ¶À§ÀÇ ¼³Ä¡°¡ ¸ðµÎ ¹«»çÈ÷ ³¡³ª¸é ´ÙÀ½°ú °°Àº ¼³Á¤ÈÀϵéÀÌ »ý±ä´Ù. ³ªÁß¿¡ MaxDB¸¦ Á¦°ÅÇÒ ¶§, ÀÌ ÈÀϵéÀ» ²À °°ÀÌ Áö¿ö¾ß ÇÑ´Ù. (±×·¡¾ß À缳ġ ÇÒ ¼ö ÀÖÀ½.)
$ more /etc/opt/sdb [Globals] IndepData=/var/lib/sdb/data IndepPrograms=/var/lib/sdb/programs SdbOwner=sdb SdbGroup=sdba $ ls -laR /usr/spool/sql /usr/spool/sql: ÇÕ°è 12 drwxrwxr-x 3 sdb sdba 4096 4¿ù 4 10:11 . drwxrwxr-x 3 sdb sdba 4096 4¿ù 4 10:11 .. lrwxrwxrwx 1 sdb sdba 25 4¿ù 4 10:11 dbspeed -> /var/lib/sdb/data/dbspeed lrwxrwxrwx 1 sdb sdba 22 4¿ù 4 10:11 diag -> /var/lib/sdb/data/diag lrwxrwxrwx 1 sdb sdba 22 4¿ù 4 10:11 fifo -> /var/lib/sdb/data/fifo drwxrwxrwx 2 sdb sdba 4096 4¿ù 4 10:12 ini lrwxrwxrwx 1 sdb sdba 21 4¿ù 4 10:11 ipc -> /var/lib/sdb/data/ipc lrwxrwxrwx 1 sdb sdba 21 4¿ù 4 10:11 pid -> /var/lib/sdb/data/pid lrwxrwxrwx 1 sdb sdba 22 4¿ù 4 10:11 pipe -> /var/lib/sdb/data/pipe lrwxrwxrwx 1 sdb sdba 22 4¿ù 4 10:11 ppid -> /var/lib/sdb/data/ppid /usr/spool/sql/ini: ÇÕ°è 24 drwxrwxrwx 2 sdb sdba 4096 4¿ù 4 10:12 . drwxrwxr-x 3 sdb sdba 4096 4¿ù 4 10:11 .. -rw-rw-rw- 1 sdb sdba 127 4¿ù 4 10:12 SAP_DBTech.ini -r--r--r-- 1 sdb sdba 4285 1¿ù 10 04:25 WebAgent75.ini -r--r--r-- 1 sdb sdba 369 1¿ù 10 04:25 sapdbxie.ini 2.3.2. /etc/services ¼³Á¤ ¶/etc/services ¿¡ ´ÙÀ½À» Ãß°¡ÇÑ´Ù.
sql6 7210/tcp sql30 7200/tcp sapdbni72 7269/tcp 2.3.3. PATH ¼³Á¤ ¶/etc/profile ³ª, .profile¿¡ <independent_program_path>/binÀ» PATH¸¦ Ãß°¡ÇÏÀÚ. ±×¸®°í, °ü·Ã lib¸¦ À§ÇØ LD_LIBRARY_PATH¸¦ ÁöÁ¤ÇÏÀÚ.
PATH=$PATH:/var/lib/sdb/programs/bin export PATH export LD_LIBRARY_PATH=/var/lib/sdb/programs/web/lib:/var/lib/sdb/programs/lib:$LD_LIBRARY_PATH 3.1. MaxDB µ¥ÀÌÅͺ£À̽º ¸¸µé±â ¶´ÙÀ½Àº /var/lib/sdb/kernel_7500/misc/create_demo_db.sh ¸¦ ¼öÁ¤ÇÑ °ÍÀÌ´Ù. create_maxdb_db.sh ¶ó°í ÀúÀåÇÏ¿© ½ÇÇàÇØ º»´Ù.
#!/bin/sh
#
# create_maxdb_db.sh
#
# »ç¿ëÀÚ°¡ ¿øÇÏ´Â ¼ÂÆÃÀ» ¹°¾îº¸¸é¼ µ¥ÀÌÅͺ£À̽º¸¦ »ý¼ºÇÑ´Ù.
# /var/lib/sdb/kernel_7500/misc/create_demo_db.sh ¸¦ Âü°íÇÏ¿© ¸¸µé¾úÀ½.
#
#
# Helper function: converts an amount to amount of pages.
# Usage: BLA=`topages $BLA BLA`
# $BLA contains an integer followed by
# g - for giga
# m - for mega
# k - for kilo or
# p - for pages (default when no suffix is given)
# Emits an errormessage to stderr when a parse error occurs. Also returns
# 1 on error (must be checked by caller)
function topages() {
_val=$1
_var=$2
_scr=`echo ${_val} | sed \
-e 's/^\([0-9]*\)g$/\1 * 128 * 1024/' \
-e 's/^\([0-9]*\)m$/\1 * 128/' \
-e 's/^\([0-9]*\)k$/\1 \/ 8/' \
-e 's/^\([0-9]*\)p$/\1/' \
-e 's/^\([0-9]*\)$/\1/' \
`
_o=`cat <<EOF |bc 2>&1
$_scr
EOF`
_test=`echo $_o | grep error`
if [ "$_test" != "" ]; then
echo "ERROR: Could not convert amount in $_var \"$_val\" to pages." >&2
echo "ERROR: Must be an integer with a suffix of g, m, k or p." >&2
return 1
else
echo $_o
return 0
fi
}
echo ""
echo ""
echo "[[ (KR) MaxDB 7.5.0.x ÀÇ DB¸¦ »ý¼ºÇϱâ À§ÇÑ . "
echo "[[ (KR) ½ºÅ©¸³Æ® ÀÔ´Ï´Ù. .................... "
echo "[[ .......................................... "
echo "[[ MaxDB 7.5.0.x Create Database Script ..... "
echo "[[ .......................................... "
echo ""
# ÇöÀç °èÁ¤ÀÇ ID¸¦ ¹Ýȯ
id=`id | sed s/\(.*// | sed s/uid=//`
# root°¡ ¾Æ´Ï¶ó¸é, ½ÇÇà ±ÇÇÑ °Ë»ç
if [ $id -gt 0 ]; then
admgrp=`cat /etc/opt/sdb | grep SdbGroup | sed s/^SdbGroup=// 2> /dev/null`
if [ "$admgrp" = "" ]; then
echo "cannot get SAP DB admin group" 1>&2
echo "(KR) MaxDB(SAP DB)ÀÇ ¾îµð¹Î ±×·ìÀ» ãÀ» ¼ö ¾ø½À´Ï´Ù." 1>&2
exit 1
fi
user=`id | sed s/uid=[0-9]*\(// | sed s/\).*$//`
pgrp=`id | sed s/.*gid=[0-9]*\(// | sed s/\).*$//`
is_member=0
for _group in `groups`; do
if [ "$_group" = "$admgrp" ]; then
is_member=1
fi
done
if [ "$is_member" = "0" ]; then
echo "user \"$user\" cannot create a database" 1>&2
echo "user isn\'t member of SAP DB admin group \"$admgrp\"" 1>&2
echo "(KR) ´ç½Å : \"$user\" ´Â µ¥ÀÌÅÍ º£À̽º¸¦ »ý¼ºÇÒ ¼ö ¾ø½À´Ï´Ù." 1>&2
echo "(KR) ´ç½ÅÀº MaxDB(SAP DB)ÀÇ ¾îµå¹Î ±×·ì \"$admgrp\" ¿¡ ¼Ò¼ÓµÇÁö ¾Ê¾Ò½À´Ï´Ù." 1>&2
exit 1
fi
fi
INDEP_PROGRAMS_PATH=`cat /etc/opt/sdb | grep IndepPrograms | sed s/^IndepPrograms=// 2> /dev/null`
INDEP_DATA_PATH=`cat /etc/opt/sdb | grep IndepData | sed s/^IndepData=// 2> /dev/null`
PATH=$INDEP_PROGRAMS_PATH/bin:$PATH
export PATH
# MaxDB Ä¿³Î À§Ä¡ ÀÔ·Â ¹ÞÀ½
# Get Kernel directory
echo "[[ (KR) MaxDBÀÇ Ä¿³ÎÀÌ ¼³Ä¡µÈ µð·ºÅ͸®´Â ¾îµðÀԴϱî? "
echo ""
echo -n "-==> Where The MaxDB Kernel Directory is [/var/lib/sdb/kernel_7500] : "
read INSTROOT
if [ "$INSTROOT" = "" ]; then
INSTROOT=/var/lib/sdb/kernel_7500
fi
echo "......."
echo "(KR) Ä¿³Î µð·ºÅ͸®¸¦ ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÕ´Ï´Ù."
echo "Set Kernel Directory : $INSTROOT"
echo ""
# get name of the database
# µ¥ÀÌÅÍ º£À̽º À̸§À» ÀÔ·Â ¹Þ´Â´Ù. (8ÀÚ ÀÌÇÏ)
while :
do
echo "[[ (KR) µ¥ÀÌÅͺ£À̽º À̸§À» ÀÔ·ÂÇÏ¿© ÁֽʽÿÀ. "
echo "[[ (KR) ¿µÀÚ&¼ýÀÚ·Î 8ÀÚ±îÁö °¡´ÉÇϸç, ´ë¼Ò¹®ÀÚ´Â ±¸ºÐÇÏÁö ¾Ê½À´Ï´Ù."
echo ""
echo -n "-==> Input Database Name (<= 8 character) : "
read DATABASE_NAME
if [ ${#DATABASE_NAME} -gt 9 ]; then
echo "(KR) ¿À·ù! µ¥ÀÌÅͺ£À̽º À̸§Àº 8ÀÚ±îÁö¸¸ °¡´ÉÇÕ´Ï´Ù."
echo "ERROR! The DATABASE Name must be less than or equal to 8 character !!"
echo ""
continue
elif [ "$DATABASE_NAME" = "" ]; then
echo "(KR) ¿À·ù! µ¥ÀÌÅͺ£À̽º À̸§À» ÀÔ·ÂÇϸç ÁֽʽÿÀ."
echo "ERROR! The DATABASE Name need !"
echo ""
continue
else
break
fi
done
echo "......."
echo "(KR) µ¥ÀÌÅͺ£À̽º À̸§À» $DATABASE_NAME À¸·Î ¼³Á¤ÇÕ´Ï´Ù."
echo "Set DATABASE NAME : $DATABASE_NAME"
echo ""
# get Database Manager operator (DBM operator)
# µ¥ÀÌÅͺ£À̽º ¸Þ´ÏÀú ¿ÀÆÛ·¹ÀÌÅÍÀÇ ID¸¦ ÀÔ·Â ¹Þ´Â´Ù. (18ÀÚ ÀÌÇÏ, À¯´ÏÄÚµå´Â 8ÀÚ ÀÌÇÏ)
while :
do
echo "[[ (KR) µ¥ÀÌÅͺ£À̽º ¸Þ´ÏÀú ¿ÀÆÛ·¹ÀÌÅÍ(DBM operator) ID¸¦ ÀÔ·ÂÇÏ¿© ÁֽʽÿÀ."
echo "[[ (KR) DBM operator´Â µ¥ÀÌÅͺ£À̽º¸¦ °ü¸®ÇÏ´Â »ç¶÷À» ¶æÇÕ´Ï´Ù."
echo "[[ (KR) DBM operator´Â µ¥ÀÌÅͺ£À̽º À¯Àú°¡ ¾Æ´Õ´Ï´Ù. query toolÀ̳ª Loader¿¡"
echo "[[ (KR) Á¢±ÙÇÏÁö ¸øÇϸç, µ¥ÀÌÅͺ£À̽ºÀÇ ¹é¾÷/º¹±¸/¸ð´ÏÅ͸µ µî¸¸ ÇÒ¼ö ÀÖ½À´Ï´Ù."
echo ""
echo -n "-==> Input Database Manager operator (DBM operator) ID (<= 18 char) : "
read DBM
if [ ${#DBM} -gt 18 ]; then
echo "(KR) ¿À·ù! DBM operator ID´Â 18ÀÚ ±îÁö¸¸ °¡´ÉÇÕ´Ï´Ù."
echo "ERROR! The DBM ID must be less than or equal to 18 character !!"
echo ""
continue
elif [ "$DBM" = "" ]; then
echo "(KR) ¿À·ù! DBM operatorÀÇ ID¸¦ ÀÔ·ÂÇÏ¿© ÁֽʽÿÀ."
echo "ERROR! The DBM operator ID need !"
echo ""
continue
else
break
fi
done
echo "......."
echo "(KR) DBM operator ID¸¦ $DBM À¸·Î ¼ÂÆÃÇÕ´Ï´Ù."
echo "Set DBM operator ID : $DBM"
echo ""
# get Database Manager operator (DBM operator) PASSWORD
# DBM operator ¾ÏÈ£ÀÔ·Â
stty -echo
while :
do
echo "[[ (KR) DBM operatorÀÇ ¾ÏÈ£¸¦ ÀÔ·ÂÇÏ¿© ÁֽʽÿÀ."
echo ""
echo -n "-==> Input Database Manager operator (DBM operator) PASSWORD : "
read DBMPW
echo ""
echo "(KR) DBM operatorÀÇ ¾ÏÈ£¸¦ ´Ù½Ã È®ÀÎ ÀÔ·ÂÇÏ¿© ÁֽʽÿÀ."
echo -n "Input Database Manager operator (DBM operator) PASSWORD again: "
read DBMPW_RE
echo ""
if [ "$DBMPW" != "$DBMPW_RE" ] ; then
echo "(KR) ¿À·ù! È®ÀÎ ÀÔ·ÂÇÑ ¾ÏÈ£°¡ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù.!"
echo "ERROR! Not Match each PASSWORD ! "
echo ""
continue
else
break
fi
done
stty echo
echo ""
# get The database system administrator (SYSDBA user)
# The database system administrator (SYSDBA user) ID¸¦ ÀÔ·Â ¹Þ´Â´Ù. (18ÀÚ ÀÌÇÏ, À¯´ÏÄÚµå´Â 8ÀÚ ÀÌÇÏ)
while :
do
echo "[[ (KR) The database system administrator (SYSDBA user) ID¸¦ ÀÔ·Â"
echo "[[ (KR) SYSDBA user´Â µ¥ÀÌÅͺ£À̽º¿¡ query tools¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Â"
echo "[[ (KR) »ç¿ëÀÚ¸¦ ¸»ÇÕ´Ï´Ù. ÃÖÃÊÀÇ »ç¿ëÀÚÀ̸ç, ´Ù¸¥ »ç¿ëÀÚ¸¦ °ü¸®,"
echo "[[ (KR) Å×ÀÌºí °ü¸®, ±ÇÇÑ ºÎ¿©¸¦ ÇÒ¼ö ÀÖ½À´Ï´Ù."
echo "[[ (KR) SYSDBA user ¿Í DBM operator´Â °°Àº ID¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù."
echo ""
echo -n "-==> Input The SYSDBA user ID (<= 18 char) : "
read DBA
if [ ${#DBA} -gt 18 ]; then
echo "(KR) ¿À·ù! The SYSDBA user ID´Â 18ÀÚ ±îÁö¸¸ °¡´ÉÇÕ´Ï´Ù."
echo "ERROR! The SYSDBA user ID must be less than or equal to 18 character !!"
echo ""
continue
elif [ "$DBA" = "" ]; then
echo "(KR) ¿À·ù! The SYSDBA user ÀÇ ID¸¦ ÀÔ·ÂÇÏ¿© ÁֽʽÿÀ."
echo "ERROR! The SYSDBA user ID need !"
echo ""
continue
elif [ "$DBM" = "$DBA" ]; then
echo ""
echo "(KR) ¿À·ù! "
echo "(KR) The SYSDBA user ID : $DBA ¿Í"
echo "(KR) The DBM operator ID : $DBM ÀÇ"
echo "(KR) ID´Â ´Þ¶ó¾ß ÇÕ´Ï´Ù."
echo ""
echo "ERROR! The SYSDBA user ID and DBM operator ID MUST NOT SAME"
echo ""
continue
else
break
fi
done
echo "......."
echo "(KR) SYSDBA user ID ¸¦ $DBA ·Î ¼ÂÆÃÇÕ´Ï´Ù."
echo "Set The SYSDBA user ID : $DBA"
echo ""
# get The database system administrator (SYSDBA user) PASSWORD
# The database system administrator (SYSDBA user) ¾ÏÈ£ÀÔ·Â
stty -echo
while :
do
echo "[[ (KR) The SYSDBA user ÀÇ ¾ÏÈ£¸¦ ÀÔ·ÂÇÏ¿© ÁֽʽÿÀ."
echo ""
echo -n "-==> Input The SYSDBA user PASSWORD : "
read DBAPW
echo ""
echo "(KR) The SYSDBA user ÀÇ ¾ÏÈ£¸¦ ´Ù½Ã È®ÀÎ ÀÔ·ÂÇÏ¿© ÁֽʽÿÀ."
echo -n "Input The SYSDBA user PASSWORD again: "
read DBAPW_RE
echo ""
if [ "$DBAPW" != "$DBAPW_RE" ] ; then
echo "(KR) ¿À·ù! È®ÀÎ ÀÔ·ÂÇÑ ¾ÏÈ£°¡ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù.!"
echo "ERROR! Not Match each PASSWORD ! "
echo ""
continue
else
break
fi
done
stty echo
echo ""
# get DATASIZE
while :
do
echo "[[ (KR) µ¥ÀÌÅͺ£À̽º º¼·ýÀÇ Å©±â¸¦ ÁöÁ¤ÇÏ¿© ÁֽʽÿÀ."
echo "[[ (KR) ÃÖ¼ÒÇÑ 16 MByte´Â µÇ¾î¾ß Çϸç, ÃßÈÄ ´Ù½Ã ¼ÂÆÃÇÒ ¼ö ÀÖ½À´Ï´Ù."
echo "[[ (KR) ±âº»´ÜÀ§´Â PAGE. ¿¹) 16 MByte => 16m , 20 GByte => 20g "
echo ""
echo -n "-==> Input DATASIZE [ m)ega, g)iga, p)ages . default:Pages > 16m ] : "
read DATASIZE
if [ "$DATASIZE" = "" ]; then
echo "(KR) ¿À·ù! µ¥ÀÌÅͺ£À̽º º¼·ý Å©±â¸¦ ÀÔ·ÂÇÏ¿© ÁֽʽÿÀ."
echo "ERROR! The DATASIZE need !"
echo ""
continue
else
break
fi
done
DATAPAGES=`topages $DATASIZE DATAPAGES`
echo "Set DATASIZE = $DATASIZE, DATAPAGES = $DATAPAGES pages"
echo ""
# get LOGSIZE
while :
do
echo "[[ (KR) µ¥ÀÌÅͺ£À̽º ·Î±×ÀÇ Å©±â¸¦ ÁöÁ¤ÇÏ¿© ÁֽʽÿÀ."
echo "[[ (KR) ±âº» ´ÜÀ§´Â PAGE "
echo ""
echo -n "-==> Input LOGSIZE [ m)ega, g)iga, p)ages . default:Pages ] : "
read LOGSIZE
if [ "$LOGSIZE" = "" ]; then
echo "(KR) ¿À·ù! µ¥ÀÌÅͺ£À̽º LOG Å©±â¸¦ ÀÔ·ÂÇÏ¿© ÁֽʽÿÀ."
echo "ERROR! The LOGSIZE need !"
echo ""
continue
else
break
fi
done
LOGPAGES=`topages $LOGSIZE LOGPAGES`
echo "Set LOGSIZE = $LOGSIZE, LOGPAGES = $LOGPAGES pages"
echo ""
# get catalog cache memory size for all user tasks
echo "[[ (KR) DBÀÇ Ä«Å»·Î±× ij½¬ ¸Þ¸ð¸®ÀÇ »çÀÌÁ ÁöÁ¤ÇÕ´Ï´Ù. "
echo ""
echo -n "-==> catalog cache memory size for all user tasks [ k)ilo, m)ega, g)iga, p)ages . default: 300 Pages ] : "
read CATCACHESUPPLY
if [ "$CATCACHESUPPLY" = "" ]; then
CATCACHESUPPLY=300p
fi
CATCACHESUPPLY=`topages $CATCACHESUPPLY CATCACHESUPPLY`
echo "Set CAT_CACHE_SUPPLY = $CATCACHESUPPLY pages"
echo ""
# Size of the I/O buffer cache in pages
echo "[[ (KR) I/O ¹öÆÛ ij½¬ Å©±â¸¦ ÁöÁ¤ÇÕ´Ï´Ù."
echo ""
echo -n "-==> Size of the I/O buffer cache [ k)ilo, m)ega, g)iga, p)ages . default: 3000 Pages ] : "
read CACHESIZE
if [ "$CACHESIZE" = "" ]; then
CACHESIZE=3000p
fi
CACHESIZE=`topages $CACHESIZE CACHESIZE`
echo "Set CACHE_SIZE = $CACHESIZE pages"
echo ""
# maximum number of users allowed to connect
echo "[[ (KR) µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÒ ¼ö ÀÖ´Â ÃÖ´ë »ç¿ëÀÚ¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù."
echo ""
echo -n "-==> maximum number of users allowed to connect [ default : 5 ] : "
read MAXUSERTASKS
if [ "$MAXUSERTASKS" = "" ]; then
MAXUSERTASKS=5
fi
echo "Set MAXUSERTASKS = $MAXUSERTASKS user(s)"
echo ""
# run the instances as a unicode instance (YES or NO)
echo "[[ (KR) ºñ ¿µ¾î±Ç¿¡¼ »ç¿ë½Ã ¹Ýµå½Ã UNICODE·Î ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù."
echo "[[ (KR) MaxDB ³»ºÎÀûÀ¸·Î´Â UTF-16/UCS-2 format À» »ç¿ëÇÕ´Ï´Ù."
echo ""
echo -n "-==> run the instances as a unicode instance [ YES or NO , default : YES ] : "
read UNICODE
if [ "$UNICODE" = "" ]; then
UNICODE=YES
fi
if [ "$UNICODE" = "YES" ]; then
DEFAULTCODE=UNICODE
else
DEFAULTCODE=ASCII
fi
echo "Set UNICODE = $UNICODE, DEFAULT_CODE = $DEFAULTCODE "
echo ""
# start remote communication server
echo ""
echo "..................."
echo "Start X_SERVER ...."
echo "..................."
echo ""
x_server start >/dev/null 2>&1
# create new demo database
echo "create database $DATABASE_NAME..."
_o=`dbmcli -s -R $INSTROOT db_create $DATABASE_NAME $DBM,$DBMPW 2>&1`
_test=`echo $_o | grep OK`
if [ "$_test" = "" ]; then
echo "create $DATABASE_NAME failed: $_o" 1>&2
exit 1
fi
# setup database parameters
echo "set parameters for $DATABASE_NAME..."
_o=`cat <<EOF | dbmcli -d $DATABASE_NAME -u $DBM,$DBMPW 2>&1
param_rmfile
param_startsession
param_init OLTP
param_put CAT_CACHE_SUPPLY $CATCACHESUPPLY
param_put CACHE_SIZE $CACHESIZE
param_put MAXUSERTASKS $MAXUSERTASKS
param_put _UNICODE $UNICODE
param_put DEFAULT_CODE $DEFAULTCODE
param_put MAXDATAVOLUMES 5
param_checkall
param_commitsession
param_addvolume 1 DATA DISK_DATA_0001 F $DATAPAGES
param_addvolume 1 LOG DISK_LOG_001 F $LOGPAGES
quit
EOF`
_test=`echo $_o | grep ERR`
if [ "$_test" != "" ]; then
echo "set parameters failed: $_o" 1>&2
exit 1
fi
# startup database
echo "start $DATABASE_NAME..."
_o=`dbmcli -d $DATABASE_NAME -u $DBM,$DBMPW db_start 2>&1`
_test=`echo $_o | grep OK`
if [ "$_test" = "" ]; then
echo "start $DATABASE_NAME failed: $_o" 1>&2
exit 1
fi
# initialize database files
echo "initialize $DATABASE_NAME..."
_o=`cat <<EOF | dbmcli -d $DATABASE_NAME -u $DBM,$DBMPW 2>&1
util_connect $DBM,$DBMPW
db_activate $DBA,$DBAPW
quit
EOF`
_test=`echo $_o | grep ERR`
if [ "$_test" != "" ]; then
echo "initializing $DATABASE_NAME failed: $_o" 1>&2
exit 1
fi
# load database system tables
echo "load system tables..."
_o=`dbmcli -d $DATABASE_NAME -u $DBM,$DBMPW load_systab -u $DBA,$DBAPW -ud domain 2>&1`
_test=`echo $_o | grep OK`
if [ "$_test" = "" ]; then
echo "load system tables failed: $_o" 1>&2
exit 1
fi
echo "set backup parameters..."
_o=`cat <<EOF | dbmcli -d $DATABASE_NAME -u $DBM,$DBMPW 2>&1
medium_put data datasave FILE DATA 0 8 YES
medium_put auto autosave FILE AUTO
util_connect $DBM,$DBMPW
backup_save data
autosave_on
quit
EOF`
_test=`echo $_o | grep ERR`
if [ "$_test" != "" ]; then
echo "set backup parameters failed: $_o" 1>&2
exit 1
fi
echo ""
echo "(KR) $DATABASE_NAME °¡ ¼º°øÀûÀ¸·Î »ý¼ºµÇ¾ú½À´Ï´Ù."
echo "$DATABASE_NAME Creation COMPLETED ."
echo ""
exit 0
3.3. Database Manager GUI in WEB ¶À¥ ºê¶ó¿ìÁ®¿¡¼ DB¸¦ °ü¸®ÇÏÀÚ. Database Manager GUI ¸¦ MaxDB ÀÚü À¥¼¹ö¸¦ ÀÌ¿ëÇØ ¶ç¿ìÀÚ.
$ cd /var/lib/sdb/programs/web/pgm $ ./wahttp & 3.3.1. WEB DBM ¶À¥ºê¶ó¿ìÁ®¿¡ ´ÙÀ½°ú °°ÀÌ ³Ö´Â´Ù.
http://localhost:9999/webdbm ȸéÀÌ ³ªÅ¸³ª¸é, µ¥ÀÌÅͺ£À̽º¸¦ ¼±ÅÃÇÑ ÈÄ¿¡ DBM operatorÀÇ ID¿Í PW¸¦ ³Ö°í ·Î±×ÀÎ ÇÑ´Ù. ±×·¯¸é, ȸ鿡 µ¥ÀÌÅͺ£À̽ºÀÇ »óŵéÀÌ ³ªÅ¸³´Ù.
3.3.2. WEB SQL Studio ¶À¥ºê¶ó¿ìÁ®¿¡ ´ÙÀ½°ú °°ÀÌ ³Ö´Â´Ù.
http://localhost:9999/websql ȸéÀÌ ³ªÅ¸³ª¸é, µ¥ÀÌÅͺ£À̽º¸¦ ¼±ÅÃÇÑ ÈÄ¿¡ SYSDBA user ID¿Í PW¸¦ ³Ö°í ·Î±×ÀÎ ÇÑ´Ù. ȸ鿡 Äõ¸® âÀÌ ³ªÅ¸³´Ù.
|











![[http]](/imgs/http.png)