|
추천싸이트: 즐겨찾기 해놓으면 도움이 되는 사이트
추천 까페 : 네이버 네트워크 무료 강좌 추천 까페
카페운영자에게 메신져로 물어보기
네이트온 : assaman@lycos.co.kr
MSN : superljk@hotmail.com
무료상담 : 080-384-3233
탄약정보체계(운영자용) Oracle7 Administration
4장
-Database 생성-
Databas e 생성4-1
탄약정보체계(운영자용) Oracle7 Administration
4.1 배워야할것
이번장은DBA 가Oracle database 를만드는데반드시수행해야할
일련의단계들을설명하고있다.
이번장을마치면다음같은일을할수있다.
-Logical entity relationship diagram 과연관된dat abase
obj ect s 들사이의관계를논할수있다.
-dat abase 를생성시킬수있다.
-data dictionary 를만들수있다.
Data ba s e 생성4-2
탄약정보체계(운영자용) Oracle7 Administration
4.2 개관
Dat abase syst em 을관리(managi ng) 하고조직화(or gani zi ng) 하는첫단계가dat abase 를만드는것이다.
(Dat abase 를생성시킬때해야할일들)
-Tabl espaces 들을이용해서dat abase 의요소들(content s) 을조직화(or gani zi ng) 한다.
-Di sk cont ent i on 과Fr agment at i on 를최소화를고려해서dat abase
의구조(st ructure) 를설계해야한다.
-dat abase 생성을위한Operating system environment( 운영체계
환경)을미리준비해야한다.
-Parameter file 을편집한다.
-instance 를시작한다.
-
CREATE DATABASE
SQL 명령을실행시킨다.
-redo log files 과control files 들의복사본을여러개만들어서
dat abase 의안전성을확보한다.
-Password file 을만든다.
-dat abase 를관찰(moni t or i ng) 할수있게data dictionary table/view
를정의한다.
Databas e 생성4-3
탄약정보체계(운영자용) Oracle7 Administration
4.2.1 참고: Fragment at i on 이란?
(Fragmentati on 이란?) 빈영역(free space) 인작고, 연결성없는(non -contiguous) blocks 들을가지는dat abase 를우리는be
f ragment ed( 조각나있다) 라고한다. 이렇게조각난dat abase 는반듯이크고, 연결성있는(contiguous) blocks 들로재구성해서영
역(s p a c e ) 을사용해야한다.
(Fr a g me n t a t i o n 을줄이는법) f u l l d a t ab a s e e xp or t / i mp or t 를다음과같이수행하면된다.
1. Fu l l d a t ab a s e e xp or t (FULL=Y) 를실시해서전체d a t ab a s e 를백업한다.
2. SQL*DBA 또는Server Manager 안에서MONI TOR 명령을사용해서현재활동중인database users 들을확인한다. 모든user s 들이log off 할때까지오라클을shut down 하지않는다.
3. CREATE DATABASE 명령을사용해서dat abase 를재생성시킨다.
4.Full database import (FULL=Y) 를사용해서전체dat abase 를재건한다.
Data ba s e 생성4-4
탄약정보체계(운영자용) Oracle7 Administration
4.3 Tabl espaces 를결정하자
S y s t e m Ta b l e s p a c e
F i l e 1
Se gme n t s
Da t a Di c t i on a r y
Ta b l e # Co l # Ob j # Ro l l b a c k
Ex t e n t s SYSTEM
1 2 1 2 1 2 1 2 3
Da t a Ta b l e s p a c e
F i l e 2 F i l e 3
Se gme n t s
S_ EMP S_ DEPT S_ EMP S_ CUSTOMER
Ex t e n t s
1 1 2 2 3 1 2 3
RBS Ta b l e s p a c e
F i l e 4
Se gme n t s
RBS1 RBS2 RBS3
Ex t e n t s
1 2 3 1 2 3 1 2 3
Oracle database 는t ablespace 라고알려진저장공간의작은논리적영역(smaller logical areas of space) 들로나뉘게된다.
(Tabl espaces)
-각각의t abl espace 는하나이상의Operating systemfiles (운영체계파일)들로이뤄진다.
-Tabl espace 는dat abase 가동작하는동안onl ine 화(통신회선을통해외부와정보교환이가능한상태) 될수있다.
-dat abase 는계속운용되면서t abl espaces 들은off l ine 상태로가거나of f l ine 이될수있다.(can go offline or be taken
off l ine), 단SYSTEMt abl espace 는예외이다.
Ac t i v e r o l l b a c k s e gme n t s 들을포함하는모든t ab l e s p a c e 들은o f f l i n e 이될수없다.
Da ta ba s e 생성4 -5
탄약정보체계(운영자용) Oracle7 Administration
4.3.1 권장되는Tabl espaces
di sk1
di sk2
di sk3
SYSTEM
RBS
APPL1_ DATA
TEMP
APPL1_ I NDEX
TOOLS
오라클서버를인스톨할때SYSTEM tablespace 는자동생성된다.
이것외에다음같이권장되는t ablespaces 들이있다.
Ta b l e s p a c e 설명TEMP
정렬(Sor t i n g ) 할때사용하는t emp or a r y s e gme n t s ( 임시시그먼트)들을저장한다.
RBS
추가되는r o l l b a c k s e gme n t s 들을저장한다.
사용자가r ol l bac k 이란이름을가진t a b l e s p a c e 를만들수없다. 이유는ROLLBACK 은예약어(r e s e r v e d wor d ) 이기때문이다.
TOOLS Or a c l e Se r v e r t oo l s 들이필요한t a b l e s 들을포함한다.
APPL1_ DATA
Pr odu c t i on da t a 를저장한다.
t a b l e s p a c e 가둘이상존재해야한다.
APPL1_ I NDEX
APPL1_ DATA t a b l e s p a c e 안에저장되있는Pr odu c t i on
da t a 와연관된i n d e x e s 들을저장한다.
i n d e x t a b l e s p a c e 이둘이상의존재해야한다.
(Data Characteristics) 우리의dat abase 에적합한t abl espace
st ruct ure 를결정하기전에이것에저장될dat a 의특성들을먼저살펴
야한다. 다음같은이유때문이다.
-Fragmentation 을최소화한다.
-di sk cont ent i on 을최소화한다.
-segment s 들을분리한다.
어떤plat forms 상에서는Oracle installation program 이사
전에정의된t ablespaces 들을여러개만든다.
Data ba s e 생성4-6
탄약정보체계(운영자용) Oracle7 Administration
4.3.2 Fragment at i on 을최소화하자
Fr agment at i on 을최소화하기위해, 상이한fr agment at i on
charact erist ics 을가진객체(object s) 들을여러개의그룹들로구분시켜각각다른t ablespaces 에위치시킨다.
Se gme n t Typ e Fr a gme n t a t i on Ch a r a c t e r i s t i c
Dat a di ct i onar y s egment s
f r a gme n t a t i on p r op e n s i t y ( 성향)가없다.
f r e e s p a c e 을절대로조각내지(f r a gme n t )
않는다.
Appl i cat i on dat a s egment s
f r a gme n t a t i on p r op e n s i t y ( 성향) 가낮다.
t a b l e s 들의수명은그들과관련된p r o j e c t
(계획)의수명과일반적으로같다.
Appl i cat i on i nt er i m s egment s
(응용프로그램임시시그먼트들)
f r a gme n t a t i on p r op e n s i t y ( 성향) 가보통이다.
Rol l back s egment s
f r a gme n t a t i on p r op e n s i t y ( 성향) 가보통이다.
Tempor ar y s egment s f r a gme n t a t i on p r op e n s i t y ( 성향) 가높다.
(참고: Fragmented database)
-적은수의큰조각들(fewer large pieces) 보다는많은수의작은조
각들(many smal l pi eces) 안에위치하는free space (사용하지않
는bl ocks 들)을그내부에가지는dat abase 를말한다.
-이것은많이사용되는dat abase 에나타나는일반적인결과이다.
-Fragmentation 은비효율적인space 활용을낳는다.
-export ing 과import ing 을이용해서간단히수정할수있다.
Databas e 생성4-7
탄약정보체계(운영자용) Oracle7 Administration
4.3.3 Disk Contention( 디스크경합)을최소화하자
동시에필요한segment s 들끼리그룹을만들어disk contention 을최소화시킨다.
(Segment s 들을구분할때: 예)
-Dictionary segments 들을다른segment s 들에서분리시킨다.
-Rollback segments 들을다른segment s 들에서분리시킨다.
-Dat a segment s 들을그들과상응하는index segment s 들에서분리
시킨다.
-Temp segment s 들을다른segment s 들에서분리시킨다.
-Lar ge segment s 들을smal l segment s 들에서분리시킨다.
Data ba s e 생성4-8
탄약정보체계(운영자용) Oracle7 Administration
4.3.4 Segment s 들을분리시키자
비슷한동작특성(behavioral characteristics) 가진obj ect s 들나타내는segment s 들끼리그룹으로묶어서다른t abl espaces 들에위치시킨다.
(Gr oups 들로구분할때: 예) 다음같은기준으로Segment s 들을구분하여그룹화시킨다.
-요구되는b ackup 방법의차이에따라-요구되는접근방법의차이에따라-day -to-day uses 의차이에따라-수명(life spans) 의차이에따라
(그룹화의장점)
-Backup and recovery (백업과복구)
특정응용프로그램과관련된dat a 를다른응용프로그램의dat a 를
구분했을때
Backup &recovery 를손쉽게수행할수있다.
읽기전용t abl espace 를사용하면Ba ckup s 들이빨라진다.
-Sizing (크기측정)
Project data growth(data 증가)를대비한계획을수립할때, 어
떤한project ( 계획)에관련된dat a 를다른project data 들과구분함으로서data growth 를계측(measur e) 하고예상(for ecast )
하는것을보다쉽게할수있다.
-Security (보안)
객체들를묶어놓은그룹에대해User database privileges( 사용
자데이터베이스권한들)를조작함으로서보다쉽게보안성확보에필요한조치를취할수있다.
-Cl eanup (지움)
다른project data 와독립적으로project data 을저장했을때
expired project ( 완료된계획) 와관련된dat a 를Ar chivi ng
(파일로보관) 또는cl eanup 하기가보다쉬워진다.
Databas e 생성4-9
탄약정보체계(운영자용) Oracle7 Administration
4.4 Database Files 들을저장하자
st orage( 저장공간) 과per formance( 수행능)을최상으로유지하면서dat abase 를보호해야한다.
(Database File Storage)
-적어도두개의물리적인디스크에database control file 의복사본(active copies) 을최소한2개는유지해야한다.
-redo log files 들을다중화(mult iplex) 시킨다. 그리고각그룹의member s 들을다른디스크상에위치시킨다.
-[Stripi ng ] 디스크경합(disk resource contention) 에참여하는dat a 를가진t ablespaces 들을분리하여다른physical disk
r esour ces 상에위치하게한다.
Data bas e 생성4-10
탄약정보체계(운영자용) Oracle7 Administration
4.5 Database 를생성시키자
아래기술된단계를밟아서Oracle database 를생성시킨다.
(Da t a b a s e 만드는절차)
1. I ns t ance 이름을유일하게, dat aba s e 이름, b l ock s i ze , dat aba s e
cha r act er s et , dat aba s e f i l e 의최대개수, l ock f i l e s 들의최대개수를정한다.
2.Parameter file(ini t.ora )를복사하고편집한다.
3. 필요한운영체계변수(Operating systemvariables) 들을셋업한다.
4. Server Manager 를부르고sy sdba 로dat abase 로접속한다.
SVRMGRL> CONNECT / AS SYSDBA
5. instance 를시작한다.
SVRMGRL> STARTUP NOMOUNT
6. Dat abase 를만든다.
Installation scripts 들도위단계들을수행한다. DBA 는허가된옵션(licensed options) 들을인스톨하는것외에추가적으로dat a
dictionary views 그리고import/export views 들로인스톨할수있다.
Data bas e 생성4-11
탄약정보체계(운영자용) Oracle7 Administration
4.6 Instance 의이름을정하자
어떤inst ance 에대해유일한(uni que) 이름을지어주자.
어떤port s 의경우, UNI X 같은, instance 의이름이par amet er
file 의이름과일치하지않는경우도있다.
(예) dbs 디렉토리에있는parameter files 들을열거해봐라.
$ ls $ORACLE_ HOME/dbs/init*.ora
/work/oracl e7/dbs/ini t .ora
/work/oracl e7/dbs/ini t EDUC7.ora
/work/oracl e7/dbs/ini t DBA01.ora
기본적으로(b y d e f au l t ) UNI X 기계에서TEST 라는이름을가진i n s t a n c e 에대한p a r ame t e r f i l e 의이름은i n i t TES T.or a 이다.
이것의위치는$ORACLE_ HOME/ d bs 디렉토리이다.
(Ins t ance 가현재동작중인지를점검하는방법) 이를위한정확한방법은운영체계마다다르다. Unix system 상에서, 다음두명령을통해서현재동작중인모든pr ocesses 들을볼수있다.
ps -ef 또는ps -ax
background processes 들의이름은그것과연관된inst ance 의이름을포함한다.
$ ps -ef | grep ora
oracle7 380 375 0 08:39:36 pts/1 0:00 -sh
oracle7 389 1 0 08:39:47 ? 0:00 /work/oracle7/bin/tnslsnr LISTENER -inherit
oracle7 393 1 0 08:40:09 ? 0:00 ora _ pmon_ ORA733
oracle7 395 1 0 08:40:10 ? 0:00 ora _ dbwr_ ORA733
oracle7 397 1 0 08:40:10 ? 0:00 ora _ lgwr_ ORA733
oracle7 399 1 0 08:40:10 ? 0:00 ora _ smon_ ORA733
oracle7 401 1 0 08:40:10 ? 0:00 ora _ reco_ ORA733
oracle7 403 1 0 08:40:10 ? 0:00 ora _ s000_ ORA733
oracle7 405 1 0 08:40:10 ? 0:00 ora _ s001_ ORA733
oracle7 407 1 0 08:40:10 ? 0:00 ora _ s002_ ORA733
oracle7 409 1 0 08:40:10 ? 0:00 ora _ d000_ ORA733
oracle7 411 1 0 08:40:10 ? 0:00 ora _ d001_ ORA733
oracle7 413 1 0 08:40:10 ? 0:00 ora _ d002_ ORA733
oracle7 415 1 0 08:40:10 ? 0:00 ora _ d003_ ORA733
oracle7 417 1 0 08:40:10 ? 0:00 ora _ d004_ ORA733
oracle7 419 1 0 08:40:10 ? 0:00 ora _ d005_ ORA733
oracle7 527 380 0 15:12:33 pts/1 0:00 grep ora
Data bas e 생성4-12
탄약정보체계(운영자용) Oracle7 Administration
4.7 Parameter File 복사하고편집하기
init .ora 파일로대변되는Parameter file 은운영체계편집기를이용해서편집할수있는t ext 파일이다.
inst ance 가시작(st artup) 될때만읽혀진다. 만일이파일이수정된다면현inst ance 를내리고다시시작해야수정된par amet er 새값이효력를발휘하게된다.
(왜Parameter File 을수정해야하는가?) ini t.ora 파일안에
paramet er s 들은database performance( 수행능)에심대한영향을미
친다. 그리고pr oduct i on syst ems 를위해수정될사항들이좀있다.
-Syst em Gl obal Ar ea (SGA) 의구성요소들을크기결정한다.
-dat abase 와inst ance 의defaul t 값들을셋팅한다.
-dat abase 의한계(limit s) 들를셋팅한다.
-database block size 등과같은dat abase 의여러가지물리적속성
(physical attributes) 을(dat abase 생성할때만) 정의한다.
-control files, archived log files, 그리고trace files 을기재한다. (specifying)
-Memory structures 들을적절히조정해서Per formance( 수행능)을
최적화한다.
-여러가지operating parameters 들을정의한다.
-Par amet er 값으로는int erger s( 양의정수), Character strings,
또는Boolean values 가될수있다.
-주석줄은'#' 로시작한다.
-대부분의par amet er s 들이기본값(default value) 를가진다.
Data bas e 생성4-13
탄약정보체계(운영자용) Oracle7 Administration
4.7.1 Parameter File 편집하기-Ⅰ
새로운dat abase 를준비할때어떤par amet er s 들은셋팅을기재해줘(speci fy) 한다; 다른par amet er s 들은기본값으로유지된다.
(반듯이기재해야할Par ame t er s 들)
Pa r ame t e r 설명DB_ NAME
da t a b a s e i d e n t i f i e r 이다.
8 ch a r a c t e r s 이하길이를가진다.
새로운da t a b a s e 를생성할때만필요하다.
CONTROL_ FI LES c on r o l f i l e s 의이름들이다.
DB_ BLOCK_ SI ZE
Or a c l e da t a b a s e b l oc k s 들의크기단위는b y t e s
기본값은2048 b y t e s
SHARED_ POOL_ SI ZE
Sh a r e d p oo l 의크기단위는b y t e s
기본값은3500000 b y t e s
BACKGROUND_ DUMP_ DEST
b a c k gr ou n d p r oc e s s 의t r a c e f i l e s 들이적히는위치를기재한다.
USER_ DUMP_ DEST Us e r t r a c e f i l e s 이생성되는위치DB_ BLOCK_ BUFFERS SGA 안으로올려지는(c a ch ) b l oc k s 의개수기본값은60
COMPATI BLE
이i n s t a n c e 가반듯이호환이가능해야하는서버버전
(도움말:Specifying init.ora Parameters)
-Parameter file 안에최소두개의control file 의이름이기재되야한다. 가능하면이들은다른디스크에위치시킨다.
-DB_ NAME 를기재할때, control files 들안에저장된그dat abase
의이름과일치해야한다.
Data bas e 생성4-14
탄약정보체계(운영자용) Oracle7 Administration
4.7.1 Parameter File 편집하기-Ⅱ
(일반적으로수정되는Par ame t er s 들)
Pa r ame t e r 설명AUDI T_ TRAI L Au d i t t r a i l 에r ows 를쓰는작업을올리고내린다. (En a b l e or d i s a b l e )
I FI LE
s t a r t up 시사용되는또다른p a r ame t e r f i l e
의이름이다.
LOG_ BUFFER SGA 안의r e d o l og bu f f e r 에할당되는b y t e s 개수이다.
LOG_ ARCHIVE_ START
da t a b a s e 가ARCHI VELOG mod e 로운용되고있을때a u t oma t i c a r ch i v i n g 을할것인지않할것인지를결정한다.
LOG_ ARCHIVE_ FORMAT
a r ch i v e d l og f i l e s 들의이름의기본형태(d e f a u l t f i l e n ame f or ma t ) 을정한다.
LOG_ ARCHIVE_ DEST a r ch i v e d l og f i l e s 들의위치를정한다.
LOG_ CHECKPOI NT_ I NTERVAL ch e c kp o i n t s 의횟수을증가시킨다.
LOG_ CHECKPOI NT_ TI MEOUT ch e c kp oi nt s 들을주기적으로초기화시킨다.
MAX_ DUMP_ FI LE_ SI ZE Tr a c e f i l e s ( 즉ALTER f i l e s ) 들의최대크기단위는Op e r a t i n g s y s t em b l oc k s
OPEN_ CURSORS
몇개까지cu r s or s 를열수있나, 최대개수사용자가한번에열수있는것은오직하나이다.
PROCESSES
이i n s t a n c e 에동시에접속할수있는OS
p r oc e s s e s 의최대개수ROLLBACK_ SEGMENTS
이i n s t a n c e 에할당되는r o l l b a c k s e gme n t s
들의이름들SQL_ TRACE
모든사용자세션(u s e r s e s s i on ) 에대해SQL
t r a c e f a c i l i t y 를사용할지않할지를정한다.
SQL t r a c e f a c i l i t y 는각각의SQL 문들의p er f or manc e i n f or ma t i on ( 수행정보)를제공한다.
TIMED_ STATI STI CS
우리의App l i c a t i on 을SQL t r a c e f a c i l i t y
와함께동작시키기전에적절히셋팅되었는지살펴야하는i n i t i a l i za t i on p a r ame t e r s 중하나이다.
SQL t r a c e f a c i l i t y 가t i me d s t a t i s t i c s
(예를들어, CPU a n d e l a p s e d t i me s ) 를수정하게할지않할지를정한다.
FALSE 가기본값이다. t i mi n g 을않한다.
En a b l e or d i s a b l e t i mi n g i n t r a c e a n d
i n Mon i t or s c r e e n s .
※ 모든par amet er s 들은옵션이다; parameter file 안에값을지정해주지않으면기본값이적용된다.
Data bas e 생성4-15
탄약정보체계(운영자용) Oracle7 Administration
4.7.2 Parameter File 편집하기: 예-Ⅰ
(i ni t ORA733.or a)
#
# $Header: initx.orc 1.1 95/02/27 12:14:56 wyimOsd<unix> $ Copyr (c) 1992 Oracle
#
# include database configuration parameters
ifile =
/work/oracl e7/admin/ORA733/pfi l e/configORA733.ora
rollback _ segments = (r01,r02,r03,r04,r05,r06)
# tuning parameters
db _ files = 20
db _ file _ multiblock _ read_ count = 8 # SMALL
# db _ file _ multiblock _ read_ count = 16 # MEDIUM
# db _ file _ multiblock _ read_ count = 32 # LARGE
db _ block _ buffers = 200 # SMALL
# db _ block _ buffers = 550 # MEDIUM
# db _ block _ buffers = 3200 # LARGE
shared_ pool_ size = 3500000 # SMALL
# shared_ pool_ size = 6000000 # MEDIUM
# shared_ pool_ size = 9000000 # LARGE
log_ checkpoint _ interval = 10000
processes = 50 # SMALL
# processes = 100 # MEDIUM
# processes = 200 # LARGE
dml_ locks = 100 # SMALL
# dml_ locks = 200 # MEDIUM
# dml _ l ocks = 500 # LARGE
log_ buffer = 8192 # SMALL
# log_ buffer = 32768 # MEDIUM
# log_ buffer = 163840 # LARGE
sequence _ cache _ ent r i es = 10 # SMALL
# sequence _ cache _ entries = 30 # MEDIUM
# sequence _ cache _ entries = 100 # LARGE
sequence _ cache _ hash _ bucket s = 10 # SMALL
# sequence _ cache _ hash _ buckets = 23 # MEDIUM
# sequence _ cache _ hash _ buckets = 89 # LARGE
(계속)
Data bas e 생성4-16
탄약정보체계(운영자용) Oracle7 Administration
4.7.2 Parameter File 편집하기: 예-Ⅱ
(계속)
# a u d i t _ t r a i l = t r u e # i f y ou wa n t a u d i t i n g
# t i me d_ s t a t i s t i c s = t r u e # i f y ou wa n t t i me d s t a t i s t i c s
ma x _ du mp _ f i l e _ s i z e = 10240 # l i mi t t r a c e f i l e s i z e t o 5 Me g e a c h
# log_ archive _ start = true # if you want automatic archiving
compatible = 7.3.3.0
# global_ names = TRUE
global_ names = FALSE
open _ links = 200
mts _ dispatchers="ipc,3"
mts _ dispatchers="tcp,3"
mts _ max _ dispatchers=10
mts _ servers=3
mts _ max _ servers=10
mts _ service=ORA733
mts _ listener_ address=" (ADDRESS=(PROTOCOL=ipc)(KEY=ORA733))"
mts _ listener_ address=" (ADDRESS=(PROTOCOL=tcp)(host =ais358)(port =1521))"
(conf i gORA733.or a)
#
#$Header: cnfg.orc 1.195/02/2712:14:25wyimOsd<unix> $Copyr (c)1992Oracle
#
# cnfg.ora -instance configuration parameters
control_ files = (/work/oracle7/oradata/ORA733/control01.ctl,
/work/oracle7/oradata/ORA733/control02.ct l,
/work/oracle7/oradata/ORA733/control03.ct l)
# Below for possible future use...
# i n i t _ s q l _ f i l e s = (?/ db s / s q l .b s q ,
# ?/ r db ms / a dmi n/ c a t a l o g .s q l ,
# ?/ r db ms / a dmi n/ e xp v e w.s q l )
b a c k g r ou n d_ du mp _ d e s t = / wo r k/ o r a c l e 7/ a dmi n/ ORA733/ b du mp
c o r e _ du mp _ d e s t = / wo r k/ o r a c l e 7/ a dmi n/ ORA733/ c du mp
u s e r _ du mp _ d e s t = / wo r k/ o r a c l e 7/ a dmi n/ ORA733/ u du mp
# l o g_ a r c h i v e _ d e s t = / wo r k/ o r a c l e 7/ a dmi n/ ORA733/ a r c h / a r c h .l o g
#db _ b l o c k _ s i z e = <b l o c k s i z e >
db _ n a me = ORA733
Data bas e 생성4-17
탄약정보체계(운영자용) Oracle7 Administration
4.7.3 셋팅된Paramet er 값보기
Li ne mode 의Server Manager 를사용하자-Server Manager 의l i ne mode 로들어간다.
-sy sdba 로dat abase 에접속한다.
-SHOW PARAMETER 명령을사용한다.
#su -'오라클계정'
$ svrmgrl
SVRMGRL> CONNECT / AS SYSDBA
Connect ed.
SVRMGRL> SHOW PARAMETER
모든par amet er s 들의셋팅을보려면SHOW PARAMETER 를사용한다.
모든par amet er s 들의셋팅을보는또다른방법은internal table
인V$PARAMETER 를사용하는것이다.
SGA 의크기를알고싶을때
SVRMGRL> SHOW SGA
Tot a l Sy s t em Gl ob a l Ar e a 4576376 b y t e s
Fi x e d Si z e 39808 b y t e s
Va r i ab l e Si z e 4118776 b y t e s
Da t ab a s e Bu f f e r s 409600 b y t e s
Re d o Bu f f e r s 8192 b y t e s
또는
NAME VALUE
Fi x e d Si z e 39808 b y t e s
Va r i ab l e Si z e 4118776 b y t e s
Da t ab a s e Bu f f e r s 409600 b y t e s
Re d o Bu f f e r s 8192 b y t e s
SVRMGRL> select * fromV$SGA
Data bas e 생성4-18
탄약정보체계(운영자용) Oracle7 Administration
4.8 System Identifier (SID) 셋팅
SI D 는사용자가접속하려는i n s t a n c e 가무엇인지를결정하기위해오라클서버가사용하는환경변수이다.
(변수셋업) i n s t a n c e 를시작(s t a r t up ) 하기전에, SI D 의값이정
확한지를확인해야한다. 만일정확하지않다면적당한OS 명령들을
사용해서정확한값으로수정해야한다.
(예) UNI X 기계상에서ORACLE_ SI D 값을TEST 로셋팅하고, 그리고
나서이를확인하라.
$ ORACLE_ SID=TEST;export ORACLE_ SID
$ echo $ORACLE_ SID
TEST
SI D 의길이는8 char act er s 까지될수있다.
간단히SI D 를셋팅해서사용자가다른dat abases 들로접속할수있도록만든다.
Data bas e 생성4-19
탄약정보체계(운영자용) Oracle7 Administration
4.9 ORA_ NLS 셋팅
우리의dat abase 를생성하기전에language object files (언어객체파일들)이있는곳까지의Pat h 로ORA_ NLS 환경변수를셋팅한다.
(예) UNI X 기계상에서ORA_ NLS 를?/ocommon/nl s/admi n/dat a 로셋팅한후이를확인하라.
$ ORACLE_ NLS=?/ocommon/nl s/admi n/dat a
$ expor t ORA_ NLS
$ echo $ORA_ NLS
?/ocommon/nl s/admi n/dat a
(ORA_ NLS 셋팅의중요성)
If ORA_ NLS is not set and the database is started
with other languages and character sets than the
database default they will NOT be recognized.
다음과같은결과를가져온다.
-Character-set translation not occurring for clients
using a character set different than the database
default. This may result in corrupt data in certain
applications as 8-bit values may be lost or
mi sint erpr et ed
-사용자가접속할때ORA-12705 오류-"SQL*Loader-266: Unable to locate character set" 오류-예상치못한언어로메시지가뜬다.
(NLS 셋팅이가용한지를점검) DBA 로dat abase 에접속하여다음
명령을사용한다.
SELECT * FROMsys.v$nls _ valid_ values;
dat abase 가시작되었을때ORA_ NLS 가설정되있지않다면, 기본값
들(default s) 만출력된다. 만일ORA_ NLS 가설정되있었다면인스톨
된셋팅값들을출력한다.
(주) 오라클버전7.2 이상부터는반듯이ORA_ NLS 를설정해줘야한다.
Data bas e 생성4-20
탄약정보체계(운영자용) Oracle7 Administration
4.10.1 Database 생성: Synt ax -Ⅰ
아래설명할역할을하는옵션들을가지고일반적인사용이가능한dat abase 를만든다.
-Instances, data files, redo log files groups, redo log
file members 의최대개수를정한다.
-data files 들과redo log files 들의이름과크기를정한다.
-redo log 를사용할mode 를정한다.
오라클dat abase 는다음파일들로구성된다.
-Datafiles : tables 과i ndexes 을저장함-Redo log files : 오라클서버의복구구조(Oracle Server
r e c ov e r y s t r u c t u r e s ) 의한부분-Con t r o l f i l e s : da t ab a s e 를시작하고유지(ma i nt a i n ) 하는데필요한제어정보(c on t r o l i n f or ma t i on ) 를가짐(Sy s t a x )
atabase 생성4-21
탄약정보체계(운영자용) Oracle7 Administration
4.10.1 Database 생성: Synt ax -Ⅱ
(옵션설명)
p a r ame t e r 설명dat abas e
생성될da t a b a s e 의이름이다.
길이가8 b y t e s 까지될수있다.
오라클7은이이름을c on t r o l f i l e 에적는다.
생략하면초기화매개변수DB_ NAME 에정의된값으로이름이주어지게된다.
f i l esp ec 다음참고구절에서설명한다.
CONTROLFI LE REUSE
i n i t i a l i za t i on p a r ame t e r CONTROL_ FI LES 에서확인되는기존의c on t r o l f i l e s 들을다시사용한다.
그래서현재그들이저장하고있는정보들은모두무시되고덮어쓰기가된다.
새로da t a b a s e 를만들때보다재생성할때쓰인다.
만일이옵션을생략한체CONTROL_ FI LES 에기재된파일중어떤것도이미존재하고있으면오류를내게된다.
LOGFI LE
r e d o l og f i l e s 로사용될파일을하나이상정한다.
r e d o l og f i l e 의memb e r s 들또는c op i e s ( 복사본)
들을하나이상가지는r e d o l og f i l e gr oup 를각각의f i l e s p e c 이정의한다.
CREATE DATABASE 문안에서정의된모든r e d o l og
f i l e s 들은r e d o l og t h r e a d numb e r 1에추가된다.
r e d o l og f i l e gr oup 에대한GROUP p a r ame t e r 의값을역시선택할수있다. 각값은r e d o l og f i l e
gr oup 하나하나에할당되며1에서부터MAXLOGFI LES
p a r ame t e r 에서정한값까지를가질수있다. 이값을정해주지않으면오라클이자동으로할당해버린다.
V$LOG 테이블에서이들을관찰할수있다.
만일LOGFI LE 구절을생략한다면Or a c l e 7 은두개의r e d o l og f i l e gr oup s 을기본으로만든다.
MAXLOGFI LES
이da t aba s e 에생성될수있는r e do l og f i l e gr oup s
의최대개수를정의한다.
오라클7은이값을이용해서c on t r o l f i l e 안에r e d o l og f i l e s 들의이름을위해할당되는공간이얼마나필요한지를결정하게된다.
우리의i n s t a n c e 에접근할수있는r e d o l og f i l e
g r o u p s 의숫자는i n i t i a l i z a t i o n p a r a me t e r
LOG_ FI LES 에의해서제한된다.
MAXLOGMEMBERS
r e d o l og f i l e gr oup 하나안에있을수있는memb e r s 또는c op i e s 의최대개수를정한다.
오라클7은이값을이용해서c on t r o l f i l e 안에r e d o l og f i l e s 들의이름을위해할당되는공간이얼마나필요한지를결정하게된다.
최소값은1이다.
최대값과기본값은OS 에의존한다.
Data bas e 생성4-22
탄약정보체계(운영자용) Oracle7 Administration
4.10.1 Database 생성: Synt ax -Ⅲ
MAXLOGHI STORY
Pa r a l l e l Se r v e r 옵션을가진오라클7이au t oma t i c
me di a r e c ov e r y 하는데필요한a r ch i v e d r e do l og
f i l e s 의최대개수를정한다.
오라클7은이값을이용해서c on t r o l f i l e 안에a r ch i v e d r e d o l og f i l e s 들의이름을위해할당되는공간이얼마나필요한지를결정하게된다.
최소값은0 이다.
MAXDATAFI LES
이da t a b a s e 를위해생성될수있는da t a f i l e s 의최대개수최대값은1
우리의i n s t a n c e 에접근할수있는da t a f i l e s 들의숫자는i n i t i a l i z a t i o n p a r a me t e r DB_ FI LES
에의해서제한된다.
MAXI NSTANCES
이da t a b a s e 에mou n t 와op e n 을동시에할수있는i n s t a n c e 의최대개수초기화매개변수I NSTANCES 값보다우선권을가진다.
최소값은1이다.
최대값과기본값은운영체계에따라다르다.
ARCHI VELOG
r e d o l og f i l e gr oup s 들이a r ch i v e l og mod e 로운영되게한다.
이mod e 에서는그r e d o l og f i l e gr oup 이다시사용되기전에그것의내용들이반듯이파일로저장된다.(a r ch i v e d )
me d i a r e c ov e r y 을하기위해반듯이먼저지정되있어야한다.
NOARCHI VELOG
r e d o l og f i l e gr oup s 들이n o a r ch i v e l og mod e
로운영되게한다.
이mod e 에서는그r e d o l og f i l e gr oup 이다시사용되기전에그것의내용들이파일로저장되지않는다.
이옵션이지정되면me d i a r e c ov e r y 할수없다.
EXCLUSI VE
da t a b a s e 가생성이후에e x c l u s i v e mod e 로mou n t
된다.
이mod e 에서는오직우리의i n s t a n c e 만이da t a b a s e
에접근할수있다.
CHARACTER SET
da t a b a s e 가da t a 를저장할때사용할ch a r a c t e r
s e t 을정한다.
da t a b a s e 가만들어진후에는이를바꿀수없다.
지원되는ch a r a c t e r s e t s 들과이p a r ame t e r 의기본값은운영체계에따라다르다.
DATAFI LE
da t a b a s e f i l e 로사용될파일을하나이상정한다.
이들파일모두는SYSTEM t ab l e spa c e 의일부분이된다.
이구절이생략되면, 오라클7은기본적으로da t a f i l e
를하나만만든다. 이기본f i l e 의크기와이름은운영체계에따라다른다.
Data bas e 생성4-23
탄약정보체계(운영자용) Oracle7 Administration
4.10.2 Database 생성: 예
이름은TEST 이다. 크기가10MB 인sy s t em.dbs 라는이름의dat afi le 을
하나만가진다. 각각크기가500KB 인두개의r e d o l og f i l e
l og 1a .r do 와l og2a .r do 를가진다. Ch a r a c t e r s e t 은기본값인US7ASCI I 가된다.
SVRMGR> CREATE DATABASE t e s t
2> DATAFILE '/u02/oracle/DBA01/system.dbs' SIZE 10M
3> LOGFILE Group 1 '/u01/Oracle/DBA01/log1a.rdo'
4> SI ZE 500K
5> Group 2 '/u01/Oracle/DBA01/log2a.rdo' SIZE 500K;
8-bite character set 와다중화된r edo l ogs 를가진dat abase
를만들어라.
SVRMGR> CREATE DATABASE t e s t
2> DATAFILE '/u02/oracle/DBA01/system.dbs' SIZE 10M
3> LOGFI LE Gr oup 1
4> ('/u01/Oracle/DBA01/redo1a.log' ,
5> '/u02/Oracle/DBA01/redo1b.log' ) size 500K,
Group 2('/u01/Oracle/DBA01/redo2a.log' ,
'/u02/Oracle/DBA01/redo2b.log' ) size 500K
CHARACTER SET WE8I SO8859P1;
(도움말) log file 의이름들은full path 와함께기재되어야한다.
그렇지않을경우오라클은이들을default directory 에생성시킨
다. default directory 은syst em 마다다르다.
(참고) CREATE DATABASE 문은실행이완료될때까지시간이좀걸릴
수있다. 그시간은b a c kgound 에서일어나는pr ocessi ng 의양에달
렸다.
Data bas e 생성4-24
탄약정보체계(운영자용) Oracle7 Administration
4.10.3 참고: Fi l espec -Ⅰ
(Sy s t ax)
(옵션설명)
p a r ame t e r 설명f i l ename da t a f i l e 또는r e d o l og f i l e memb e r 의이름SI ZE
f i l e 의크기를정한다.
이p a r ame t e r 를생략하려면반듯이파일이존재해야한다.
(주) t a b l e s p a c e 의경우그것에포함되는객체들의크기의총합보다블록하나크기가더커야한다.
K는k i l ob y t e s 단위, M은me ga b y t e s 단위이다. 만일K와M을생략하면, 크기는b y t e s 단위로정의된다.
REUSE
오라클7이존재하는f i l e 를재사용할수있게한다.
f i l e 이이미존재한다면오라클7은그것의크기와SI ZE 의값이같은지확인한다. 만일존재하지않는다면오라클7은파일을다시만든다.
SI ZE 옵션을생략할경우오라클은그파일이이미존재한다고생각한다.
오라클7이기존파일을사용할때마다그파일의이전내용을잃게된다.
Data bas e 생성4-25
탄약정보체계(운영자용) Oracle7 Administration
4.10.3 참고: Fi l espec -Ⅱ
(예) 각각두개의member s 를가진두개의redo log file groups
과하나의dat afi le 을가진PAYABLE 란이름을가진dat abase 를생성시키자.
CREATE DATABASE payabl e
LOGFILE GROUP 1 ('diska:log1.log' , 'diskb:log1.log' ) SIZE 50K,
GROUP 2 ('diska:log2.log' , 'diskb:log2.log' ) SIZE 50K
DATAFILE 'diskc:dbone.dat' SIZE 30M
- 첫번째f i l espec 는GROUP value 로1을가지는redo log file
gr oup 를정의하고있다. 이gr oup 는각각의크기가50 kilobytes 인
DI SA:LOG1.LOG 와
DI SKB:LOG1.LOG 이름을가진member s 를가진다.
-두번째f i l espec 는GROUP value 로2를가지는redo log file
gr oup 를정의하고있다. 이gr oup 는각각의크기가50 kilobytes 인
DI SA:LOG2.LOG 와
DI SKB:LOG2.LOG 이름을가진member s 를가진다.
-DATAFI LE 구절에있는f i l espec 은크기가30 megabyt es 인이름이
DI SKC:DBONE.DAT
인data file 를정의한다.
-예에사용된모든f i l especs 들의경우SIZE parameter 의값은정의되있고REUSE 옵션은생략되있기때문에, 이들파일들은존재하고있을필요가없다. 오라클7은반듯이이들은생성해야한다.
Data bas e 생성4-26
탄약정보체계(운영자용) Oracle7 Administration
4.11 Control File 추가
Control file 은dat abase 가시작될때읽혀진다. 만일발견되지않으면, dat abase 는시작되지않는다. 따라서우리의dat abase 가최소한두개의control file 을참조할수있게만든다. 다음단계들을밟으면된다.
(Control file 을참조하는절차)
1. dat abase 를내린다. (shut down)
2. 기존의control file 을새로운위치로복사한다.
3.parameter file 을수정해서새복사본의이름을추가시킨다.
4. 수정된parameter file 을가지고dat abase 를시작시킨다.
-이절차는control file 이하나만존재할때를가정한것이다. 만일우리의dat abase 가여러개의control files 들을가지고생성되었다면이런절차는필요없다.
-Oracle server 가새로복사된control file 에대해
읽고쓰는
권한을가졌는지를확인해야한다.
(예)
SVRMGR> SHUTDOWN
SVRMGR> HOST cp cont r ol 1.con cont r ol 2.con
SVRMGR> HOST ed i ni t .or a
CONTROL_ FI LES=(path/f i l e1, path/f i l e2 )
SVRMGR> CONNECT / AS SYSDBA
SVRMGR> STARTUP PFI LE=ini t.file
Data bas e 생성4-27
탄약정보체계(운영자용) Oracle7 Administration
4.12 Redo Log Member 추가-Ⅰ
(Multiplex online redo log) 한database instance 의onl ine
r edo l og 는online redo log files 들을여러개Gr oups 들로다중화시켜구성한다. 추가로같은gr oup 안의member s 들을각기다른di sks
상에위치시킴으로서디스크하나의오류로인해LGWR 와dat abase
inst ance 가실패하는것을방지할수있다. Gr oup 의한membe r 가변경되면다른membe r 역시마찬가지로변경된다. online redo log file
하나를가진di sk 가손상될경우, 다른본사본들은손상을입지않고있으며오라클이사용가하므로시스템의동작은영향을받지않는다. 그리고손상된online redo log files 들은쉽게복구된다.
(ALTER DATABASE : Syntax)
Data bas e 생성4-28
탄약정보체계(운영자용) Oracle7 Administration
4.12 Redo Log Member 추가-Ⅱ
(계속)
-[옵션]
Pa r ame t e r 설명dat abas e 수정할da t a b a s e 의이름f i l ename OS f i l e 의이름GROUP i n t eger l og f i l e memb e r 가추가될gr oup 의번호
-
-
REUSE 옵션이사용되면, 그파일은이미존재하고있어야한다. 그렇지않으면같은그룹의다른memb e r s 들과같은크기로파일이생성된다.
V$LOG d i c t i on a r y v i ew 를질의하면l og f i l e s 들의현재상태를알수있다. V$LOGFI LE 를질의하면l og f i l e s 들의p a t h 까지포함한완전한이름을알수있다.
Data bas e 생성4 -29
탄약정보체계(운영자용) Oracle7 Administration
4.12 Redo Log Member 추가-Ⅲ
(Redo Log Member 추가: 예) TEST dat abase 안에l og1b.r do
라고하는log file 을번호가1인Gr oup 에추가시켜라. 그리고잘되었는지확인하라.
SVRMGR> ALTER DATABASE t e s t
2> ADD LOGFILE MEMBER '/u01/Oracle/DBA01/log1b.rdo'
3> TO GROUP 1;
Statement processed
SQL> SELECT * FROMv$logfile;
GROUP# STATUS MEMBER
1 /u01/Oracle/DBA01/log1a.rdo
2 /u01/Oracle/DBA01/log2a.rdo
1 /u02/Oracle/DBA01/log1b.rdo
-파일명은지정해야하지만크기는지정할필요가없다. 기존memb e r 의크기에의해서결정된다.
-TO 매개변수뒤에대상그룹의member s 들을지정함으로서
GROUP #
를대신할수있다.
SVRMGR> ALTER DATABASE
2> ADD LOGFI LE MEMBER 'l og2b ' TO GROUP 2;
SVRMGR> ALTER DATABASE
2> ADD LOGFI LE MEMBER 'l og2c ' TO (' l og2a ',
l og2b ');
-[참고] 새log file members 들이추가된후에, V$LOG 를질의해보면어떤f i l es 의경우STATUS 가STALE 임을볼수있다. 이는그들의가지고있는내용들이불완전함을나타낸다. 이것은정상적이며l og
file 이inst ance 에의해사용되면곧바뀌게된다.
Data bas e 생성4-30
탄약정보체계(운영자용) Oracle7 Administration
4.12 Redo Log Member 추가-Ⅳ
(Redo Log Gr oup 의Member s 들의크기를바꾸는법) 단지바꾸려는Gr oups 들삭제하고, 원하는크기를가진새로운Gr oups 들을만드는것외에직접적으로바꾸는방법은없다.
(Redo Log Gr oup 의생성: 예)
SVRMGR> ALTER DATABASE
2> ADD LOGFI LE (' l og1c ', 'l og2c ' ) SI ZE 500K;
Statement processed
SVRMGR> ALTER DATABASE
2> ADD LOGFI LE GROUP 10 (' l og1c ', 'l og2c ' ) SI ZE 500K;
Statement processed
(Redo Log Member 의위치및이름변경: 절차)
1.dat abase 를백업한다.
작업간문제발생을대비하여control file 을포함하여dat abase 를완전하게백업해둬야한다.
2.online redo log file 을새위치로복사
3.online redo log member 의이름을변경ALTER DATABASE 의RENAME FI LE 구절을이용
4. 다시정상적으로dat abase 를시작한다.
5.control files 들을백업해놓는다.
예방책으로일련의online redo log file 의이름을변경하거나위치를재지정한후즉시dat abase 의control file 을백업해놔야한다.
(Redo Log Member 의위치및이름변경: 예)
-[상황]
dat abase 는현i nst ance 에의해mount 는되있는나open 되있지않다.
현online redo log 는이중화되있다. 즉한그룹은member l og1a
와l og1b, 두번째그룹은l og2a, l og2b 으로구성된다. 파일l og1a
와l og2a 는disk A 에l og1b 와l og2b 는disk B 에저장된다.
-[과제] 현재disk A 에저장된online redo log file 의위치를di sk
C 로옮겨라. 새이름과위치는l og1c , l og2c 이다.
-먼저Disk A 의l og1b 와l og2b 파일을Disk C 의새파일l og1c , l og2c
로복사한다. 그런뒤다음명령으로수행한다.
SVRMGR> ALTER DATABASE
2> RENAME FI LE 'l og1a ' , 'l og2a '
3> TO 'l og1c ' , 'l og2c ' ;
Data bas e 생성4-31
탄약정보체계(운영자용) Oracle7 Administration
4.12 Redo Log Member 추가-Ⅴ
(Onl i ne Redo Log Gr oup 삭제: 설명/ 예)
- [제한사항] 삭제하기전에다음사항들이만족되야한다.
그룹에속한membe r 수에관계없이inst ance 는최소두개의redo log file 이필요하다.
비활성인online redo log group 만이삭제될수있다. 활성online redo log group 을삭제하려할경우먼저log switch 가일어나도록강재해야한다.
online redo log group 그룹이(만일ar chi ve 가가능할경우)
ar chi ve 되었는지를다음명령으로확인한다.
SVRMGR> ARCHI VE LOG LI ST
-[삭제] redo log group 3을지우자
SVRMGR> ALTER DATABASE DROP LOGFI LE GROUP 3;
-[주] 위명령문은단지control file 의내용을database structure
에서gr oup 이삭제된것으로갱신하는것이다. 따라서실제운영체계파일은삭제되지않았으므로운영체계명령으로이들을삭제해줘야한다.
Data bas e 생성4-32
탄약정보체계(운영자용) Oracle7 Administration
4.12 Redo Log Member 추가-Ⅵ
(Onl i ne Redo Log Member 삭제: 설명/ 예)
-[제한사항]
online redo log files 들을삭제함으로서다중화된onl ine
r edo l og 가일시적으로비대칭이될수있다. 그렇지만우리는이상황을즉시수정하여대칭을이루게함으로서그online redo
l og 에대한single point of failure 을제거할수있다.
Inst ance 는유효한(valid) online redo log groups 이최소두개는필요하다. 만일우리가삭제하려는memb e r 가그그룹에서최근유효(val id) 한것이었다면다른momber s 들이유효해질때까지이것을삭제할수없다.
활성그룹의일부가아닐때삭제할수없다. 만일활성그룹의member
를삭제하고싶은경우먼저log switch 를강제로발생시켜야한다.
삭제하려는memb er 가속한online redo log group 그룹이(만일ar chive 가가능할경우) archive 되었는지를확인해야한다.
-[삭제] r edo l og member 3을지우자
SVRMGR> ALTER DATABASE DROP LOGFI LE MEMBER 'l og3c ;
-[주] 위명령문은단지control file 의내용을database structure
에서member 가삭제된것으로갱신하는것이다. 따라서실제운영체계파일은삭제되지않았으므로운영체계명령으로이들을삭제해줘야한다.
Data bas e 생성4-33
탄약정보체계(운영자용) Oracle7 Administration
4.12.1 Onl i ne Redo Log 에관한정보보기
V$LOG, V$LOGFI LE, V$THREAD 뷰를통해서볼수있다. V$THREAD 뷰는특히Parallel server 관리자가관심을갖는것이다.
다음질의는병렬서버없이사용되는dat abase 의online redo
l og 에관한정보를보여준다.
SQL> SELECT group#, bytes, members FROMsys.v$log;
GROUP# BYTES MEMBERS
1 81920 2
2 81920 2
그룹의모든memb e r 들의이름을보려면
SQL> SELECT * FROMsys.v$logfile WHERE group# = 2;
GROUP# STATUS MEMBER
2 LOG2A
2 STALE LOG2B
2 LOG2C
-각memb e r 의STATUS 란이공백이면그파일이사용중이란말이다.
-오라클7이redo log file 에접근이불가능할때그파일은I NVALI D 가된다.
-오라클7이redo log file 이완전치도정확치도않다고간주할때STALE 가된다.; stale log file 은자신을포함하는그룹이활성화되면VALI D 가된다.
Data bas e 생성4-34
탄약정보체계(운영자용) Oracle7 Administration
4.13 Pas sword Fi l e 만들기-Ⅰ
dat abase 를관리하는사용자에대한인증방법을password file 로택했을경우, 아래기술된절차를밟아야한다.
(Password File 생성절차)
1. ORAPWD 도구를사용해서password file 을만든다.
Synt ax :
$ or apwd
Usage: orapwd file =<fname> password=<password> entries=<users>
wher e
file -name of password file (mand)
password -password for SYS and INTERNAL (mand)
entries -maximumnumber of distinct DBAs and OPERs (opt)
There are no spaces around the equal-to (=) character.
Parameters :
p a r ame t e r 설명FI LE
생성될Pa s s wor d 의이름, 반듯이경로명까지명확히기재파일의내용은암호화되있고사용자가읽을수없다.
Ma n da t or y ( 반듯이지정되야하는매개변수이다.)
PASSWORD
I NTERNAL 와SYS 의p a s s wor d 를정한다.
만일생성된계정으로접속한이후에ALTER USER 명령으로p a s s wor d 를바꿀경우da t a d i c t i on a r y 와p a s s wor d
f i l e 안에저장된p a s s wor d 가모두갱신된다.
Ma n da t or y
ENTRI ES
Pa s s wor d f i l e 안에만들어질수있는e n t r y 의최대개수SYSDBA 또는SYSOPER 로서da t a b a s e 에접속할수있게허가된서로다른사용자들의최대숫자와상응한다.
Op t i on : 이p a s s wor d f i l e 을EXCLUSI VE 로사용하길원할때는지정해줘야한다.
예: 다른암호를가진30 명의권이부여된사용자를허용하는ACCT.PWD 라는password file 을작성한다. SYS 나I NTERNAL 사용자들을위한passwor d 를SECRET 로초기화한다.
$ orapwd FILE=acct.pwd PASSWORD=secret ENTRIES=30
Data bas e 생성4-35
탄약정보체계(운영자용) Oracle7 Administration
4.13 Pas sword Fi l e 만들기-Ⅱ
2.Initial parameter REMOTE_ LOGIN_ PASSWORDFILE 를EXCLUSI VE 로정해줘야한다.
3. Server Manager 를l i ne mode 로시작한후, SYSDBA 권한으로접속하고,
dat abase 를시작(start up) 하여REMOTE_ LOGI N_ PASSWORDFI LE
par amet er 를인지할수있도록한다.
SVRMGRL> CONNECT SYS/change_ on_ install AS SYSDBA
SVRMGRL> SHUTDOWN I MMEDI ATE
SVRMGRL> STARTUP
4.dat abase 를함께관리할관리자들에게SYSDBA 또는SYSOPER 권한을허가(GRANT) 한다. (SYS 나I NTERNAL 만이권한이있다.)
SVRMGRL> GRANT SYSDBA TO scot t ;
※ 권한취소
SVRMGRL> REVOKESYSDBAFROMscott;
5. 만일단일원격Cl ient 에서dat abase 를관리하고싶다면, FTP 로init SID.ora 파일을당신의원격cl ient 로전송시킨다.
6. 당신의원격Cl ient 에서Server Manager 를시작한후DBA 로접속하여dat abase 를관리할수있다.
SVRMGRL> CONNECT scott/tiger AS SYSDBA;
※ 이경우scot t 는자신의s chema 로접속된것이아니라SYS 의고유s chema 로접속한것이다.
( V$P WFI LE_ US ERS ) SYSDBA 나SYSOPER 시스템권한을부여받은사용자들을알아볼수있다.
(Pa s s wo r d f i l e 제거)
더이상사용자인증에Pa s s wor d Fi l e 을사용하지않고자하면먼저
파일을지운후REMOTE_ LOGI N_ PASSWORDFI LE 을NONE 으로지정한다.
Data bas e 생성4-36
탄약정보체계(운영자용) Oracle7 Administration
4.14 Data Dictionary
Data dictionary 는Oracle database 의중요한부분이다.
Data dictionary 는연관된dat abase 에대한정보를제공하며읽기
전용으로참조된다. views 들과t ables 들을모아둔것이다.
Base data dictionary tables 은s ql .bs q script file 로생성
시킨다. (/work/oracle7/sql.bsq)
Data Dictionary 의내용
-Oracle Server 사용자들의사용자명들(User names )
-각사용자들에게부여된(gr ant ) 권한(Pr ivi l eges) 들과r ol es 들
-Schema obj ect s 의이름들(names ) 과정의들(definit ions)
-Integrity constraints (무결성제약들)
-Dat abase obj ect s 들에대한저장공간할당(space al l ocat i on)
-일반적인dat abase 구조; General database structure)
-Auditing information (감사정보)
-Stored procedures 들과database triggers 들
Data bas e 생성4-37
탄약정보체계(운영자용) Oracle7 Administration
4 .14 .1 추가적인Data Dictionary Views 생성
어떤Oracle SQL script files 들은data dictionary functions
를수행한다. 그리고dat abase 를생성시킬때또는그후에실행된다.
Dat abase 을생성시킨후실행되는Script s 들
p a r ame t e r 설명cat al og.s ql
/ wor k/ or a c l e 7/ r dbms / a dmi n/ c a t a l og .s q l
일반적으로사용되는da t a d i c t i on a r y v i ews 들을생성시킨다.
catp r oc.s ql
/ wor k/ or a c l e 7/ r dbms / a dmi n/ c a t p r oc .s q l
Se r v e r 상의PL/ SQL 에필요한모든s c r i p t s 들실행시킨다.
(예) Data dictionary views 들을생성키위해catal og.sql 을실행시켜라.
SVRMGRL> @?/rdbms/admin/catalog.sql
...
DROP VIEWv _ $process
ORA-00942: table or viewdoes not exist
CREATE VIEWv _ $process AS SELECT * FROMv$process
Statement processed.
DROP PUBLIC SYNONYMv$process
DROP PUBLIC SYNONYMv$process
*
ORA-1432:
public synonymto be dropped does not exist
CREATE PUBLIC SYNONYMv$process FOR v _ $process
Statement processed.
...
※ (주의) cat aud.sql , catal og.sql , ut l mon t r .sql 을SYS 의s ch ema
아래서실행해야한다.
Data bas e 생성4-38
탄약정보체계(운영자용) Oracle7 Administration
4.14.2 Data Dictionary 의사용자들
Data dictionary 는Oracle Server 와dat abase 의사용자들을위해제공되는정보의원천이다.
(Data dictionary 의사용자들)
-DBAs (Dat abase 관리자들)
-Dat abase 의사용자들-Applications (응용프로그램들)
-Oracle Server
Base data dictionary table 을직접적으로updat e 하는I NSERT,
UPDATE, DELETE 와같은DML 명령들을사용하지말아라. DDL 명령을사용해서dict ionary 를은연중(implicitly) update 시킨다. Dat a
dict ionary 를살피고자한다면적당한t ables 과v i ews 들을골라
SELECT 문을사용한다.
(Da t a Di c t i o n a r y Ca t e g o r i e s : 분류) d a t a d i c t i on a r y 는일련의b a s e t ab l e s 들과다음같이분류되는관련성있는일련의v i ews 들로구성된다.
p a r ame t e r 설명USER_ xxx
모든사용자가접근할수있다.
그리고그들이소유하는객체들에대한정보를준다.
ALL_ xxx
모든사용자가접근할수있다.
어떤한사용자가접근가능한모든객체들에대한정보를준다.
DBA_ xxx
DBAs 들만이접근할수있는Vi ews 들이다.
Da t aba s e 안의모든개체들의정의에대한정보를준다.
ANSI -compat i bl e MYPRI VS 와ACCESSI BLE_ TABLES 같이ANSI 와호환을위해만들어진Syn onyms ( 동의어들)
(Data Dictionary )
-모든data dictionary tables 들과v i ews 들은sys 가소유한다.
-ALL_ xxx 와USER_ xxx Vi ews 들을위한Pub l i c s yn onyms ( 공용동의어)들이생성될수있다.
-접미어로붙는이름은Or a c l e Se r v e r v i ews 의3가지분류안에서일관된다.
-USER_ vi ews 들은OWNER column 을가지지않는다.
-많은DBA_ xxx Vi ews 들이그들과동등한(equivalent) USER_ xxx
또는ALL_ xxx Vi ew 를가지지않는다.
-
DICTIONARY data dictionary table 을질의하면모든dat a
dictionary views 들의이름을얻을수있다.
Data bas e 생성4-39
탄약정보체계(운영자용) Oracle7 Administration
4.14.3 Data Dictionary Views 보기-Ⅰ
당신이소유하는모든객체들에대한정보를보여라.
SQL> SET FEEDBACK ON
SQL> COL obj ect _ name FORMAT A20
SQL> COL timestamp NOPRINT
SQL> SELECT * FROMuser_ objects;
OBJ ECT_ NAME OBJ ECT_ I D OBJ ECT_ TYPE CREATED LAST_ DDL STATUS
CATALOG 576 SYNONYM 02-MAY-96 02-MAY-96 VALI D
COL 581 SYNONYM 02-MAY-96 02-MAY-96 VALI D
... ... ... ... ... ...
DBA_ EXTENTS 766 SYNONYM 02-MAY-96 02-MAY-96 VALI D
DBA_ FREE_ SPACE 767 SYNONYM 02-MAY-96 02-MAY-96 VALI D
당신이소유하는Syn onyms 들에대한정보를보여라.
SQL> COL DB_ LI NK NOPRI NT
SQL> SELECT * FROMuser_ synonyms;
SYNONYM_ NAME TABLE_ OWNER TABLE_ NAME
CATALOG SYS CATALOG
COL SYS COL
... ... ...
DBA_ I NDEXES SYS DBA_ I NDEXES
DBA_ I ND_ COLUMNS SYS DBA_ I ND_ COLUMNS
당신이소유하는Oracle Server account (계정)을자세히보여라
SQL> COL USERNAME FORMAT A8
SQL> COL DEFAULT_ TABLESPACE FORMAT A20
SQL> COL TEMPORARY_ TABLESPACE FORMAT A20
SQL> SELECT * FROMuser_ users;
USERNAME USER_ I D DEFAULT_ TABLESPACE TEMPORARY_ TABLESPACE CREATED
SYS 5 TOOLS TEMP 02-MAY-96
1 row selected
Data bas e 생성4-40
탄약정보체계(운영자용) Oracle7 Administration
4.14.3 Data Dictionary Views 보기-Ⅱ
앞의예에서와동일한col umn 정의들을사용해서Oracle Server
account s (계정)들에대한기본정보를보여라.
SQL> SELECT * FROMall_ users;
USERNAME USER_ I D CREATED
SYS 0 02-MAY-96
SYSTEM 5 02-MAY-96
SCOTT 10 16-MAY-96
PAT 9 16-MAY-96
HANNE 8 16-MAY-96
5 row selected
앞의예에서와동일한col umn 정의들을사용해서Oracle Server
account s (계정)들에대한DBA 정보를보여라.
SQL> SELECT * FROMdba _ users;
DEFAULT_ TEMPORARY_
USERNAME USER_ I D PASSWORD TABLESPACE TABLESPACE CREATED
SYS 0 D4C5016086B2DC6A SYSTEM TEMP 02-MAY-96
SYSTEM 5 D4DF7931AB130E37 TOOLS TEMP 02-MAY-96
SCOTT 10 F894844C34402B67 USERS TEMP 16-MAY-96
PAT 9 DD20769D59F4F7BF USERS TEMP 16-MAY-96
HANNE 8 DC2DD3A6ED18F6D8 USERS TEMP 16-MAY-96
모든rol lback segment s 들과그들의상태(st atus) 를확인하라.
SQL> SELECT segment_ name, status
2 FROMdba rollbacksegs;
_ _
SEGMENT_ NAME STATUS
SYSTEM ONLI NE
R01 ONLI NE
R02 ONLI NE
R03 ONLI NE
R04 ONLI NE
5 r ow s e l e c t e d
Data bas e 생성4-41
탄약정보체계(운영자용) Oracle7 Administration
4.14.3 Data Dictionary Views 보기-Ⅲ
Tabl espace 의정의에대한정보를보여라.
SQL> COL TABLESPACE_ NAME FORMAT A10
SQL> SELECT TABLESPACE_ NAME, I NI TI AL_ EXTENT,
2 NEXT_ EXTENT, STATUS, CONTENTS
3 FROMdba _ tablespaces;
TABLESPACE
_ NAME I NI TI AL_ EXTENT NEXT_ EXTENT STATUS CONTENTS
SYSTEM 10240 10240 ONLI NE PERMANENT
RBS 131072 131072 ONLI NE PERMANENT
TEMP 262144 262144 ONLI NE PERMANENT
TOOLS 10240 10240 ONLI NE PERMANENT
USERS 10240 10240 ONLI NE PERMANENT
우리의dat abase 에속하는data files 들의이름을보여라.
SQL> COL f i l e _ name FORMAT A40
SQL> SELECT * FROMdba _ data _ files;
TABLESPACE
FI LE_ NAME FI LE_ I D _ NAME BYTES BLOCKS STATUS
/export/home/oracle/oradata/V732/system01.dbf 1SYSTEM 41943040 20480 AVALILABLE
/export/home/oracle/oradata/V732/rbs01.dbf 2RBS 8388608 4096 AVALILABLE
/export/home/oracle/oradata/V732/temp01.dbf 3TEMP 563200 275 AVALILABLE
/export/home/oracle/oradata/V732/tools01.dbf 4TOOLS 15728640 7680 AVALILABLE
/export/home/oracle/oradata/V732/users01.dbf 5USERS 1048576 512 AVALILABLE
5 rows selected
Dat abase 안에사용되지않는영역에대한정보를보여라.
SQL> SELECT * FROMdba _ free _ space;
TABLESPACE
_ NAME FI LE_ I D BLOCK_ I D BYTES BLOCKS
SYSTEM 1 3415 349511680 17066
RBS 2 717 6922240 3380
TEMP 3 2 561152 274
TOOLS 4 87 15552512 7594
USERS 5 2 1046528 511
5 rows selected
Data bas e 생성4-42