1. X-Window 설치
오라클이 설치하기 위해서는 Graphic 환경이 필요한데...
처음 설치시 X-Window 패키지를 선택,설치해주도록 한다.
이미 Text Linux 환경으로 설치가 되어있다면 실망하지 말고,
간단한 명령으로 X-Window 패키지를 설치해주도록 하자.
# yum groupinstall "X Window System"
여기에 KDE, GNOME Desktop 환경중 GNOME 으로 설치한다.
# yum groupinstall "GNOME Desktop Environment"
2. 원격접속을 위한 VNC 서버 설치
2-1) VNC 패키지가 설치되어 있는지 확인
# rpm -qa |grep vnc
vnc-4.1.2-14.el5_3.1
vnc-server-4.1.2-14.el5_3.1
2-2) VNC Server 설정파일을 열어 편집합니다.
# vi /etc/sysconfig/vncservers
아래 두 라인을 주석해제 하고,
첫번째줄에는 접속할 디스플레이번호, 계정을 수정해줍니다.
두번째줄에는 접속할 디스플레이번호, 해상도를 수정하고, 원격에서 접속할 것이므로 -localhost 는 삭제합니다."
VNCSERVERS="1:oracletest"
VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp -nohttpd"
2-3) 위에 지정했던 계정으로 전환하여 사용자 디렉토리를 만들고 암호를 설정합니다.
# su oracletest
$ vncpasswd
Password: <== 지정할 암호 입력
Verify : <== 암호 확인 입력
2-4) 디렉토리 목록을 보게되면 .vnc 디렉토리가 생성된 것이 보입니다.
drwxr-xr-x 2 oracletest users 4096 3월 17 11:02 .vnc
2-5) X-Window 환경을 위해 su 로 전환한 후
# cp /etc/X11/xinit/xinitrc /home/oracletest/.vnc/xstartup
`/etc/X11/xinit/xinitrc' -> `/home/oracletest/.vnc/xstartup'
2-6) VNC Server 가동
# service vncserver start 또는 etc/init.d/vncserver start
VNC 서버 (을)를 시작 중: 1:oracletest xauth: creating new authority file /home/oracletest/.Xauthority
New 'localhost:1 (oracletest)' desktop is localhost:1
Starting applications specified in /home/oracletest/.vnc/xstartup
Log file is /home/oracletest/.vnc/localhost:1.log
[ OK ]
2-7)
-rw------- 1 kdlp users 167 3월 17 11:05 .ICEauthority
drwx------ 2 kdlp users 4096 3월 17 11:05 .Trash/
-rw------- 1 kdlp users 103 3월 17 11:05 .Xauthority
-rw------- 1 kdlp users 250 3월 17 11:04 .bash_history
-rw-r--r-- 1 kdlp users 33 2월 25 14:53 .bash_logout
-rw-r--r-- 1 kdlp users 176 2월 25 14:53 .bash_profile
-rw-r--r-- 1 kdlp users 124 2월 25 14:53 .bashrc
drwxr-x--- 2 kdlp users 4096 3월 17 11:05 .eggcups/
drwx------ 3 kdlp users 4096 3월 17 11:06 .gconf/
drwx------ 2 kdlp users 4096 3월 17 11:05 .gconfd/
drwxr-xr-x 3 kdlp users 4096 3월 17 11:05 .gnome/
drwx------ 6 kdlp users 4096 3월 17 11:05 .gnome2/
drwx------ 2 kdlp users 4096 3월 17 11:05 .gnome2_private/
drwxr-xr-x 2 kdlp users 4096 3월 17 11:05 .gstreamer-0.10/
-rw-r--r-- 1 kdlp users 86 3월 17 11:05 .gtkrc-1.2-gnome2
drwx------ 3 kdlp users 4096 3월 17 11:05 .metacity/
drwxr-xr-x 4 kdlp users 4096 2월 25 14:53 .mozilla/
drwxr-xr-x 3 kdlp users 4096 3월 17 11:05 .nautilus/
drwxr-xr-x 3 kdlp users 4096 3월 17 11:05 .redhat/
drwxr-xr-x 2 kdlp users 4096 3월 17 11:05 .vnc/
-rw-r--r-- 1 kdlp users 658 2월 25 14:53 .zshrc
drwxr-xr-x 2 kdlp users 4096 3월 17 11:05 Desktop/
2-8) Listen 포트를 확인하게 되면 다음과 같은데
방화벽에 5901 포트가 막혀 있다면 방화벽에서 허용해주도록 합니다.
# netstat -anlp |grep LISTEN |grep Xvnc
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 15529/Xvnc
# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT <== 추가
# /etc/init.d/iptables restart
서버에서 설치,설정은 끝났고,
클라이언트 PC에서 VNC Viewer 프로그램을 설치해서 접근해보도록 하겠습니다.
2-8) VNC Viewer 를 다운로드 받습니다.
다운로드 URL : http://kldp.org/node/43878
=> 첨부파일중 vncviewer-ko.zip
압축을 풀면 vncviewer 라는 프로그램이 나오는데, 이것을 실행합니다.
2-9)
Server 입력창에는 IP:디스플레이번호를 적고 OK 버튼을 클릭해서 접속합니다.
예) 222.122.12.34 IP를 쓰고 디스플레이번호 1번인 경우 222.122.12.34:1
접속이 되었다면 아까 지정했었던 암호를 넣습니다.
한글 깨짐현상이 있는데 리부팅합니다.
/etc/inittab
id:5:initdefault:
3. J2SDK 설치
3-1) 다운로드
먼저, 서버에 java 가 설치되어 있는지 확인해보고, 없다면
setup 서버에서 아래 파일을 다운로드 하여 설치한다.
j2sdk-1_4_2_19-linux-i586-rpm.bin
3-2) bin 파일 실행하여 rpm 파일 풀어놓기
chmod 700 j2sdk-1_4_2_19-linux-i586-rpm.bin
./j2sdk-1_4_2_19-linux-i586-rpm.bin
긴 안내문이 나오는데 Spacebar 로 넘어가도록 한다.
------------------------------------------------------------------------------------------------
Sun Microsystems, Inc.
Binary Code License Agreement
for the
JAVA 2 SOFTWARE DEVELOPMENT KIT (J2SDK), STANDARD EDITION,
VERSION 1.4.2_X
SUN MICROSYSTEMS, INC. ("SUN") IS WILLING TO LICENSE THE
SOFTWARE IDENTIFIED BELOW TO YOU ONLY UPON THE CONDITION
. . . 이하생략
------------------------------------------------------------------------------------------------
마지막에 물어보는 곳에서 yes를 입력한다.
Do you agree to the above license terms? [yes or no] yes
3-3) rpm 설치
# rpm -Uvh j2sdk-1_4_2_19-linux-i586.rpm
준비 중... ########################################### [100%]
1:j2sdk ########################################### [100%]
3-4) /etc/profile 환경설정 파일을 편집하여 Path 설정을 해줍니다.
# Java
JAVA_HOME=/usr/java/j2sdk1.4.2_19
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME
저장후 변경된 설정을 시스템에 적용시킵니다.
source /etc/profile
3-5) 제대로 설치가 되었는지 자바 버전을 조회해봅니다.
# java -version
java version "1.4.2_19"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_19-b04)
Java HotSpot(TM) Client VM (build 1.4.2_19-b04, mixed mode)
4. 오라클 다운로드 및 압축해제
4-1) oracle 계정으로 전환 후 setup 서버에서 아래 파일을 다운로드 하여 설치한다.
# su - oracle
# lftp -u install setup.oracletest.com
ship_9204_linux_disk1.cpio.gz (515M)
ship_9204_linux_disk2.cpio.gz (605M)
ship_9204_linux_disk3.cpio.gz
4-2) 압축해제
# gunzip ship_9204_linux_disk1.cpio.gz
# gunzip ship_9204_linux_disk2.cpio.gz
# gunzip ship_9204_linux_disk3.cpio.gz
# cpio -idmv < ship_9204_linux_disk1.cpio
# cpio -idmv < ship_9204_linux_disk2.cpio
# cpio -idmv < ship_9204_linux_disk3.cpio
Disk1 ~ Disk3 까지 디렉토리가 생성된 것이 보입니다.
6번에서 본격적으로 설치를 진행할 것이므로, 오라클 설치를 위한
환경설정을 합니다.
5. 오라클 설치를 위한 환경설정
5-1) 오라클 설치 전 rpm 설치
compat-gcc-34-c++-3.4.6-4.i386
compat-gcc-34-3.4.6-4.i386
compat-libstdc++-296-2.96-138.i386
compat-libstdc++-33-3.2.3-61.i386
compat-db-4.2.52-5.1.i386
libaio-devel-0.3.106-3.2.i386
libXp.i386 0:1.0.0-8.1.el5
cpp-4.1.2-46.el5_4.2.i386
nss_db-2.2-35.3.i386
make-3.81-3.el5.i386
cpp-4.1.2-46.el5_4.2.i386
5-2) 계정 및 그룹생성
# groupadd dba
# useradd -g dba oracle
5-3) 시스템 파라메터 추가 작업
# vi /etc/sysctl.conf
# Oracle 9.2.0.4
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
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
설정하고 난뒤 쉘에서 다음과 같이 명령을 처서 에러없이 뜨면 정상
# /sbin/sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmall = 268435456
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
# /sbin/systctl -a
# vi /etc/security/limits.conf
#Oracle 9.2.0.4
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
# vi /etc/pam.d/login
session required /lib/security/pam_limits.so
# vi /etc/profile 열고 다음 추가
# Oracle 9.2.0.4
if [ $USER = "oracle" ]; then
ulimit -u 16384 -n 65536
fi
5-4) oracle 계정 .bash_profile 수정
# su - oracle
$ vi .bash_profile
# ORACLE 9.2.0.4 ENVIRONMENT
#TMP=/home/oracle/tmp
#TMPDIR=$TMP; export TMPDIR
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=/home/oracle/product/9.2.0.4
export ORACLE_SID=ora92
export ORACLE_TERM=xterm
export ORACLE_OWNER=oracle
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
export PATH=$PATH:$ORACLE_HOME/bin
$ source .bash_profile
6. 오라클 설치
6-1) VNC창으로 터미널 접속후 oracle 계정으로 전환합니다.
프로그램 -> 보조 프로그램 -> 터미널
$ su - oracle
6-2)
$ cd Disk1
$ export LANG=C
$
! error
Initializing Java Virtual Machine from /tmp/OraInstall2006-10-25_01-43-30PM/jre/bin/java. Please wait... /tmp/OraInstall2006-10-25_01-43-30PM/jre/bin/i386/native_threads/java: error while loading shared libraries: libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or directory - after ./runInstaller execution.
ln -s libstdc++-3-lib6.2-2.10.0.so libstdc++-lib6.1.1.so.2
! error
Unable to load native library : /tmp/oraInstall 2009-07-10-04-38-16PM/jre/lib/i386/libjava:Symbol_libc-wait, version GLIBC_2.0 not defined in file libc.so.6 with link time reference
오라클 버그로 p3006854_9204_LINUX.zip 파일을 받아서 패치해야 함.
$ wget http://www.opennet.ru/soft/ora_inst/p3006854_9204_LINUX.zip
$ unzip p3006854_9204_LINUX.zip
Archive: p3006854_9204_LINUX.zip
creating: 3006854/
inflating: 3006854/rhel3_pre_install.sh
inflating: 3006854/README.txt
실행할땐 root 권한이 필요하다.
# cd 3006854
# sh rhel3_pre_install.sh
Applying patch...
Ensuring permissions are correctly set...
Done.
Patch successfully applied
! error
Initializing Java Virtual Machine from /data/OraInstall2008-06-17_05-21-49PM/jre/bin/java. Please wait...
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using 'md2:0.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:63)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:58)
at java.awt.Window.<init>(Window.java:188)
at java.awt.Frame.<init>(Frame.java:315)
at java.awt.Frame.<init>(Frame.java:262)
at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:593)
접속 끊고 다시 VNC 접속해서 실행하니 잘 됨
! error
설치화면에서 한글이 깨질때 export LANG=C 하고 설치
6-3) Inventory Location : /home/oracle/oraInventory 를 base directory 로 한다.
6-4) UNIX Group Name : dba 로 한다.
root 권한으로 특정파일 (/tmp/orainstRoot.sh) 을 실행해야 한다라고 팝업 창이 뜨면 다른 터미널 창에서
/tmp/orainstRoot.sh 를 실행합니다.
# ./orainstRoot.sh
Creating Oracle Inventory pointer file (/etc/oraInst.loc)
Changing groupname of /home/oracle/oraInventory to dba.
이제 팝업 창의 continue를 누릅니다.
6-5) File Locations : 기본 값
6-6) Available Products : Oracle9i Database 9.2.0.4.0 (기본값)
6-7) Installation Types : Enterprise Edition (2.84.GB) (기본값)
6-8) Database Configuration : General Purpose (기본값)
6-9) Database Identification
Global Database Name : ora92
SID : ora92
6-10) Database File Location : /home/oracle/oradata (기본값)
6-11) Dataase Character Set : Choose one of the common character sets 에서 Korean KO16KSC5601 선택
6-12) Summar 에서 앞에서 선택, 설정한 값 확인
이상이 없다면 Install 버튼을 눌러 설치를 진행한다.
6-13) Install 진행중 Setup Privileges 팝업 창이 뜬다. 다른 터미널 창에서 root 권한으로
/home/oracle/product/9.2.0.4/root.sh 을 실행해준다.
# sh /home/oracle/product/9.2.0.4/root.sh
Running Oracle9 root.sh script...
\nThe following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /home/oracle/product/9.2.0.4
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
\nCreating /etc/oratab file...
Adding entry to /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
6-14) 설치 완료후 4가지 에러가 뜨는데
* Oracle Net Configuration Assistant
=> vi /home/oracle/product/9.2.0.4/bin/netca
=> 97~98번째 줄에 다음과 같이 되어 있는데 98번째줄 맨 뒤에 java를 jre로 수정해준다.
# JRE Executable and Class File Variables
JRE=$JREDIR/bin/jre
JREJAR=$JREDIR/lib/rt.jar:$JREDIR/lib/i18n.jar
* Oracle Database Configuration Assistant
=> /home/oracle/product/9.2.0.4 디렉토리 밑에 JRE를 삭제하고, 다음과 같이 심볼릭 링크를 만들어 줍니다.
# cd /home/oracle/product/9.2.0.4
# rm -rf JRE
# ln -s /home/oracle/jre/1.3.1 JRE
=> /home/oracle/product/9.2.0.4/bin 디렉토리로 이동해서
=> vi dbca 파일을 열어 120번째줄과 123번째 줄 jre를 java로 수정합니다.
# Run DBCA
$JRE_DIR/bin/java -native -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -cla sspath $CLASSPATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS
else
# Run DBCA
$JRE_DIR/bin/java -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $ CLASSPATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS
=> 위와 같이 설정하고 해당 항목에 failed (see details ...) 을 선택하고 Retry 를 클릭하여 진행
=> Database Configuration Assistant 에서 설정해줘야 할 부분이 있다.
SYS Password :
Confirm SYS Password :
SYSTEM Password :
Confirm SYSTEM Password :
* Agent Configuration Assistant
=> 무시합니다.
* Starting HTTP Server
=> 무시합니다.
7.
7-1) 리스너가 실행되어 있는지 확인합니다.
# su - oracle
$ lsnrctl status 또는 ps -ef |grep oracle
$ lsnrctl status
LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 18-MAR-2010 13:45:06
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused
$ lsnrctl start
LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 18-MAR-2010 13:46:44
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
Starting /home/oracle/product/9.2.0.4/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 9.2.0.4.0 - Production
Log messages written to /home/oracle/product/9.2.0.4/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
Error listening on: (ADDRESS=(PROTOCOL=ipc)(PARTIAL=yes)(QUEUESIZE=1))
No longer listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 2: No such file or directory
Listener failed to start. See the error message(s) above...
! error
=> /var/tmp/.oracle 디렉토리가 없어 리스너가 실행되지 않습니다. root 로 로그인해서
# mkdir /var/tmp/.oracle
# chown oracle.dba /var/tmp/.oracle
]$ lsnrctl start
LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 18-MAR-2010 13:57:14
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
Starting /home/oracle/product/9.2.0.4/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 9.2.0.4.0 - Production
Log messages written to /home/oracle/product/9.2.0.4/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 9.2.0.4.0 - Production
Start Date 18-MAR-2010 13:57:14
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security OFF
SNMP OFF
Listener Log File /home/oracle/product/9.2.0.4/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
The listener supports no services
The command completed successfully
$ lsnrctl status
LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 18-MAR-2010 13:58:58
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 9.2.0.4.0 - Production
Start Date 18-MAR-2010 13:57:14
Uptime 0 days 0 hr. 1 min. 44 sec
Trace Level off
Security OFF
SNMP OFF
Listener Log File /home/oracle/product/9.2.0.4/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=8080))(Presentation=HTTP)(Session=RAW))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=2100))(Presentation=FTP)(Session=RAW))
Services Summary...
Service "ora92" has 1 instance(s).
Instance "ora92", status READY, has 1 handler(s) for this service...
Service "ora92XDB" has 1 instance(s).
Instance "ora92", status READY, has 1 handler(s) for this service...
The command completed successfully
$ sqlplus /nolog
SQL*Plus: Release 9.2.0.4.0 - Production on Thu Mar 18 13:59:56 2010
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn sys /as sysdba
Enter password:
Connected.
SQL> startup
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL> shutdown
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 236524644 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 1191936 bytes
Database mounted.
Database opened.
자동으로 시작할 수 있도록 /etc/oratab 을 열어 N 에서 Y 로 변경
*:/home/oracle/product/9.2.0.4:Y
ora92:/home/oracle/product/9.2.0.4:Y
/etc/rc.d/rc.local 추가
# Oracle Database Startup
su - oracle -c /home/oracle/product/9.2.0.4/bin/dbstart
su - oracle -c /home/oracle/product/9.2.0.4/bin/"lsnrctl start"
사용할 포트 오픈
/etc/sysconfig/iptables
# Oracle Listener Port Open
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT
/etc/services
# Oracle Service Port
LISTENER 1521/tcp # ORACLE LISTENER BY TCP
LISTENER 1521/udp # ORACLE LISTENER BY UDP
ora 파일 복사
/home/oracle/admin/ora92/pfile 밑에 initora92.ora.2182010132636 와 같은 파일이 존재한다.
이 파일을 cp -arp initora92.ora.2182010132636 /home/oracle/product/9.2.0.4/dbs/initora92.ora
복사해준다.
이렇게 하면 자동으로 오라클이 구동한다.
댓글 없음:
댓글 쓰기