http://www.ggola.com 장 경 상
1. Linux & Oracle10g.................................................................................................................3
1. Oracle Enterprise Edition 10g Product and Certify...................................................4
2. Linux 설치.......................................................................................................................5
2.1.1. Linux Install......................................................................................................5
2.1.1.1. Install 시작..............................................................................................5
2.1.1.2. Telnet, Ftp...............................................................................................5
2.1.2. Oracle10g를 위한 H/W resource...................................................................6
2.1.2.1. H/W 요구사항........................................................................................6
2.1.2.2. H/W 확인...............................................................................................6
3. Oracle10g Install을 위한 OS 설정................................................................................9
3.1.1. 계정 과 그룹 (account & group).....................................................................9
3.1.1.1. oracle, dba, oinstall................................................................................9
3.1.1.2. group 및 oracle base directory의 설정................................................9
3.1.1.3. profile 설정.............................................................................................9
3.1.2. Package............................................................................................................11
3.1.2.1. 필요 Package........................................................................................11
3.1.3. Kernel...............................................................................................................13
3.1.3.1. linux kernel parameter의 recommend 값과 확인............................13
3.1.3.2. linux kernel 값의 변경과 확인............................................................14
3.1.4. Shell Limit.......................................................................................................15
3.1.4.1. limits.conf file.......................................................................................15
3.1.4.2. login file.................................................................................................15
3.1.4.3. profile file..............................................................................................16
4. Oracle10g Installation..................................................................................................18
4.1.1. 시스템 환경.....................................................................................................18
4.1.2. Mount...............................................................................................................18
4.1.3. run Installer.....................................................................................................18
5. Management After Installation..................................................................................38
5.1.1. URL..................................................................................................................38
5.1.2. Other Oracle Process......................................................................................38
5.1.2.1. Process OCSSD.....................................................................................38
5.1.2.2. Manual Process 조정............................................................................38
5.1.2.3. ASM Instance와 OCSSD.....................................................................39
5.1.3. em & iSQL*Plus..............................................................................................41
5.1.3.1. em 사용하기..........................................................................................41
5.1.3.2. iSQL*Plus..............................................................................................42
JKSPARK@HANAFOS.COM 1
2.
http://www.ggola.com 장 경 상
5.1.3.3. Explorer에서 Language(언어) 문제...................................................42
5.1.4. Policy Framework..........................................................................................43
JKSPARK@HANAFOS.COM 2
3.
http://www.ggola.com 장 경 상
1. Linux & Oracle10g
RedHat Linux Advanced Server 3 (for Linux x86)를 Pentium III 512MB 메모리 컴퓨터
에 설치하고 이 platform을 기반으로 oracle10g를 install하여 기본 테스트를 진행할 것
이다. 따라서 기본이 되는 linux platform의 설정에 아무런 이상이 없어야만 우리가 목
적으로 하는 oracle10g에 대한 features 테스트가 원활이 진행됨으로 다음의 절차를 잘
참고하여 여러분의 pc 혹은 server에 반영하도록 한다.
CF. 여러분이 이미 oracle10g database를 가지고 있다면 platform과 상관없이 이
chapter는 굳이 읽을 필요는 없다. 또한 여러분이 완전한 Linux Advanced Server 2 또
는 3이나 Suse8등과 같은 platform 준비가 이미 되어 있고 oracle10g database를 이미
가지고 있다면 이 chapter를 넘어가도 좋다.
CF. 추후 언급이 되겠지만 linux platform의 경우 oracle10g가 지원하는 것은 advanced
server 뿐이다. 만일, 독자 중 일부가 현재 필자의 테스트 환경처럼 꼭 linux platform을
필요로 하는 사람임에도 불구하고 linux advanced server를 구할 수 없다면 레드햇 코
리아 “http://www.kr.redhat.com“을 통해서 평가판을 download하여 사용하시기 바
란다.
JKSPARK@HANAFOS.COM 3
4.
http://www.ggola.com 장 경 상
1. Oracle Enterprise Edition 10g Product and Certify
다음 과정을 진행하기 전에 참고로 oracle10g enterprise edition이 install 가능한 linux
x86 matrix를 한번 살펴보자. 적어도 다음의 linux 버전이 oracle10g를 위해 필요하다.
표 1-1 Linux x86 server certifications
SuSE SLES9
지원가능 SuSE SLES8
Linux Red Hat Enterprise Linux AS/ES 3
Red Hat Enterprise Linux AS/ES 2.1
Red Flag DC Server 4.0 (China Only)
Miracle Linux Standard Edition 2.1 (Japan only)
Asianux 1.0
CF. 이런 종류의 설치 작업을 비롯한 다양하고 훌륭한 정보들은 oracle의 홈페이지 기
술문서를 통해서도 얻을 수 있다. 꼭 참고하시기 바란다.
“http://www.oracle.com/technology/pub/articles/index.html”
CF. Linux x86기반의 oracle10g를 구하는 방법은 여러 형태가 있을 수 있겠지만 oracle
의 공식 홈페이지를 통해서도 download가 가능하다.
“http://www.oracle.com/technology/software/products/database/oracle10g/index.
html”
JKSPARK@HANAFOS.COM 4
5.
http://www.ggola.com 장 경 상
2. Linux 설치
2.1.1. Linux Install
2.1.1.1. Install 시작
먼저 Linux CD를 확인 한 후 CD#1을 통해 작업을 시작한다. 여기서 예를 들고 있는
Linux Advanced Server 3의 경우 총 4장의 CD로 구성되어 있다. 1번 CD를 넣고
booting을 하면 prompt를 통해 어떤 install을 진행 할 것인가를 물어보게 되는데 통상
그냥 enter를 치고 바로 쉽게 install을 진행할 수 있다. 언어, 키보드, 마우스 설정,
installation type 등을 진행하게 되는데 대부분 default로 해도 무방하다. 그리고 disk
partition을 진행해야 하는데 이 경우 linux를 잘 알면 수동으로 하면 되지만 사실 이런
테스트 환경에서 그렇게 할 필요까지는 없을 것 같다. 자동선택을 통해 쉽게 진행할 수
있으며 이것으로도 충분히 작업이 가능하다. 즉, 거의 대부분 default로 작업을 진행해
도 무방하다는 말이 되겠다.
CF. 단, install을 진행하는 동안 부득이하게 firewall 설정이 필요한 경우가 아니라면 그
냥 firewall을 설정하지 말고 진행하자.
CF. install과정 중에 root 이외의 user를 생성하는 메뉴가 있을 것이다. 여기서는 oracle
계정을 만들어 진행하도록 한다. 물론, 시스템 구성 후 나중에 해도 상관은 없다. 여기서
는 install과정 중에 oracle 계정을 만들었다고 가정한다.
CF. install과정 중에 host명을 입력하게 될 것이다. 여기서 여러분이 원하는 이름을 설
정하도록 한다. 이 문서에서는 “Liracle”이라는 이름으로 설정하였고 예제에 나오는
prompt의 “Liracle”이라는 것은 바로 이 host명이다.
2.1.1.2. Telnet, Ftp
여러분이 사용하는 컴퓨터가 개인이 혼자 사용하는 것이라면 별 문제가 되지 않지만
oracle10g를 위한 전용 컴퓨터라면 telnet과 ftp설정은 꼭 필요할 것이다. 다음은 이를
위한 설정으로 root user로 login하여 본인이 작업한 경우를 그대로 적어본다.
CF. 이런 설정은 매우 다양하게 진행될 수 있고 linux를 잘 아는 사람은 다른 방법으로
다른 종류의 telnet이나 ftp를 설정할 수도 있을 것이다. 따라서 여기서 기술되는 것은
기본적인 사항일 뿐이지 필수요소는 아니다.
JKSPARK@HANAFOS.COM 5
6.
http://www.ggola.com 장 경 상
(1) telnet 설정
root로 login한 후 다음 file의 disable항목을 보고 그 값을 수정한다.
vi /etc/xinetd.d/krb5-telnet
여기서 disable 항목의 값이 yes이면 이를 no로 수정하고 저장.
(2) ftp 설정
이전 linux에서는 /etc/xinetd.d/wu-ftpd를 사용했으나 Advanced Server에서
는 /etc/vsftpd를 사용한다. 즉, xinetd daemon이 아니라 따로 daemon을 사용
하게 되었다. 별다른 설정은 필요치 않다.
(3) Service restart
root로 login한 후 ntsysv를 통해 krb5-telnet, vsftpd, xinetd가 check되어있는지
확인하고 혹시 gssftp가 check되어 있으면 이를 해제한다. xwindow에서는 “기
본메뉴 시스템설정 서버설정 서비스”를 선택한 후 위 해당항목의
check여부를 확인한다. 확인이 되면 vsftpd를 선택한 후 “재시작”menu를 수행
하고 역시 같은 방법으로 xinetd를 재 시작한다. (깔끔하게 시스템을 reboot하는
것도 좋겠다)
2.1.2. Oracle10g를 위한 H/W resource
2.1.2.1. H/W 요구사항
먼저 안정적인 oracle10g를 운영하기 위한 H/W의 기본 요구사항을 살펴보자.
표 1-2 항목 최소 요구량 기준
Physical Memory 256MB / 512 MB DB control 미 사용 / 사용
지원가능 Swap 1G 또는 RAM 2배 RAM의 용량에 따라 1G 혹은 RAM
H/W 수 의 2배를 설정
준 tmp 400 MB 임시 작업공간 설정
S/W 2.5 GB Oracle Product
Database 1.2 GB 기본 Database (option)
Flash recovery area 2.4 GB Flash recovery destination (option)
2.1.2.2. H/W 확인
이제 system명령어를 통해 기본 요구사항이 만족하는가를 확인해 보자. 계정 root로
login한 후 다음 사항을 확인한다.
[root@LIRACLE root]# grep MemTotal /proc/meminfo
MemTotal: 513488 kB
[root@LIRACLE root]# grep SwapTotal /proc/meminfo
SwapTotal: 1044216 kB
[root@LIRACLE root]# df -k /tmp
Filesystem 1K-blocks Used Available Use% Mounted on
JKSPARK@HANAFOS.COM 6
7.
http://www.ggola.com 장 경 상
/dev/hda2 28296744 12788956 14070376 48% /
[root@LIRACLE root]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hda2 27G 13G 14G 48% /
/dev/hda1 99M 9.0M 85M 10% /boot
none 251M 0 251M 0% /dev/shm
JKSPARK@HANAFOS.COM 7
8.
http://www.ggola.com 장 경 상
OCP point
===============================================================
1. oracle10g를 위한 H/W 요구사항
JKSPARK@HANAFOS.COM 8
9.
http://www.ggola.com 장 경 상
3. Oracle10g Install 을 위한 OS 설정
Oracle 계정과 이에 따른 profile, alias등을 설정하고 oracle install을 위한 package,
kernel, shell limit등의 환경을 구성한다.
3.1.1. 계정 과 그룹 (account & group)
3.1.1.1. oracle, dba, oinstall
최초 install과정 중에 oracle 계정을 만들었다면 group부터 만들어 진행하면 되고 만일
만들지 않았다면 “# useradd oracle”명령을 통해 oracle user를 만든다.
이제 group을 만들 것이다. 만일, 여러분이 oracle이외의 user로도(계정으로도) oracle
database를 관리한다면 다시 말해, 여러 user가 여러 oracle instance를 관리하려는 목적
이 있다면 dba group외에도 oinstall group을 만들어 사용한다. 여기서는 그럴 필요가
없기 때문에 dba group만을 사용할 것이다.
CF. 만일 oinstall group도 필요하다면 아래 dba group을 만드는 과정과 동일하게
oinstall group을 만들고 다음의 명령을 통해 oinstall을 primary group으로 dba group
을 secondary group으로 만들도록 한다.
EX. # usermod –g oinstall –G dba oracle
3.1.1.2. group 및 oracle base directory의 설정
기본 group과 이에 대한 oracle 계정 설정 root user로 login하여 진행한다.
[root@LIRACLE root]# cd /
[root@LIRACLE /]# mkdir -p /app/oracle
[root@LIRACLE /]# cd /app
[root@LIRACLE root]# groupadd dba
[root@LIRACLE root]# usermod -g dba -d /app/oracle oracle
[root@LIRACLE app]# chown -R oracle.dba oracle
3.1.1.3. profile 설정
이제 oracle 계정으로 login하여 profile 설정을 진행한다. 다음의 예처럼 editor vi를 통
해 profile을 열어서 직접 코딩 한다. 아래의 예에서는 oracle instance 이름으로
“NEWSVC”라 명명하였다. 이는 각자 원하는 oracle instance 이름을 설정한다.
아래의 예에서 사용되는 directory 구조가 없는 경우에는 명령어 “mkdir”을 통해 만들
도록 한다. (차후에 해도 상관은 없음으로 oracle을 install하기 전 까지만 작업을 진행하
JKSPARK@HANAFOS.COM 9
10.
http://www.ggola.com 장 경 상
면 될 것이다)
[root@LIRACLE root]# su – oracle
$ mkdir –p /app/oracle/tmp
$ mkdir -p /app/oracle/product/10.1.0
$ vi .bash_profile
# oracle os home
ORACLE_BASE=/app/oracle; export ORACLE_BASE
# oracle product home
ORACLE_HOME=/app/oracle/product/10.1.0; export ORACLE_HOME
# specify terminal and temp space
ORACLE_TERM=vt100; export ORACLE_TERM
TMPDIR=$ORACLE_BASE/tmp; export TMPDIR
TEMP=$ORACLE_BASE/tmp; export TEMP
# default character set
NLS_LANG=American_America.KO16KSC5601; export NLS_LANG
# general path
PATH=$PATH:.:$ORACLE_HOME/bin
# oracle을 install하는 pc의 ip설정 (서버에서 직접 설치할 경우엔 필요 없음)
export DISPLAY=21.111.21.189:0.0
# instance configuration
ORACLE_SID=NEWSVC; export ORACLE_SID
# prompt
PS1='[${ORACLE_SID}]'`hostname`':$PWD> '
umask 022
set -o vi
~
~
~
:wq
$ su – oracle
Password:
[NEWSVC]LIRACLE:/app/oracle>
CF. 위의 예는 Red Hat Linux의 bash shell설정이다. United Linux의 Bourne shell, Bash
shell이나 Korn shell의 경우 ‘.profile’을 사용하고 C shell의 경우 ‘.login’을 사용한다.
JKSPARK@HANAFOS.COM 10
11.
http://www.ggola.com 장 경 상
3.1.2. Package
다음은 oracle10g를 위해 요구되는 시스템 package들이 제대로 설정이 되었는가를 확
인하고 이를 마무리할 것이다.
3.1.2.1. 필요 Package
기본적인 package들은 최초 linux install과정에서 이루어 졌을 것이다. 그러나 우리가
원하는 것들이 모두 설치 되었는지는 알 수가 없다. 이제 이를 확인해 보자. 다음은
RedHat Linux Advanced Server 3에서 필요한 부분들이다.
다음의 package 값들은 모두 최소값임으로 적어도 이들 값과 같거나 큰 버전이 설치되
어 있어야 한다.
(1) Gnu gcc :
gcc-3.2.3-2
(2) general package :
make-3.79
binutils-2.11
openmotif-2.2.2-16
setarch-1.3-1
(3) compat package :
compat-db-4.0.14.5
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
확인을 하면 알겠지만 위 package들 중에서 (1), (3)은 install과정 중에서 선택한
package group에 의존적 이기 때문에 없는 경우가 많다. 물론, 다시 설치가 가능하니 걱
정할 건 없다. 본인의 경우 대부분 installation과정 중에서 default로 package group도
꼭 필요하다 싶은 것이 아니면 설치를 하지 않았기 때문에 위 (1), (3) package는 설치되
지 않았었다.
다음은 root로 login하여 이를 확인하고 필요한 package를 재 설치 하는 과정이다.
[root@LIRACLE root]# rpm -q gcc make binutils openmotif setarch compat-db compat-
gcc compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel
package gcc is not installed
make-3.79.1-17
binutils-2.14.90.0.4-35
openmotif-2.2.2-16
setarch-1.3-1
package compat-db is not installed
package compat-gcc is not installed
package compat-gcc-c++ is not installed
JKSPARK@HANAFOS.COM 11
12.
http://www.ggola.com 장 경 상
package compat-libstdc++ is not installed
package compat-libstdc++-devel is not installed
위의 경우는 앞서 이야기 한 (1), (3)이 linux install시 선택하지 않은 package group으
로 인핸 설치되지 않은 경우이다. 이 경우는 아래와 같이 재 설치를 진행할 수 있다.
xwindows상에서 “기본메뉴 시스템설정 응용 프로그램 추가/삭제”를 선택한다.
그리고 해당 화면에서 “개발용 도구”와 “레거시 소프트웨어 개발”을 check한다. 위 (1)
의 gcc는 “개발용 도구”에 (3)은 “레거시 소프트웨어 개발”에 해당한다. 그리고 나서
update를 진행하면 “Disk #2, #3”를 통해 해당 package를 설치할 수 있게 된다.
그러나 주의할 것은 이렇게 하더라도 위 package중 compat-db는 설치되지 않는다는
것이다. 이는 package group으로 묶여 있지 않고 단독으로 설치를 해야 한다. 이 경우엔
아래의 예처럼 따로 설치를 진행한다.
EX. (1) 먼저 설치 disk3을 mount시킨다.
# mount /mnt/cdrom
(2) package가 있는 directory를 대상으로 해당 package를 install한다.
# rpm –ivh /mnt/cdrom/RedHat/RPMS/compat-db-4.0.14-5.i386.rpm
이렇게 설치가 완료되면 다음과 같이 다시 package를 확인할 수 있다.
[root@LIRACLE root]# rpm -q gcc make binutils openmotif setarch compat-db compat-
gcc compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel
gcc-3.2.3-34
make-3.79.1-17
binutils-2.14.90.0.4-35
openmotif-2.2.2-16
setarch-1.3-1
compat-db-4.0.14-5
compat-gcc-7.3-2.96.128
compat-gcc-c++-7.3-2.96.128
compat-libstdc++-7.3-2.96.128
compat-libstdc++-devel-7.3-2.96.128
이제 package 설치가 완료되었음이 확인 되었다.
CF. 만일 현재 여러분이 사용하고 있는 linux 시스템이 “RedHat Linux Advanced
Server 2”라면 다음 사항을 확인한다. 다음의 예시되는 값보다 같거나 큰 값으로 설치되
어 있어야 한다. 하위 버전이라면 최신 버전을 download하여 설치한다.
(1) kernel :
# uname –r
JKSPARK@HANAFOS.COM 12
13.
http://www.ggola.com 장 경 상
2.4.9-e.25
(2) glibc package :
# rpm –q glibc
glibc-2.2.4-31
(3) 그외 package :
# rpm -q gcc make binutils openmotif
gcc-2.96.108.1
make-3.79
binutils-2.11
openmotif-2.1.30
3.1.3. Kernel
이제 oracle10g를 install하기 위하여 linux의 kernel을 설정해 보자. 다음에 제시되는 값
들은 모두 최소 값으로서 현재의 설정 값들이 이 값과 같거나 큰 부분들이 있다면 이는
수정을 하지 않아도 된다.
3.1.3.1. linux kernel parameter의 recommend 값과 확인
표 1-3 위치 recommend 값
/proc/sys/kernel/sem 250 32000 100 128
Linux /proc/sys/kernel/shmall 2097152
Kernel /proc/sys/kernel/shmmax Physical Memory * 0.5 (실 메모리의 반)
Value
~ 2147483648 (2G)
/proc/sys/kernel/shmmni 4096
/proc/sys/fs/file-max 65536
/proc/sys/net/ipv4/ip_local_port_range 1024 65000
다음은 현재 구동인 시스템에서 직접 확인하는 방법과 결과 dump이다. 작업의 편이성
을 위해 root user로 oracle과 관련한 작업을 특정 directory를 만들어 진행하였다.
[root@LIRACLE root]# mkdir -p /tmp/chk/oracle
[root@LIRACLE root]# cd /tmp/chk/oracle
[root@LIRACLE oracle]# cat /proc/sys/kernel/sem
250 32000 32 128
[root@LIRACLE oracle]# cat /proc/sys/kernel/shmall
2097152
[root@LIRACLE oracle]# cat /proc/sys/kernel/shmmax
33554432
[root@LIRACLE oracle]# cat /proc/sys/kernel/shmmni
JKSPARK@HANAFOS.COM 13
14.
http://www.ggola.com 장 경 상
4096
[root@LIRACLE oracle]# cat /proc/sys/fs/file-max
52422
[root@LIRACLE oracle]# cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000
위의 결과를 보면 kernel.sem, kernel.shmmax, fs.file-max, net.ipv4.ip_local_port_range
의 값이 최소값보다 작은 것으로 나타나고 있다. 위 4개의 parameters를 변경할 것인데
kernel.shmmax의 경우 현재 512MB 메모리를 기준으로 하지 않고 향후 확장을 고려하
여 2G(2147483648)로 설정할 것이며 net.ipv4.ip_local_port_range의 경우 첫번째 value
는 그대로 두고 두 번째 value를 변경하도록 설정할 것이다.
3.1.3.2. linux kernel 값의 변경과 확인
먼저 editor를 통해 “/etc/sysctl.conf”를 열어서 수정하고자 하는 값들을 설정하고
“/sbin/sysctl –p” command를 통해 이를 확인하는 절차이다. 반영 후 변경된 값을 위
의 순서에 따라 다시 한번 확인해 보자. 여기서는 vi를 통해 설정하였다.
[root@LIRACLE oracle]# vi /etc/sysctl.conf
…..
kernel.sem = 250 32000 100 128
kernel.shmmax = 2147483648
fs.file-max = 65536
net.ipv4.ip_local_port_range = 32768 65000
~
~
~
~
~
:wq
[root@LIRACLE oracle]# /sbin/sysctl -p
kernel.sem = 250 32000 100 128
kernel.shmmax = 2147483648
fs.file-max = 65536
net.ipv4.ip_local_port_range = 32768 65000
[root@LIRACLE oracle]# cat /proc/sys/kernel/sem
250 32000 100 128
[root@LIRACLE oracle]# cat /proc/sys/kernel/shmall
2097152
[root@LIRACLE oracle]# cat /proc/sys/kernel/shmmax
JKSPARK@HANAFOS.COM 14
15.
http://www.ggola.com 장 경 상
2147483648
[root@LIRACLE oracle]# cat /proc/sys/kernel/shmmni
4096
[root@LIRACLE oracle]# cat /proc/sys/fs/file-max
65536
[root@LIRACLE oracle]# cat /proc/sys/net/ipv4/ip_local_port_range
32768 65000
Kernel 설정이 완료 되었음을 확인하였다.
3.1.4. Shell Limit
다음은 보다 낳은 성능향상을 위해 shell의 limit을 재설정 하는 과정이다. 제시되는 수
치들이 이미 설정이 되어있다면 무시하되 그렇지 않다면 이를 참고로 수정하도록 한다.
3.1.4.1. limits.conf file
open file descriptors의 최대 값인 nofile(max number of open files)을 “65536”으로
single user에 대한 최대 활용가능 한 process의 수인 nproc(max number of processes)
를 “16384”로 수정한다. 다음은 editor vi를 통해 “/etc/security/limits.conf”를 확인하
고 수정한 과정이다.
[root@LIRACLE root]# vi /etc/security/limits.conf
….
….
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 0124
oracle hard nofile 65536
# End of file
~
~
~
:wq
[root@LIRACLE root]#
3.1.4.2. login file
다음은 editor vi를 통해 /etc/pam.d/login를 확인하고 수정한 과정이다.
[root@LIRACLE root]# vi /etc/pam.d/login
….
….
# for oracle
session required /lib/security/pam_limits.so
JKSPARK@HANAFOS.COM 15
16.
http://www.ggola.com 장 경 상
~
~
~
:wq
[root@LIRACLE root]#
3.1.4.3. profile file
다음은 editor vi를 통해 /etc/profile을 확인하고 수정한 과정이다. 이는 사용중인
oracle user의 default shell이 무엇인가에 따라 다르다. 현재 이 테스트 과정에서는
oracle user의 계정으로 기본 shell인 bash shell을 사용 중 이다. 기본적으로
“/etc/profile or /etc/csh.login”을 수정하며 linux의 종류에 따라 “/etc/profile.local or
/etc/csh.login.local”을 수정할 수도 있다.
Bourne, Bash, Korn shell을 사용하는 경우
[root@LIRACLE root]# vi /etc/profile
….
….
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
~
~
~
:wq
C or tcsh shell을 사용하는 경우
[root@LIRACLE root]# vi/etc/csh.login
….
….
if [ $USER == "oracle" ]; then
limit maxproc 16384
limit descriptors 65536
fi
~
~
~
:wq
CF. 설정이 완료되면 system을 restart하여 상쾌한 기분으로 다음 step을 진행해 보자.
JKSPARK@HANAFOS.COM 16
17.
http://www.ggola.com 장 경 상
[root@LIRACLE root]# shutdown -fr now
Broadcast message from root (pts/0) (Mon Nov 1 16:07:55 2004):
The system is going down for reboot NOW!
JKSPARK@HANAFOS.COM 17
18.
http://www.ggola.com 장 경 상
4. Oracle10g Installation
4.1.1. 시스템 환경
oracle10g database는 기본 CD가 1장이다. Oracle9i와 비교하면 그야말로 큰 변화이다.
그 변화가 기능적인 면에는 어떤 영향을 나타낼지는 별개로 하더라도 말이다. 먼저 해
당 CD를 mount한 후 작업을 진행 해보자.
CF. oracle10g부터는 모든 것을 담고 있는 DVD가 1장 있어 이를 사용해도 된다. 나중에
설명되지만 CD install시 기본 CD1장외에 추가적인 product을 설치할 수 있는
companion CD가 1장 더 있다.
4.1.2. Mount
아래의 예를 따라 진행 해보자. 먼저 root로 login하여 cdrom을 mount한다.
[root@LIRACLE root]# more /etc/fstab
LABEL=/ / ext3 defaults 11
LABEL=/boot /boot ext3 defaults 12
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 00
none /dev/shm tmpfs defaults 00
/dev/hda3 swap swap defaults 00
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
[root@LIRACLE root]# mount /mnt/cdrom
[root@LIRACLE root]# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hda2 28296744 13212528 13646804 50% /
/dev/hda1 101089 9181 86689 10% /boot
none 386012 0 386012 0% /dev/shm
/dev/cdrom 627024 627024 0 100% /mnt/cdrom
4.1.3. run Installer
다음은 다른 창에서 xmanager를 구동하여 install하는 절차를 보여준다.
[NEWSVC]LIRACLE:/app/oracle> /mnt/cdrom/runInstaller
Starting Oracle Universal Installer...
JKSPARK@HANAFOS.COM 18
19.
http://www.ggola.com 장 경 상
Checking installer requirements...
…..
최초 install 시작 화면이 다음과 같이 나타난다.
그림 1-1
Oracle
Install
“Next”를 통해 다음화면으로 이동하여 다음과 같이 기본정보를 입력하거나 확인한다.
JKSPARK@HANAFOS.COM 19
20.
http://www.ggola.com 장 경 상
그림 1-2
Oracle
Install
“Next”를 누른 후 다음 화면에서 지시사항을 읽고 그에 따라 root user로 login하여 지
시사항을 수행한 후 “Continue”를 선택한다. 먼저 아래 그림 말고 다음 창의 작업내역
을 확인하라.
JKSPARK@HANAFOS.COM 20
21.
http://www.ggola.com 장 경 상
그림 1-3
Oracle
Install
아래는 다른 창에서 작업할 내용이다.
[NEWSVC]LIRACLE:/app/oracle> su - root
Password:
[root@LIRACLE root]# cd /app/oracle
[root@LIRACLE oracle]# cd oraInventory
[root@LIRACLE oraInventory]# ls -l orainstRoot.sh
-rwx------ 1 oracle dba 680 6월 13 13:02 orainstRoot.sh
[root@LIRACLE oraInventory]# ./orainstRoot.sh
Creating the Oracle inventory pointer file (/etc/oraInst.loc)
Changing groupname of /app/oracle/oraInventory to dba.
이제 “Continue”를 누르고 다음 창에서 install source와 ORACLE_HOME destination
을 확인하거나 직접 입력한 후 “Next”를 선택한다.
JKSPARK@HANAFOS.COM 21
22.
http://www.ggola.com 장 경 상
그림 1-4
Oracle
Install
다음과 같은 화면에서 Install Type을 선택한 후 “Next”를 진행한다.
JKSPARK@HANAFOS.COM 22
23.
http://www.ggola.com 장 경 상
그림 1-5
Oracle
Install
이제 다음과 같이 system환경 설정을 check하는 창에서 현재의 설정들이 모두 제대로
되었는지 확인할 수 있다. 다음 창에서 “Status”를 확인하고 “Next”를 진행한다.
JKSPARK@HANAFOS.COM 23
24.
http://www.ggola.com 장 경 상
그림 1-6
Oracle
Install
만일, 현재의 서버에서 이전 버전의 오라클 database가 존재하면 이를 upgrade하는 화
면이 나올 수 있다. 현재는 순수하게 install만을 진행한다고 가정하며 이 경우 다음과
같은 화면에서 install 작업이 진행된다. 물론, 여기서 보여주는 다음의 화면에서는
database creation까지 나타나게 되는데 이것은 설명을 위해 일부러 구현한 것이다.
CF. 사실 필자는 이 작업을 자동으로 하지 않고 script로 받아서 나중에 다시 진행하였
다. 그 이유는 여러분이 GUI환경에 당연히 익숙해져야 하는 것과는 별도로 필자는 항
상 그 세부적인 script도 따로 볼 필요가 있다고 생각해왔기 때문이다. 여러분도 script
를 확인하는 습관을 가지도록 권장하고 싶다.
“Next”를 누르면 다음과 같은 화면이 나온다. 현재는 일반적인 목적의 database 생성
option을 선택한 상태이다.
JKSPARK@HANAFOS.COM 24
25.
http://www.ggola.com 장 경 상
그림 1-7
Oracle
Install
차후에 database를 따로 생성할 것이기 때문에 여기서는 “Do not create a starter
database”를 선택하면 되지만 굳이 여기서 만들겠다면 위에서 적절한 type의 database
를 선택한 후 다음 과정을 진행하면 된다. “Next”를 누른다.
CF. Database를 만들겠다면 다음 화면에서 database 기본정보를 선택 또는 입력한 후
하단의 sample schema 생성 여부를 여러분의 취향에 맞도록 설정하라. 아래는 생성을
선택한 화면이다.
CF. 언제든 GUI 환경에서 database를 생성할 수 있으며
“$ORACLE_HOME/bin/dbca”를 수행하면 원하는 작업을 나중에 따로 할 수 있다.
dbca를 구동하면 보다 자세하고 세부적인 선택도 가능하다.
JKSPARK@HANAFOS.COM 25
26.
http://www.ggola.com 장 경 상
그림 1-8
Oracle
Install
다음은 현재 생성하는 Database에 대하여 Oracle Enterprise Manager 10g를 통해 grid
or locally control을 하려는 경우 선택하는 화면이다. 우리는 순수하게 database 기능을
확인하려는 작업임으로 다음과 같이 확인한 후 “Next”를 진행한다.
JKSPARK@HANAFOS.COM 26
27.
http://www.ggola.com 장 경 상
그림 1-9
Oracle
Install
다음은 storage option을 선택하는 창이다. 그림처럼 file system외에 10g의 특징인
“Automatic Storage Management” or “Raw Devices” mapping을 선택하는 화면이 있
다. 현재 PC에서의 작업환경은 file system이 적절함으로 이를 선택한다. “ASM”은
chapter 9에서 따로 다룰 것이다.
JKSPARK@HANAFOS.COM 27
28.
http://www.ggola.com 장 경 상
그림 1-10
Oracle
Install
다음은 backup and recovery options을 선택하는 화면이다. 이 부분은 나중에 확인할
것임으로 선택하지 않고 “Next”를 누른다.
JKSPARK@HANAFOS.COM 28
29.
http://www.ggola.com 장 경 상
그림 1-11
Oracle
Install
다음은 기본 schema의 password를 설정하는 화면이다. password설정 후 “Next”를 진
행한다.
JKSPARK@HANAFOS.COM 29
30.
http://www.ggola.com 장 경 상
그림 1-12
Oracle
Install
이제 “Next”를 누르고 다음화면에서 install을 진행한다.
JKSPARK@HANAFOS.COM 30
31.
http://www.ggola.com 장 경 상
그림 1-13
Oracle
Install
“Install”을 선택하면 다음과 같이 install화면에서 작업이 계속 진행되고 있는 것을 볼
수 있다.
JKSPARK@HANAFOS.COM 31
32.
http://www.ggola.com 장 경 상
그림 1-14
Oracle
Install
Install중 sample database 생성이 완료되면 다음과 같은 창을 통하여 password에 대한
정보를 보여준다. 여기서 “Password Management…”버튼을 통해 locked user의
password를 unlock할 수 있다. 작업이 완료되면 “OK”를 선택하여 다음 작업을 진행한
다.
JKSPARK@HANAFOS.COM 32
33.
http://www.ggola.com 장 경 상
그림 1-15
Oracle
Install
이제 다음 화면에서 지시에 따라 root user로 login하여 후속 작업을 진행한 후 “OK”를
선택한다. 다음 그림아래의 작업창을 먼저 확인하라.
그림 1-16
Oracle
Install
JKSPARK@HANAFOS.COM 33
34.
http://www.ggola.com 장 경 상
다음과 같이 다른 창에서 위 지시사항을 먼저 수행한다. 작업 중 ‘local bin directory’를
물어보기 위해 prompt가 입력을 기다리는 경우가 있는데 대부분은 그냥 enter를 치면
되지만 혹시 default ‘local bin directory’가 다르다면 직접 입력을 해준다.
[NEWSVC]LIRACLE:/app/oracle> su - root
Password:
[root@LIRACLE root]# cd /app/oracle/product/10.1.0
[root@LIRACLE 10.1.0]# ls -l root.sh
-rwxr-xr-x 1 oracle dba 18448 6월 13 14:10 root.sh
[root@LIRACLE 10.1.0]# ./root.sh
Running Oracle10 root.sh script...
nThe following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /app/oracle/product/10.1.0
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 ...
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.
/etc/oracle does not exist. Creating it now.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Oracle Cluster Registry for cluster has been initialized
Adding to inittab
Checking the status of Oracle init process...
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
liracle
JKSPARK@HANAFOS.COM 34
35.
http://www.ggola.com 장 경 상
CSS is active on all nodes.
Oracle CSS service is installed and running under init(1M)
[root@LIRACLE 10.1.0]#
이제 “OK”를 눌러서 다음과 같은 종료 화면을 볼 수 있다. 여기서는 현재 install이 되
어 있는 product중 URL정보들도 함께 보여준다.
그림 1-17
Oracle
Install
예를 들어 위 정보 중 iSQL*Plus를 다음 창과 같이 수행할 수도 있으며 위 그림의 맨 아
래의 URL을 통해 Enterprise Manager화면을 띄울 수도 있다.
JKSPARK@HANAFOS.COM 35
36.
http://www.ggola.com 장 경 상
그림 1-18
iSQL*Plu
s 실행창
어찌되었든 작업이 종료 되었고 “Exit”을 통해 install작업을 완료할 수 있다.
CF. 위 그림을 보면 버튼의 한글이 보이지 않는다. 이는 다음 장의 “Management After
Installation”을 확인하라.
CF. 작업이 완료된 후 여러분이 이 버전의 최신 patchset을 download했다면 동일한 방
식으로 patchset을 적용하도록 하자. 여기서는 보여주지 않았지만 차후 “dbua”를 설명
하는 과정에서 “10.1.0.4” patchset을 적용한 내용을 설명할 것이다.
CF. 보다 완전한 product를 install하기 위해 “Companion CD”를 통해 위와 똑 같은 방
법으로 추가적으로 oracle product install을 완료할 수 있다. 이 CD는 “Database
Examples”, “compiled Java libraries for Oracle JVM”, Oracle interMedia”, Oracle
Text”, “Legato Single Server Version(LSSV)”등을 제공하는데 이 부분들은 현재의 설명
범위가 아님으로 원한다면 이 CD를 통해 install작업 추가적으로 완료하기 바란다. 다
음은 cdrom을 제거하는 부분이다.
[NEWSVC]LIRACLE:/app/oracle> su - root
JKSPARK@HANAFOS.COM 36
37.
http://www.ggola.com 장 경 상
Password:
[root@LIRACLE root]# eject /mnt/cdrom
[root@LIRACLE root]# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hda2 28296744 15338180 11521152 58% /
/dev/hda1 101089 9181 86689 10% /boot
none 386012 0 386012 0% /dev/shm
JKSPARK@HANAFOS.COM 37
38.
http://www.ggola.com 장 경 상
5. Management After Installation
5.1.1. URL
위에서 보았듯 install후 나타난 4개의 URL(정확히는 3개. ultrasearch, isqlplus, em)은
각자 explorer를 통해 접속을 해보면 된다. 그러나 ultrasearch관련 URL은 제대로 실행
되지 않을 것이다. 이는 optional한 기능으로 과거의 oracle intermedia text의 확장이라
고 한다. 여기서 다룰 범위가 아니다
보다 자세한 정보를 원하는 사람은 다음 URL을 참조하시기 바란다.
http://download-west.oracle.com/docs/cd/B14117_01/ultra.101/b10731.pdf
5.1.2. Other Oracle Process
5.1.2.1. Process OCSSD
install 완료 후 oracle processes를 확인해보면 ocssd.bin라 명명된 processes가 running
중 인 것을 볼 수 있다. (‘ps –ef | grep ora’ 명령으로 확인해 보라) 이는 RAC관련
process임으로 여기서는 필요가 없다. 그러나 RAC를 설치하지 않는 경우(현재와 같이)
ocssd의 역할은 oracle10g의 새로운 기능인 ASM(Automatic Storage Management)과의
통신을 위해서도 필요한 것이다. 차후 ASM을 사용하지 않을 때에는 다음과 같이 확인
하여 없애도 되지만 이 processes는 resource점유율이 무시해도 좋은 수준이니 그냥 두
어도 큰 문제가 되지는 않을 것이다.
[NEWSVC]LIRACLE:/app/oracle> su - root
Password:
[root@LIRACLE root]# cat /etc/inittab | grep cssd
h1:35:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1 </dev/null
[root@LIRACLE root]# exit
[NEWSVC]LIRACLE:/app/oracle>
5.1.2.2. Manual Process 조정
그렇다면 이 process를 system의 reboot과 상관없이 stop & start를 할 수는 없을까. 물
론, 가능하지만 그렇게 하기 위해선 여러분은 oracle10g install 후 10.1.0.4 patchset을 적
용해야 한다. 만일 patchset을 적용했다면 다음과 같이 할 수 있다.
[NEWSVC]LIRACLE:/app/oracle> su - root
Password:
[root@LIRACLE root]# /etc/init.d/init.cssd stop
JKSPARK@HANAFOS.COM 38
39.
http://www.ggola.com 장 경 상
Shutting down CRS daemon.
Shutting down EVM daemon.
Shutting down CSS daemon.
Shutdown request successfully issued.
Shutdown has begun. The daemons should exit soon.
[root@LIRACLE root]# /etc/init.d/init.cssd start
Startup will be queued to init within 30 seconds.
[root@LIRACLE root]# ps -ef | grep ora
oracle 18828 18827 0 10:08 pts/0 00:00:00 -bash
root 19906 1 0 10:48 ? 00:00:00 /bin/su -l oracle -c exec /app/oracle/product/
10.1.0/bin/ocssd
oracle 19939 19938 0 10:48 pts/1 00:00:00 -bash
oracle 20023 19906 0 10:50 ? 00:00:00 /app/oracle/product/10.1.0/bin/ocssd.bin
root 20067 19844 0 10:50 pts/0 00:00:00 grep ora
[root@LIRACLE root]# exit
[NEWSVC]LIRACLE:/app/oracle>
5.1.2.3. ASM Instance와 OCSSD
아래의 내역은 ASM과 OCSSD와의 관계를 보여준다. 여러분은 아직 chapter 9를 읽지
못했기 때문에 아래 내용을 이해할 수는 없지만 이 process와 ASM과의 관계를 확인해
볼 수는 있다. ASM은 향후 chapter 9에서 배우도록 하고 아래 내용을 보면서 이
process가 미치는 영향만을 확인하도록 하자.
예를 들어 ASM을 설정하였으나 위 process를 down시켜 놓았다면 ASM
instance(chapter 9에서 설명함)를 start할 때 다음과 같은 현상이 나타날 것이다.
[+ASM]LIRACLE:/app/oracle/admin/+ASM/pfile> sqlplus / as sysdba
SQL*Plus: Release 10.1.0.4.0 - Production on Fri Oct 21 13:43:07 2005
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SYS> startup
JKSPARK@HANAFOS.COM 39
40.
http://www.ggola.com 장 경 상
ORA-29701: unable to connect to Cluster Manager
SYS> select instance_name from v$instance_name;
select instance_name from v$instance_name
*
ERROR at line 1:
ORA-01034: ORACLE not available
SYS> exit
Disconnected
[+ASM]LIRACLE:/app/oracle/admin/+ASM/pfile>
그러나 이 process를 start하면 다음과 같이 정상적으로 ASM instance를 start할 수 있
다.
[+ASM]LIRACLE:/app/oracle/admin/+ASM/pfile> su - root
Password:
[root@LIRACLE root]# /etc/init.d/init.cssd start
Startup will be queued to init within 30 seconds.
[root@LIRACLE root]# ps -ef | grep ora
oracle 19219 19218 0 13:28 pts/0 00:00:00 -bash
root 19917 1 0 13:34 ? 00:00:00 /bin/su -l oracle -c exec /app/oracle/product/
10.1.0/bin/ocssd
oracle 20240 20239 0 13:42 pts/1 00:00:00 -bash
oracle 20532 19917 0 13:48 ? 00:00:00 /app/oracle/product/10.1.0/bin/ocssd.bin
root 20576 20425 0 13:48 pts/1 00:00:00 grep ora
[root@LIRACLE root]# exit
[+ASM]LIRACLE:/app/oracle/admin/+ASM/pfile> sqlplus / as sysdba
SQL*Plus: Release 10.1.0.4.0 - Production on Fri Oct 21 13:53:57 2005
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
JKSPARK@HANAFOS.COM 40
41.
http://www.ggola.com 장 경 상
SYS> startup
ASM instance started
Total System Global Area 75497472 bytes
Fixed Size 777852 bytes
Variable Size 74719620 bytes
Database Buffers 0 bytes
Redo Buffers 0 bytes
ASM diskgroups mounted
SYS> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.4.0 -
Production
With the Partitioning, OLAP and Data Mining options
5.1.3. em & iSQL*Plus
Install 완료 후에 나오는 URL중 em(Enterprise Manager)과 isqlplus의 관리는 다음과
같이 start and stop을 통해 할 수 있다.
5.1.3.1. em 사용하기
Oracle Enterprise Manager를 사용하기 위한 process관리는 다음과 같다.
[NEWSVC]LIRACLE:/app/oracle> emctl start dbconsole
TZ set to ROK
Oracle Enterprise Manager 10g Database Control Release 10.1.0.2.0
Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.
http://LIRACLE:5500/em/console/aboutApplication
Starting Oracle Enterprise Manager 10g Database Control ..................... started.
------------------------------------------------------------------
Logs are generated in directory
/app/oracle/product/10.1.0/LIRACLE_NEWSVC/sysman/log
URL 접속 : ip_address(or hostname):5500/em/
[NEWSVC]LIRACLE:/app/oracle> emctl stop dbconsole
JKSPARK@HANAFOS.COM 41
42.
http://www.ggola.com 장 경 상
TZ set to ROK
Oracle Enterprise Manager 10g Database Control Release 10.1.0.2.0
Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.
http://LIRACLE:5500/em/console/aboutApplication
Stopping Oracle Enterprise Manager 10g Database Control ...
... Stopped.
CF. em의 port확인 및 repository의 생성과 관련된 내용들은 다음에 설명하는 “Chapter
2”에서 “em 설정 및 확인” 부분을 참조하기 바란다.
5.1.3.2. iSQL*Plus
Oracle client없이 database와 연결하여 SQL을 사용할 수 있는 isqlplus는 다음과 같이
process관리를 할 수 있다.
[NEWSVC]LIRACLE:/app/oracle> isqlplusctl start
iSQL*Plus 10.1.0.2.0
Copyright (c) 2004 Oracle. All rights reserved.
Starting iSQL*Plus ...
iSQL*Plus started.
URL 접속 : ip_address(or hostname):5560/isqlplus/
[NEWSVC]LIRACLE:/app/oracle> isqlplusctl stop
iSQL*Plus 10.1.0.2.0
Copyright (c) 2004 Oracle. All rights reserved.
Stopping iSQL*Plus ...
iSQL*Plus stopped.
5.1.3.3. Explorer에서 Language(언어 ) 문제
만일, em이나 isqlplus를 사용하는데 버튼이나 tab에 있는 한글들이 모두 깨져 알아볼
수가 없다면 이는 Oracle BUG ‘3244117’임으로 다음과 같이 해결을 해야 한다.
(1) 먼저, 오라클 메타링크 에서 patch number ‘3244117’를 찾아 해당 file을 download
한다.
(2) download된 file을 extraction한 후 한글 font file인 ‘ALBANWTK.TTF’를 찾는다.
JKSPARK@HANAFOS.COM 42
43.
http://www.ggola.com 장 경 상
(3) ftp로 해당 file을 oracle server에 ‘binary’ mode로 전송한다.
(4) 전송된 file을 다음의 위치 ‘$ORACLE_HOME/jdk/jre/lib/fonts’에 copy를 한다.
(5) isqlplus와 em을 다시 start한다.
Oracle 문서들도 그렇지만 em의 화면도 한글이 아닌 영어를 원하는 사람이 있을 것이
다. 무리한 한글 해석이 착각을 일으킬 수도 있기 때문이다. 만일 여러분이 em의 화면
을 영어로 보고 싶다면 explorer의 메뉴에서 “도구 인터넷 옵션 언어 버튼 click
영어를 선택한 후 맨 위로 이동(영어가 없다면 추가를 선택하여 영어를 추가한 후 맨
위로 이동)”을 하면 된다.
5.1.4. Policy Framework
Oracle은 우리가 흔하게 이야기하는 database를 생성할 때 controlfile을 2 copies이상
가질 것과 이들을 분리된 disk에 저장할 것 등과 같은 기본 정책을 권고하고 있다. 이를
policy-based database configuration framework이라고 부른다. 이번 oracle10g는 이러
한 기본 정책들이 제대로 유지되고 있는지를 감시하고 확인할 수 있는 기능을 제공하
고 있다. 이런 정보는 크게 database, host, listener의 세 가지 유형을 말한다.
다음은 em database control의 초기 화면이다. 우측 하단의 “All Policy Violations”항목
을 확인하자.
그림 1-19
em 초기
화면
JKSPARK@HANAFOS.COM 43
44.
http://www.ggola.com 장 경 상
이 항목에 나타난 값(위에서는 170)을 click하면 다음과 같은 화면에서 violation항목을
확인할 수 있다.
그림 1-20
정책오류
진단화면
JKSPARK@HANAFOS.COM 44
45.
http://www.ggola.com 장 경 상
OCP point
===============================================================
1. policy framework을 통해 제공하는 기본 정보의 유형 세 가지
JKSPARK@HANAFOS.COM 45