Microsoft PowerPoint - dba1_Cover_Rev1_1.ppt

Size: px
Start display at page:

Download "Microsoft PowerPoint - dba1_Cover_Rev1_1.ppt"

Transcription

1 Oracle9i Database Administration Fundamentals I( ) 1 D11321KR ã 3 D34482

2 Marie St. Gelais S Matt Taylor Jr Paulo Barqueira Charles Fabrie Lilian Hobbs Dominique Jeunot Donna Keesling Simon Law Howard Ostrow Ashesh Parekh Gabriela Stanescu John B Dawson Copyright Oracle Corporation, All rights reserved. Oracle Corp. ñ. þ ÿ ñ. þ ñ. ÿ þ ñ ñ. Restricted Rights Legend Use, duplication or disclosure by the Government is subject to restrictions for commercial computer software and shall be deemed to be Restricted Rights software under Federal law, as set forth in subparagraph (c)(1)(ii) of DFARS , Rights in Technical Data and Computer Software (October 1988). This material or any portion of it may not be copied in any form or by any means without the express prior written permission of Oracle Corporation. Any other copying is a violation of copyright law and may result in civil and/or criminal penalties. If this documentation is delivered to a U.S. Government Agency not within the Department of Defense, then it is delivered with Restricted Rights, as defined in FAR , Rights in Data-General, including Alternate III (June 1987). The information in this document is subject to change without notice. If you find any problems in the documentation, please report them in writing to Education Products, Oracle Corporation, 500 Oracle Parkway, Box SB-6, Redwood Shores, CA Oracle Corporation does not warrant that this document is error-free. SQL*Loader, SQL*Net, SQL*Plus, Net8, Oracle Call Interface, Oracle7, Oracle8, Oracle 8i, Developer/2000, Developer/2000 Forms, Designer/2000, Oracle Enterprise Manager, Oracle Parallel Server, PL/SQL, Pro*C, Pro*C/C++, and Trusted Oracle are trademarks or registered trademarks of Oracle Corporation. ÿ ñ þ ñ.

3 머리말 I 소개과정목표 I-2 Oracle9i Enterprise Edition I-3 데이터베이스관리자작업 I-4 1 Oracle 구조구성요소목표 1-2 주요구성요소개요 1-3 Oracle 서버 1-5 Oracle 인스턴스 1-6 접속설정및세션생성 1-7 오라클데이터베이스 1-9 물리적구조 1-10 메모리구조 1-11 시스템글로벌영역 1-12 공유풀 1-15 라이브러리캐시 1-16 데이터딕셔너리캐시 1-17 데이터베이스버퍼캐시 1-18 리두로그버퍼 1-21 대용량풀 1-22 Java 풀 1-24 프로그램글로벌영역 1-25 프로세스구조 1-28 사용자프로세스 1-29 서버프로세스 1-30 백그라운드프로세스 1-31 DBWn( 데이터베이스기록자 ) 1-32 LGWR( 로그기록자 ) 1-33 SMON( 시스템모니터 ) 1-34 PMON( 프로세스모니터 ) 1-35 CKPT( 체크포인트 ) 1-36 ARCn( 아카이버 ) 1-37 논리적구조 1-39 SQL 문처리 1-42 요약 1-44 연습 1 개요 1-45 iii

4 2 Oracle 서버시작목표 2-2 데이터베이스관리도구 2-3 Oracle Universal Installer 2-4 Universal Installer 시작 2-5 응답파일을사용한비대화식설치 2-6 Oracle Database Configuration Assistant 2-9 데이터베이스관리자 2-10 SQL*Plus 2-11 Oracle Enterprise Manager 2-12 Oracle Enterprise Manager - 구조 2-13 콘솔 2-15 요약 2-17 연습 2 개요 Oracle 인스턴스관리목표 3-2 초기화매개변수파일 3-3 PFILE initsid.ora 3-6 PFILE 생성 3-7 PFILE 예제 3-8 SPFILE spfilesid.ora 3-9 SPFILE 생성 3-10 SPFILE 예제 3-13 STARTUP 명령동작 3-14 SPFILE에서매개변수수정 3-15 데이터베이스시작 NOMOUNT 3-19 데이터베이스시작 MOUNT 3-20 데이터베이스시작 OPEN 3-21 STARTUP 명령 3-22 ALTER DATABASE 명령 3-25 제한모드로데이터베이스열기 3-26 읽기전용모드로데이터베이스열기 3-29 데이터베이스종료 3-31 Shutdown 옵션 3-32 진단파일을사용한인스턴스모니터 3-36 경고로그파일 3-37 백그라운드추적파일 3-39 사용자추적파일 3-40 iv

5 사용자추적활성화또는비활성화 3-41 요약 3-43 연습 3 개요 데이터베이스생성목표 4-2 데이터베이스관리및구성 4-3 OFA(Optimal Flexible Architecture) 4-4 Oracle 소프트웨어및파일위치 4-5 생성필요조건 4-6 데이터베이스관리자를위한인증방법 4-7 암호파일인증사용 4-8 데이터베이스생성 4-10 운영체제환경 4-11 Database Configuration Assistant 4-12 Database Configuration Assistant를사용하여데이터베이스생성 4-13 수동으로데이터베이스생성 4-17 데이터베이스생성 4-20 OMF(Oracle Managed Files) 를사용하여데이터베이스생성 4-23 문제해결 4-27 데이터베이스생성후 4-28 요약 4-29 연습 4 개요 데이터딕셔너리및동적성능뷰사용목표 5-2 내장데이터베이스객체 5-3 데이터딕셔너리 5-4 기본테이블및데이터딕셔너리뷰 5-5 데이터딕셔너리뷰생성 5-6 데이터딕셔너리내용 5-7 데이터딕셔너리사용방법 5-8 데이터딕셔너리뷰범주 5-9 데이터딕셔너리예제 5-11 동적성능테이블 5-12 동적성능테이블예제 5-13 관리스크립트이름지정규칙 5-15 요약 5-16 연습 5 개요 5-17 v

6 6 제어파일유지관리목표 6-2 제어파일 6-3 제어파일내용 6-5 제어파일다중화 6-7 SPFILE 사용시제어파일다중화 6-8 PFILE 사용시제어파일다중화 6-9 OMF로제어파일관리 6-10 제어파일정보얻기 6-11 요약 6-14 연습 6 개요 리두로그파일유지관리목표 7-2 리두로그파일사용 7-3 리두로그파일구조 7-4 리두로그파일작동방법 7-6 로그스위치및체크포인트시행 7-8 온라인리두로그파일그룹추가 7-9 온라인리두로그파일멤버추가 7-10 온라인리두로그파일그룹삭제 7-12 온라인리두로그파일멤버삭제 7-13 온라인리두로그파일재배치또는이름바꾸기 7-15 온라인리두로그파일구성 7-17 OMF를사용하여온라인리두로그파일관리 7-19 그룹및멤버정보얻기 7-20 아카이브된리두로그파일 7-22 요약 7-26 연습 7 개요 테이블스페이스및데이터파일관리목표 8-2 테이블스페이스및데이터파일 8-3 테이블스페이스유형 8-4 테이블스페이스생성 8-5 테이블스페이스의영역관리 8-9 지역적으로관리되는테이블스페이스 8-10 딕셔너리관리테이블스페이스 8-12 실행취소테이블스페이스 8-13 임시테이블스페이스 8-14 vi

7 기본임시테이블스페이스 8-17 기본임시테이블스페이스생성 8-18 기본임시테이블스페이스의제한사항 8-21 읽기전용테이블스페이스 8-22 테이블스페이스오프라인설정 8-25 저장영역설정변경 8-28 테이블스페이스크기조정 8-30 데이터파일의자동확장활성화 8-31 수동으로데이터파일크기조정 8-34 테이블스페이스에데이터파일추가 8-35 데이터파일이동방식 8-37 테이블스페이스삭제 8-40 OMF 를사용하여테이블스페이스관리 8-43 OMF 를사용하여테이블스페이스관리 8-44 테이블스페이스정보얻기 8-45 요약 8-46 연습 8 개요 저장영역구조및관계목표 9-2 저장영역및관계구조 9-3 세그먼트유형 9-4 저장영역절우선순위 9-8 확장영역할당및할당해제 9-9 사용된확장영역및사용가능한확장영역 9-10 데이터베이스블록 9-11 다중블록크기지원 9-12 표준블록크기 9-13 비표준블록크기 9-14 비표준블록크기테이블스페이스생성 9-16 다중블록크기조정규칙 9-18 데이터베이스블록내용 9-19 블록공간활용매개변수 9-20 데이터블록관리 9-22 자동세그먼트공간관리 9-23 자동세그먼트공간관리구성 9-25 수동데이터블록관리 9-26 블록공간사용 9-27 저장영역정보얻기 9-29 요약 9-32 연습 9 개요 9-33 vii

8 10 실행취소데이터관리목표 10-2 실행취소데이터관리 10-3 실행취소세그먼트 10-4 실행취소세그먼트 : 용도 10-5 읽기일관성 10-6 실행취소세그먼트유형 10-7 자동실행취소관리 : 개념 10-9 자동실행취소관리 : 구성 자동실행취소관리 : 초기화매개변수 자동실행취소관리 : UNDO 테이블스페이스 자동실행취소관리 : UNDO 테이블스페이스변경 자동실행취소관리 : UNDO 테이블스페이스전환 자동실행취소관리 : UNDO 테이블스페이스삭제 자동실행취소관리 : 기타매개변수 실행취소데이터통계 자동실행취소관리 : UNDO 테이블스페이스크기조정 자동실행취소관리 : Undo Quota 실행취소세그먼트정보얻기 요약 연습 10 개요 테이블관리목표 11-2 사용자데이터저장 11-3 Oracle 내장데이터유형 11-6 ROWID 형식 행의구조 테이블생성 테이블생성 : 지침 임시테이블생성 PCTFREE 및 PCTUSED 설정 행이전및체인화 저장영역및블록활용매개변수변경 확장영역수동할당 분할되지않은테이블재구성 테이블자르기 테이블삭제 열삭제 UNUSED 옵션사용 viii

9 테이블정보얻기 요약 연습 11 개요 인덱스관리목표 12-2 인덱스분류 12-3 B 트리인덱스 12-5 비트맵인덱스 12-7 B 트리인덱스와비트맵인덱스비교 12-9 일반 B 트리인덱스생성 인덱스생성 : 지침 비트맵인덱스생성 인덱스저장영역매개변수변경 인덱스공간할당및할당해제 인덱스재구축 온라인으로인덱스재구축 인덱스병합 인덱스및유효성검사 인덱스삭제 사용되지않은인덱스식별 인덱스정보얻기 요약 연습 12 개요 데이터무결성유지관리목표 13-2 데이터무결성 13-3 제약조건유형 13-5 제약조건상태 13-6 제약조건검사 13-8 제약조건을 Immediate 또는 Deferred Constraint로정의 13-9 기본및고유키시행 외래키고려사항 테이블생성중제약조건정의 제약조건정의지침 제약조건활성화 EXCEPTIONS 테이블사용 제약조건정보얻기 요약 연습 13 개요 ix

10 14 암호보안및자원관리목표 14-2 프로파일 14-3 암호관리 14-5 암호관리활성화 14-6 암호계정잠금 14-7 암호만기일기능및암호만기 14-8 암호기록 14-9 암호확인 사용자제공암호함수 VERIFY_FUNCTION 암호확인함수 프로파일생성 : 암호설정 프로파일변경 : 암호설정 프로파일삭제 : 암호설정 자원관리 자원제한활성화 세션레벨에서자원제한설정 호출레벨에서자원제한설정 프로파일생성 : 자원제한 Database Resource Manager를사용하여자원관리 자원계획지시어 암호및자원제한정보얻기 요약 연습 14 개요 사용자관리목표 15-2 사용자및보안 15-3 데이터베이스스키마 15-5 사용자생성점검목록 15-6 새로운사용자생성 : 데이터베이스인증 15-7 새로운사용자생성 : 운영체제인증 테이블스페이스의사용자할당량변경 사용자삭제 사용자정보얻기 요약 연습 15 개요 x

11 16 권한관리목표 16-2 권한관리 16-3 시스템권한 16-4 시스템권한 : 예제 16-5 시스템권한부여 16-6 SYSDBA 권한과 SYSOPER 권한 16-8 시스템권한제한사항 16-9 시스템권한취소 ADMIN OPTION을사용하여시스템권한취소 객체권한 객체권한부여 객체권한취소 WITH GRANT OPTION을사용하여객체권한취소 권한정보얻기 요약 연습 16 개요 롤관리목표 17-2 롤 17-3 롤의이점 17-4 롤생성 17-5 미리정의된롤 17-7 롤수정 17-8 롤할당 기본롤설정 응용프로그램롤 롤활성화및비활성화 사용자의롤취소 롤제거 롤생성지침 암호및기본롤사용지침 롤정보얻기 요약 연습 17 개요 감사목표 18-2 감사 18-3 감사지침 18-4 xi

12 감사범주 18-6 데이터베이스감사 18-8 감사옵션 감사정보얻기 감사레코드정보얻기 요약 연습 18 개요 데이터베이스에데이터로드목표 19-2 데이터로드방식 19-3 직접로드 19-4 직렬직접로드 19-6 병렬직접로드 19-7 SQL*Loader 19-9 SQL*Loader 사용 SQL*Loader 제어파일 제어파일구문고려사항 입력데이터및데이터파일 논리적레코드 로드방식 직접경로로드와기본경로로드비교 병렬직접경로로드 데이터변환 폐기되거나거부된레코드 로그파일내용 SQL*Loader 지침 요약 연습 19 개요 Globalization Support 사용목표 20-2 Globalization Support 기능 20-3 암호화체계 20-5 데이터베이스문자집합및국가별문자집합 20-8 오라클데이터베이스문자집합선택지침 20-9 Oracle 국가별문자집합선택지침 유니코드솔루션선택 : 유니코드데이터베이스 유니코드솔루션선택 : 유니코드데이터유형 xii

13 언어종속기능지정 서버에대한언어종속기능지정 종속언어및영역기본값 세션에대한언어종속기능지정 클라이언트 - 서버구조의문자집합 세션에대한언어종속기능지정 언어정렬 NLS 정렬 SQL 함수에서의 NLS 매개변수사용 언어인덱스지원 NLS 를사용한데이터임포트및로드 문자집합정보얻기 NLS 설정정보얻기 SQL 함수에서의 NLS 매개변수사용 요약 연습 20 개요 A B C D UNIX 환경에서 Oracle9i 데이터베이스생성방법실행취소데이터수동관리 ( 롤백세그먼트 ) SQL*Plus용연습해답 Oracle Enterprise Manager용연습해답 xiii

14 xiv

15

16 이과정은 DBA( 오라클데이터베이스관리자 ) 가기본관리작업을수행함에있어확고한기초를다질수있도록도와주는데그목적을두고있습니다. 이과정의주요목표는오라클데이터베이스의설정, 유지관리, 문제해결에필요한지식과기술을제공하는데있습니다. 이과정은데이터베이스관리자, 기술지원분석자, 시스템관리자, 응용프로그램개발자, MIS 관리자및기타오라클사용자를위해구성되었습니다. 이머리말은다음부분에대해설명합니다. 시작하기전에 필요조건 과정구성 관련서적 표기법 시작하기전에이과정에참여함으로써최대한의성과를얻으려면다음과같은구체적인지식을갖고있어야합니다. 관계형데이터베이스의개념에대한기본적인이해 SQL, SQL*Plus 및 OS 명령 (Unix 및 NT) 에대한전반적인지식 기본적인운영체제관련지식 Oracle 환경에서의작업경험필요조건 Oracle 소개과정구성 Oracle 9i Database Administration Fundamentals I은강사가지도하는과정으로서강의와실질적인연습문제로구성되며 SQL*Plus 또는 OEM(Oracle Enterprise Manager) 을사용하여연습을수행할수있습니다. 또한이과정에는Oracle Certified Professional 시험을준비할수있도록목표가명확하게정의되어있습니다. - 2

17 Oracle 참고서적 제목 제품번호 Oracle9i Backup and Recovery Concepts A Oracle9i Database Administrator's Guide A Oracle9i Database Concepts A Oracle9i Database Error Messages A Oracle9i Database New Features A Oracle9i Database Reference A Oracle9i Database Utilities A Oracle9i Enterprise Manager Administrator s Guide A Oracle9i Enterprise Manager Concepts Guide A Oracle9i Enterprise Manager Configuration Guide A Oracle9i Net Services Administrator s Guide A Oracle9i Net Services Reference Guide A Oracle9i Recovery Manager Reference A Oracle9i Recovery Manager User s Guide A Oracle9i Database Reference A Oracle9i SQL Reference A Oracle9i User-Managed Backup and Recovery Guide A 참고서적 System release bulletins Installation and user s guides read.me 파일 International Oracle User s Group (IOUG) articles Oracle Magazine - 3

18 텍스트안의표기법 Ë 굵은체기울임꼴 대문자와소문자 Courier new, 대소문자구분 ( 기본값은소문자 ) 머리글자 기울임꼴 따옴표 용어 ( 용어집이있는경우 ) 버튼, 확인란, 트리거, 창 코드출력, 디렉토리이름, 파일이름, 암호, 경로이름, URL, 사용자입력, 사용자이름 그래픽레이블 ( 용어가고유명사가아닌경우 ) 강조된단어또는문구, 책및과정제목, 변수 머리글자하나가포함된이름이긴인터페이스요소또는상호참조가되어있는단원이나장제목 알고리즘은새키를삽입합니다. Executable 버튼을누릅니다. Can't Delete Card 확인란을선택합니다. When-Validate-Item 트리거를 ORD 블록에할당합니다. Master Schedule 창을엽니다. 코드출력 : debug.set( I 300); 디렉토리 : bin (DOS), $FMHOME (UNIX) 파일이름 : init.ora 파일을찾습니다. 암호 : 사용자암호로 tiger를사용합니다. 경로이름 : c:\my_docs\projects를엽니다. URL: Go to 사용자입력 : 300을입력합니다. 사용자이름 : scott으로로그인합니다. 고객주소 (Oracle Payables 제외 ) 데이터베이스에변경내용을저장하지마십시오. 자세한사항은 Oracle7 Server SQL Language Reference Manual 을참조하십시오. user_id@us.oracle.com 을입력하십시오. 여기에서 user_id 는사용자의이름입니다. "Include a reusable module component" 를선택한후 Finish 를누릅니다. 이주제는 II 부 3 단원에서 " 객체사용 " 에서설명합니다. 대문자 SQL 열이름, 명령, 함수, 스키마, 테이블이름 SELECT 명령을사용하여 EMP 테이블의 LAST_NAME 열에저장된정보를봅니다. - 4

19 규칙 요소 예제 화살표 메뉴경로 File > Save를선택합니다. 쉼표 키시퀀스 키를한번에하나씩눌렀다뗍니다. [Alternate], [F], [D] 더하기기호 (+) 키조합이키들을동시에누릅니다. [Ctrl]+[Alt]+[Del] 코드안의표기법 규칙대문자와소문자 소문자 요소 Oracle Forms 트리거 열이름테이블이름 암호 PL/SQL 객체 예제 When-Validate-Item SELECT last_name FROM s_emp; DROP USER scott IDENTIFIED BY tiger; OG_ACTIVATE_LAYER (OG_GET_LAYER ( prod_pie_layer ) 소문자기울임꼴 구문변수 CREATE ROLE role 대문자 SQL 명령및함수 SELECT userid FROM emp; - 5

20 - 6

21 Copyright Oracle Corporation, All rights reserved.

22 ñ ñ7 Oracle ñ 5/ 5/ 5/ 5/ 5/ 5/ 5/ 5/ 5/ 5/ 5/ Globalization Support I-2 Copyright Oracle Corporation, All rights reserved. 이과정은핵심데이터베이스관리자의작업에대해다루는일련의과정중첫번째과정입니다. 이과정에서다루는작업은다음과같습니다. Oracle 구조소개 데이터베이스계획및생성 메모리, 프로세스, 물리적구조및논리적구조관리 데이터베이스사용자의작업제어및모니터를통한데이터베이스사용자관리 Globalization Support 기능사용 Oracle9i Database Administration Fundamentals I I-2

23 Oracle9i Enterprise Edition Real Application Clusters Oracle Enterprise Manager Packs I-3 Copyright Oracle Corporation, All rights reserved. Oracle9i Enterprise Edition B Oracle9i Enterprise Edition은뛰어난확장성을가졌으며관리하기쉬운객체관계형데이터베이스입니다. 이과정에서는기본 Enterprise Edition의관리에대해설명하지만다음옵션은추가기능을제공합니다. 분할 : 대규모의확장형응용프로그램구축을위한기능을제공합니다. 기본 Enterprise Edition 에서가능했던것보다더작은단위로테이블과인덱스를제어할수있습니다. Real Application Clusters: 여러오라클소프트웨어가하나의데이터베이스를액세스할수있도록허용함으로써데이터베이스의확장성과가용성을향상시킵니다. Oracle Enterprise Manager Packs: Oracle Enterprise Manager 의상단에생성됩니다. Oracle Enterprise Manager Diagnostics, Tuning 및 Change Management Packs 는 DBA 에게오라클환경의고급진단, 모니터, 조정및변경관리를위한일련의도구를제공하는추가제품입니다. 고급보안 : 암호화와데이터무결성검사를통해서버간또는클라이언트와서버간의보안기능을제공하며협력회사의보안서비스를통해사용자인증서비스를향상시킵니다. 주 : 옵션을사용하려면라이센스를구입해야합니다. Oracle9i Database Administration Fundamentals I I-3

24 á I-4 Copyright Oracle Corporation, All rights reserved. 데이터베이스관리자는서버에서사용자요구를처리할수있도록 Oracle 서버를유지관리하는역할을담당합니다. Oracle 서버를효율적으로유지관리하려면 Oracle 구조를이해해야합니다. 이과정에서는 Oracle 구조에대한개요를설명하고데이터베이스계획및생성, 데이터베이스가용성관리, 메모리관리, 물리적및논리적구조, 사용자및권한관리등과같은관리자작업을주로다룹니다. 다른과정에서설명할데이터베이스관리자작업 : 다른과정에서는다음과같은작업을설명합니다. Oracle9i Database Administration Fundamentals II ( 한글판 ) 의백업및복구 Oracle9i Database Administration Fundamentals II ( 한글판 ) 의네트워크관리 Oracle9i Database Performance Tuning ( 한글판 ) 의데이터베이스조정 Oracle9i Database Administration Fundamentals I I-4

25 Oracle Copyright Oracle Corporation, All rights reserved.

26 ñ ñ ñ. Oracle ó Oracle ó ÿ 1-2 Copyright Oracle Corporation, All rights reserved. 이단원에서는데이터베이스연결설정, 세션생성및 SQL 명령실행에관련된메모리, 프로세스, 물리적및논리적구조를통해 Oracle 서버구조를소개합니다. Oracle9i Database Administration Fundamentals I 1-2

27 SGA PGA ß Java ó PMON SMON DBWR LGWR CKPT ÿ 1-3 Copyright Oracle Corporation, All rights reserved. Oracle 구조에는여러가지주요구성요소가있는데이러한구성요소에대해서는이단원의뒷부분에서설명합니다. Oracle 서버 : Oracle 서버에는여러개의파일, 프로세스, 메모리구조가있지만이모두가 SQL 문을처리하는데사용되는것은아닙니다. 그중일부는데이터베이스성능을향상시키거나, 소프트웨어또는하드웨어오류발생시데이터베이스를복구하거나, 데이터베이스를유지관리하는데필요한작업을수행합니다. Oracle 서버는 Oracle 인스턴스와오라클데이터베이스로구성됩니다. Oracle 인스턴스 : Oracle 인스턴스는백그라운드프로세스와메모리구조의조합으로데이터베이스의데이터를액세스하려면인스턴스가시작되어야합니다. 인스턴스가시작될때마다 SGA( 시스템글로벌영역 ) 가할당되고 Oracle 백그라운드프로세스가시작됩니다. 백그라운드프로세스는프로세스를호출하기위한기능을수행합니다. 백그라운드프로세스를사용하여각사용자가실행하는여러 Oracle 프로그램으로처리해야할기능을통합할수있습니다. 백그라운드프로세스는 I/O을수행하고다른 Oracle 프로세스를모니터하여병렬화를높임으로써성능및신뢰도를향상시킵니다. 오라클데이터베이스 : 데이터베이스정보를위한실제적인물리적저장영역을제공하는운영체제파일 ( 데이터베이스파일이라고도함 ) 로구성됩니다. 데이터베이스파일은데이터를일관성있게유지하고인스턴스가실패한경우데이터를복구하는데사용됩니다. Oracle9i Database Administration Fundamentals I 1-3

28 ( ) 기타키파일 : 비데이터베이스파일은인스턴스를구성하고권한이있는사용자를인증하며디스크고장시데이터베이스를복구하는데사용됩니다. 사용자프로세스및서버프로세스 : SQL 문이실행될때사용되는기본프로세스이지만그밖의여러프로세스가 Oracle 서버에서 SQL 문의처리를마칠수있도록도와줍니다. 기타프로세스 : 그밖에도여러프로세스가고급대기열처리, Real Application Clusters, 공유서버, 고급복제와같은옵션에사용됩니다. 이러한프로세스에대해서는해당단원에서다룹니다. Oracle9i Database Administration Fundamentals I 1-4

29 Oracle Oracle : ñ. Oracle ÿ ñ. Oracle Server 1-5 Copyright Oracle Corporation, All rights reserved. Oracle 데이터베이스서버는정보를관리하는데핵심적인역할을수행합니다. 일반적으로서버는다중사용자환경에서많은양의데이터를안정적으로관리하여여러사용자가동일한데이터에동시에액세스할수있게해야하지만이러한작업으로인해성능이저하되는일은없어야합니다. 또한권한없는액세스를방지하고실패복구를위한효율적인해결책을제공해야합니다. Oracle9i Database Administration Fundamentals I 1-5

30 Oracle Oracle : ññ. ñ. ÿ ñ. SGA ß PMON SMON Java DBWR LGWR Large Pool CKPT 1-6 Copyright Oracle Corporation, All rights reserved. Oracle Oracle 인스턴스는 SGA( 시스템글로벌영역 ) 메모리구조와데이터베이스관리에사용되는백그라운드프로세스로구성됩니다. 인스턴스는각운영체제에지정된방식에따라다릅니다. 인스턴스는한번에하나씩데이터베이스를열어사용할수있습니다. Oracle9i Database Administration Fundamentals I 1-6

31 Oracle Oracle 1-7 Copyright Oracle Corporation, All rights reserved. 사용자가 SQL 문을오라클데이터베이스에보내려면먼저인스턴스에접속해야합니다. SQL*Plus와같은툴을시작하거나 Oracle Forms 등의툴을사용하여개발된응용프로그램을실행합니다. 이러한응용프로그램이나툴은사용자프로세스로실행됩니다. 대부분의기본구성에서는사용자가 Oracle 서버에로그인할때 Oracle 서버를실행중인시스템에서프로세스가생성되는데이프로세스를서버프로세스라고합니다. 서버프로세스는클라이언트에서실행되는사용자프로세스대신 Oracle 인스턴스와통신하며사용자대신 SQL 문을실행합니다. 접속 : 접속은사용자프로세스와 Oracle 서버간의통신경로로서데이터베이스사용자는다음세방법중하나로Oracle 서버에접속할수있습니다. Oracle 인스턴스를실행하는운영체제에로그인하고해당시스템에있는데이터베이스를액세스하는응용프로그램이나툴을시작합니다. 통신경로는호스트운영체제에서사용가능한프로세스간의통신방식을사용하여설정됩니다. Oracle9i Database Administration Fundamentals I 1-7

32 접속 ( 계속 ) 사용자는지역컴퓨터에있는응용프로그램이나툴을시작한다음네트워크를통해 Oracle 인스턴스를실행하는컴퓨터에접속합니다. 이러한클라이언트서버구성에서는네트워크소프트웨어가사용자와 Oracle 서버간의통신에사용됩니다. 3계층접속에서사용자컴퓨터는네트워크를통해 Oracle 인스턴스를실행중인시스템에있는응용프로그램이나네트워크서버와통신합니다. 예를들어, 사용자가네트워크에접속된컴퓨터에서브라우저를실행하여 Windows NT 서버에설치되어있는응용프로그램을사용하면이응용프로그램이 UNIX 호스트에서실행중인오라클데이터베이스에서데이터를검색합니다. 세션세션이란 Oracle 서버에특정사용자가접속하는것으로 Oracle 서버에서사용자를검증할때시작되어사용자가로그아웃하거나비정상적으로종료될때끝납니다. 데이터베이스사용자가여러툴, 응용프로그램또는터미널에서동시에로그인하면여러세션을동시에사용할수있습니다. 일부전문적인데이터베이스관리툴을사용할때를제외하고는데이터베이스세션을시작하려면 Oracle 서버를사용할수있어야합니다. 주 : 여기서설명한것과같이사용자프로세스와서버프로세스간에일대일로대응하는접속을전용서버접속이라고합니다. 공유서버구성을사용하면여러사용자프로세스가서버프로세스를공유할수있습니다. Oracle9i Database Administration Fundamentals I 1-8

33 ñ þ ñ. ÿ ñ. ÿ 1-9 Copyright Oracle Corporation, All rights reserved. 데이터베이스의일반적인용도는관련정보를저장하고검색하는것이며오라클데이터베이스에는논리적구조와물리적구조가있습니다. 데이터베이스의물리적구조란데이터베이스에있는운영체제파일집합을말합니다. 오라클데이터베이스는다음세가지유형의파일로구성됩니다. 데이터베이스의실제데이터가포함된데이터파일 장애가발생했을때데이터를복구할수있도록데이터베이스의변경사항이기록된리두로그파일 데이터베이스무결성을유지관리하고확인하는데필요한정보가포함된제어파일기타키파일구조 Oracle 서버는데이터베이스에속하지않는기타파일도사용합니다. 매개변수파일에는 Oracle 인스턴스의특성이정의됩니다. 예를들어, 이파일에는 SGA에있는일부메모리구조의크기를지정하는매개변수가포함됩니다. 암호파일은사용자가 Oracle 인스턴스를시작하고종료할수있다는것을인증합니다. 아카이브된리두로그파일은매체고장시복구하는데필요한리두로그파일의오프라인복사본입니다. Oracle9i Database Administration Fundamentals I 1-9

34 ñ ÿ ñ. ø ( ß ) 1-10 Copyright Oracle Corporation, All rights reserved. 오라클데이터베이스의물리적구조에는제어파일, 데이터파일및리두로그파일등세가지파일유형이포함됩니다. Oracle9i Database Administration Fundamentals I 1-10

35 Oracle ñ ÿ ñ. SGA( ): ÿ òþ Oracle ñ. PGA( ): ÿ òÿ ñ Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 1-11

36 SGA ÿ ñ. ( :, ) SGA ñ ñ. ó Java 1-12 Copyright Oracle Corporation, All rights reserved. SGA 2 SGA는공유글로벌영역이라고도하며데이터베이스프로세스에서공유하는데이터베이 스정보를저장하는데사용됩니다. 여기에는 Oracle 서버를위한데이터및제어정보가포 함되며 Oracle이상주하는컴퓨터의가상메모리에할당됩니다. 다음명령문을사용하면 SGA 메모리할당상태를볼수있습니다. SQL> SHOW SGA: Total System Global Area bytes Fixed Size bytes Variable Size bytes Database Buffers bytes Redo Buffers bytes Oracle9i Database Administration Fundamentals I 1-12

37 2 동적 SGA: Oracle9i부터동적 SGA는인스턴스를종료하지않고 SGA 구성을변경할수있는기반구조를구현합니다. 따라서인스턴스를종료하지않고데이터베이스버퍼캐시및공유풀의크기를변경할수있습니다. 데이터베이스버퍼캐시및공유풀은처음구성이계속유지되는것이아니라작업로드에따라최대 SGA_MAX_SIZE까지늘어나거나줄어들수있습니다. SGA 크기조정 : SGA 크기는여러초기화매개변수에의해결정됩니다. SGA 크기에가장많은영향을주는매개변수는다음과같습니다. DB_CACHE_SIZE: 표준블록의캐시크기. 기본적으로 UNIX에서는 48MB이고 NT에서는 52MB입니다. LOG_BUFFER: 리두로그버퍼에할당되는바이트수 SHARED_POOL_SIZE: 공유 SQL 및 PL/SQL에제공되는영역의바이트크기. 기본적으로 16MB지만 64비트인경우기본크기는 64MB입니다. LARGE_POOL_SIZE: 대용량풀의크기. 기본값은 0입니다. (init.ora 매개변수 PARALLEL_AUTOMATIC_TUNING이 TRUE로설정될때를제외하고는기본값이자동으로계산됩니다.) JAVA_POOL_SIZE: Java 풀의크기. 기본값은 24MB입니다. 따라서 SGA 크기는 SGA_MAX_SIZE - DB_CACHE_SIZE - LOG_BUFFER SHARED_POOL_SIZE - LARGE_POOL_SIZE - JAVA_POOL_SIZE를초과할수없습니다. 주 : 동적 SGA 및크기조정에대해서는 Oracle9i Database Performance Tuning( 한글판 ) 과정에서자세하게다룹니다. Oracle9i Database Administration Fundamentals I 1-13

38 SGA ú ñ. SGA_MAX_SIZE ñ. SGA òþ ÿ ñ. ò ÿ SGA_MAX_SIZE 1-14 Copyright Oracle Corporation, All rights reserved. 2 할당단위그래뉼은연속적인가상메모리할당단위입니다. 그래뉼크기는예상되는총 SGA 크기에따라다르며이크기는 SGA_MAX_SIZE 매개변수값에준하여계산됩니다. 예상 SGA 크기가 128MB보다작은경우에는 4MB입니다. 그외의경우에는 16MB입니다. 구성요소 ( 데이터베이스버퍼캐시및공유풀 ) 는그래뉼단위에따라늘어나거나줄어듭니다. 그래뉼을소유하는각구성요소의경우구성요소에할당된그래뉼수, 구성요소에대한보류작업 ( 예 : ALTER SYSTEM을통한그래뉼할당, ALTER SYSTEM을통한그래뉼해제, 해당자체튜닝 ) 및그래뉼단위의대상크기는 V$BUFFER_POOL 뷰에의해추적되고표시됩니다. 인스턴스가시작될때 Oracle 서버는각그래뉼마다그래뉼항목을하나씩할당하여주소공간의 SGA_MAX_SIZE바이트를지원합니다. 시작이계속됨에따라각구성요소는필요한그래뉼을모두얻게됩니다. SGA 구성의최소단위는세개의그래뉼즉, 각각고정SGA[ 리두버퍼포함 ], 데이터베이스버퍼캐시, 공유풀을위한그래뉼입니다. Oracle9i Database Administration Fundamentals I 1-14

39 ñ ÿ ñ. SQL ÿ ñ. ß SHARED_POOL_SIZE ñ. ALTER SYSTEM SET SHARED_POOL_SIZE = 64M; ß 1-15 Copyright Oracle Corporation, All rights reserved. 공유풀환경에는고정구조와가변구조가모두있습니다. 고정구조는비교적동일한크기를유지하는반면가변구조는사용자및프로그램요구사항에따라크기가늘어나거나줄어듭니다. 고정구조와가변구조의실제크기조정은초기화매개변수와 Oracle 내부알고리즘작업에따라달라집니다. 공유풀크기조정공유풀은재사용가능한 SQL 실행계획 (PL/SQL 패키지, 프로시저및함수 ) 과커서정보와같이전역적으로공유할수있는객체를위해사용되므로고정영역과가변영역모두의요구를수용하도록크기가조정되어야합니다. 공유풀에대한메모리할당은초기화매개변수 SHARED_POOL_SIZE에의해결정되며 ALTER SYSTEM SET을사용하여크기를동적으로조정할수있습니다. 성능분석후에크기를조정할수있지만전체 SGA 크기는 SGA_MAX_SIZE를초과할수없습니다. Oracle9i Database Administration Fundamentals I 1-15

40 SQL PL/SQL ó ñ. þ ñ. LRU(Least Recently Used) ÿ ñ. ñ ÿ ñ. SQL PL/SQL ÿ ñ Copyright Oracle Corporation, All rights reserved. 라이브러리캐시크기는공유풀에정의된크기조정에따라달라집니다. 메모리는명령문이구문분석되거나프로그램단위가호출될때할당됩니다. 공유풀의크기가너무작으면명령문이라이브러리캐시로계속재로드되어성능에영향을주게됩니다. 라이브러리캐시는 LRU 알고리즘에의해관리됩니다. 캐시가채워지면라이브러리캐시에서최근에덜사용된실행경로와구문분석트리가제거되어새항목을위한여유공간이생성됩니다. 재사용되지않는 SQL 문이나 PL/SQL 문은삭제됩니다. 라이브러리캐시는다음두구조로구성됩니다. 공유 SQL: 공유 SQL은데이터베이스에대해 SQL 문을실행하기위한실행계획과구문분석트리를저장하고공유합니다. 다음에동일한 SQL 문을실행할때는공유풀에있는구문분석정보를이용하여신속하게처리할수있습니다. SQL 문에서필요할때마다공유 SQL 영역을사용할수있게하려면텍스트, 스키마및바인드변수가동일해야합니다. 공유 PL/SQL: 공유 PL/SQL 영역은최근에실행된 PL/SQL 문을저장하고공유합니다. 구문분석되고컴파일된프로그램단위와프로시저 ( 함수, 패키지및트리거 ) 는이영역에저장됩니다. Oracle9i Database Administration Fundamentals I 1-16

41 ß ÿ ñ.,,,,, ó ñ. ñ ú ß ñ. ß DML ó ò ñ. ÿ ñ Copyright Oracle Corporation, All rights reserved. ß 데이터딕셔너리캐시는딕셔너리캐시또는행캐시라고도합니다. 데이터딕셔너리정보를데이터베이스버퍼캐시및공유풀메모리에다중캐시하여성능을향상시킬수있습니다. 데이터베이스에대한정보 ( 사용자계정데이터, 데이터파일이름, 세그먼트이름, 확장영역위치, 테이블설명및사용자권한 ) 는데이터딕셔너리테이블에저장됩니다. 서버에서이정보가필요하면데이터딕셔너리테이블을읽고반환된데이터는데이터딕셔너리캐시에저장됩니다. 데이터딕셔너리크기조정 : 전체크기는공유풀크기에따라달라지며데이터베이스에의해내부적으로관리됩니다. 데이터딕셔너리캐시가너무작은경우에는데이터베이스에서서버에필요한정보를얻기위해데이터딕셔너리테이블을계속질의해야합니다. 이러한질의를순환호출이라고하는데 SQL을사용하지않는데이터딕셔너리캐시에서의직접질의보다속도가느립니다. Oracle9i Database Administration Fundamentals I 1-17

42 ÿ ñ. ÿ ñ. LRU ÿ ñ. DB_BLOCK_SIZE ñ Copyright Oracle Corporation, All rights reserved. 질의를처리할때 Oracle 서버프로세스는필요한블록을데이터베이스버퍼캐시에서찾습니다. 데이터베이스버퍼캐시에서찾지못한경우에는데이터파일에서블록을찾아데이터베이스버퍼캐시에복사합니다. 이후요청에서동일한블록이필요하면메모리에서직접블록을찾기때문에물리적으로읽을필요가없습니다. Oracle 서버는 LRU(Least Recently Used) 알고리즘을사용해최근에액세스하지않은버퍼를삭제하여데이터베이스버퍼캐시에새로운블록을위한공간을만듭니다. Oracle9i Database Administration Fundamentals I 1-18

43 ñ ÿ ÿ ñ. DB_CACHE_SIZE DB_KEEP_CACHE_SIZE DB_RECYCLE_CACHE_SIZE ú ñ. ALTER SYSTEM SET DB_CACHE_SIZE = 96M; DB_CACHE_ADVICE ñ ÿ ñ. V$DB_CACHE_ADVICE ñ Copyright Oracle Corporation, All rights reserved. 데이터베이스버퍼캐시크기조정 : 데이터베이스버퍼캐시에있는각버퍼의크기는 Oracle 블록의크기와같고 DB_BLOCK_SIZE 매개변수를통해지정됩니다. 데이터베이스버퍼캐시는버퍼풀과다중블록크기에대한독립된서브캐시로구성됩니다. DB_BLOCK_SIZE 매개변수는 SYSTEM 테이블스페이스에서사용되는기본블록크기를결정합니다. 다음세개의매개변수가데이터베이스버퍼캐시의크기를정의합니다. DB_CACHE_SIZE: 기본버퍼캐시의크기만조정합니다. 이값은항상존재하며 0으로설정할수없습니다. DB_KEEP_CACHE_SIZE: 재사용될메모리블록을보유하는데사용되는 Keep 버퍼캐시의크기를조정합니다. DB_RECYCLE_CACHE_SIZE: 거의재사용되지않을메모리블록을제거하는데사용되는 Recycle 버퍼캐시의크기를조정합니다. Oracle9i Database Administration Fundamentals I 1-19

44 2 버퍼캐시권고 : 버퍼캐시권고기능은다양한캐시크기의작업을예측하기위한통계수집을활성화하거나비활성화합니다. 이러한통계에서제공되는정보를사용하면지정된작업로드에맞게데이터베이스버퍼캐시의크기를조정할수있습니다. 수집된버퍼캐시권고정보는 V$DB_CACHE_ADVICE 뷰를통해표시됩니다. 버퍼캐시권고는초기화매개변수 DB_CACHE_ADVICE를통해활성화됩니다. 이매개변수는동적매개변수로 ALTER SYSTEM을사용하여변경할수있으며세값 (OFF, ON, READY) 을사용할수있습니다. DB_CACHE_ADVICE 매개변수값 OFF: 권고가해제되고권고에대한메모리가할당되지않습니다. ON: 권고가설정되고 CPU 및메모리오버헤드가모두발생합니다. OFF 상태일때이매개변수를ON 상태로설정하려고하면 "ORA-4031 Inability to allocate from the Shared Pool when the parameter is switched to ON" 이라는오류가발생합니다. 매개변수가 READY 상태인경우에는메모리가이미할당되어있으므로오류메시지없이 ON으로설정할수있습니다. READY: 권고가해제되지만권고에대한메모리는할당된상태로유지됩니다. 권고가실제로설정되기전에메모리를할당하면 ORA-4031 오류가발생하지않습니다. 매개변수가 OFF에서이상태로전환된경우에는 ORA-4031 오류가발생할수있습니다. Oracle9i Database Administration Fundamentals I 1-20

45 ñ. ñ. ÿ ñ. þ þ ñ. LOG_BUFFER ÿ ñ Copyright Oracle Corporation, All rights reserved. 리두로그버퍼는데이터파일블록의변경사항을포함하는순환버퍼입니다. 이정보는리두항목에저장됩니다. 리두항목에는 INSERT, UPDATE, DELETE, CREATE, ALTER 또는 DROP 작업에의해변경되기전의데이터를재생성해야하는정보가포함됩니다. 리두로그버퍼크기조정리두로그버퍼의크기는초기화매개변수 LOG_BUFFER에의해정의됩니다. 주 : 리두로그버퍼의크기조정에대해서는 Oracle9i Database Performance Tuning( 한글판 ) 과정에서자세하게다룹니다. 리두로그파일에대한자세한내용은 리두로그파일관리 단원을참조하십시오. Oracle9i Database Administration Fundamentals I 1-21

46 ó SGA ñ. ò ñ. (UGA) I/O RMAN PARALLEL_AUTOMATIC_TUNING TRUE LRU ñ. LARGE_POOL_SIZE ÿ ñ ÿ ñ Copyright Oracle Corporation, All rights reserved. ó 공유서버, Oracle XA 또는병렬질의버퍼용대용량풀에서세션메모리를할당함으로써주로공유 SQL 문을캐시하기위한용도로공유풀을사용할수있습니다. 따라서공유풀내의영역에대한부담을줄일수있습니다. 공유풀은충분한메모리를사용하여공유서버세션정보, I/O, 백업및복구프로세스를위해 SQL 구문분석트리를캐시할수있습니다. 공유 SQL 캐시크기를조정하여오버헤드를줄이면성능이향상됩니다. 백업및복원 : RMAN(Recovery Manager) 은 BACKUP_DISK_IO= n 및 BACKUP_TAPE_IO_SLAVE = TRUE 매개변수가설정된경우대용량풀을사용합니다. 대용량풀이구성되었지만크기가충분하지않으면대용량풀에서메모리를할당할수없습니다.RMAN은오류메시지를경고로그파일에쓰며백업또는복원을위해 I/O 슬래이브를사용하지않습니다. 병렬실행 : PARALLEL_AUTOMATIC_TUNING이 TRUE로설정되면대용량풀이사용되고, 그렇지않으면이러한버퍼가공유풀에할당됩니다. Oracle9i Database Administration Fundamentals I 1-22

47 ó 2 대용량풀크기조정 : 대용량풀은 LARGE_POOL_SIZE 매개변수에서정의한크기 ( 바이트 ) 로조정됩니다. 이매개변수는동적매개변수가아닙니다. 대용량풀및 LRU 목록 : 대용량풀에는 LRU 목록이없습니다. LRU 목록을사용하는공유풀의예약공간과는다른개념입니다. Oracle9i Database Administration Fundamentals I 1-23

48 Java Java ñ. Java ñ. JAVA_POOL_SIZE ÿ ñ Copyright Oracle Corporation, All rights reserved. Java Java 풀은선택적인설정이지만 Java 를설치하고사용하는경우필요합니다. Java 풀은 JAVA_POOL_SIZE 매개변수를통해바이트단위로크기가조정됩니다. Oracle9i 에서 Java 풀의기본크기는 24MB 입니다. Oracle9i Database Administration Fundamentals I 1-24

49 ÿ ñ. ÿ òÿ ñ. ÿ ò ÿ ñ. ÿ ñ. PGA 1-25 Copyright Oracle Corporation, All rights reserved. PGA 2 프로그램글로벌영역또는 PGA( 프로세스글로벌영역 ) 는데이터를포함하고단일서버프로세스또는단일백그라운드프로세스의정보를제어하는메모리영역입니다. PGA는프로세스가생성될때할당되고프로세스가종료될때할당이해제됩니다. 여러프로세스가공유하는 SGA와달리PGA는단하나의프로세스가사용하는영역입니다. PGA 내용 : PGA 메모리의내용은인스턴스가전용서버에서실행되는지또는공유서버구성에서실행되는지여부에따라다릅니다. 일반적으로 PGA 메모리에는다음구성요소가포함됩니다. 전용 SQL 영역 : 바인드정보및런타임메모리구조와같은데이터가포함되며 SQL 문을실행하는각세션마다전용 SQL 영역이있습니다. 동일한 SQL 문을제출하는각사용자는단일공유 SQL 영역을사용하는고유한전용 SQL 영역을가지고있습니다. 따라서많은전용 SQL 영역을동일한공유 SQL 영역과연관시킬수있습니다. 커서의전용 SQL 영역은다음두영역으로나누어집니다. 지속영역 : 바인드정보를포함하며커서가닫힐때만해제됩니다. 런타임영역 : 실행요청의첫번째단계로생성됩니다. INSERT, UPDATE 및 DELETE 명령의경우이영역은명령문이실행된후에해제되고질의의경우에는모든행이인출되거나질의가취소된후에만해제됩니다. Oracle9i Database Administration Fundamentals I 1-25

50 2 전용 SQL 영역 ( 계속 ): 전용 SQL 영역의위치는세션에설정된접속유형에따라다릅니다. 전용서버환경에서는전용 SQL 영역이해당서버프로세스의 PGA에있고공유서버환경에서는 SGA에있습니다. 전용 SQL 영역은사용자프로세스에서관리해야합니다. 사용자프로세스에서할당할수있는전용SQL 영역의수는항상초기화매개변수 OPEN_CURSORS에의해제한됩니다. 이매개변수의기본값은 50입니다. 세션메모리 : 세션의변수및세션에관련된기타정보를유지하기위해할당되는메모리로구성됩니다. 공유서버환경에서세션메모리는전용메모리가아닌공유메모리입니다. SQL 작업영역 : 정렬, 해시조인, 비트맵병합, 비트맵생성과같이메모리가많이필요한작업에사용됩니다. 작업영역의크기는제어하거나튜닝할수있습니다. Oracle9i부터작업영역의크기는 WORKAREA_SIZE_POLICY 매개변수를기본값인 AUTO로설정하고초기화매개변수 PGA_AGGREGATE_TARGET을설정하여전역적으로자동관리됩니다. PGA_AGGREGATE_TARGET 매개변수는 DBA가설정하며인스턴스에서사용할수있는 PGA 메모리의목표합계양을지정합니다. 이매개변수는단지목표일뿐이며 DBA가인스턴스레벨에서동적으로수정할수있고바이트, KB, MB 또는 GB 단위를사용합니다. 이러한매개변수가설정되면작업영역의크기가자동으로조정되고모든 *_AREA_SIZE 매개변수는이세션에서무시됩니다. Oracle9i 이전에는 DBA 가 SORT_AREA_SIZE, HASH_AREA_SIZE, BITMAP_MERGE_AREA_SIZE 및 CREATE_BITMAP_AREA_SIZE 매개변수를설정하여 SQL 작업영역의최대크기를제어했습니다. 그러나최대작업영역크기는데이터입력크기및시스템에서활성화된총작업영역수에따라이상적으로선택되기때문에이러한매개변수를설정하는것은쉽지않습니다. 이두요소는작업영역과시간에따라크게달라집니다. 따라서최적의환경에서이러한매개변수를튜닝하기는어렵습니다. Oracle9i Database Administration Fundamentals I 1-26

51 2 전용서버와공유서버의메모리할당차이 PGA 메모리의내용은인스턴스가전용서버구성에서실행되는지또는공유서버구성에서실행되는지여부에따라다릅니다. 일반적으로 PGA 메모리에는다음구성요소가포함됩니다. 메모리영역 전용서버 공유서버 세션메모리특성 지속영역의위치 런타임영역 (SELECT) 의위치 전용 PGA PGA 공유 SGA SGA 런타임영역 (DML/DDL) 의위치 PGA PGA Oracle9i Database Administration Fundamentals I 1-27

52 Oracle ñ. : Oracle ÿ ñ. : Oracle ÿ ñ. : Oracle ÿ ÿ ñ Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 1-28

53 Oracle ñ. ñ. Oracle ñ Copyright Oracle Corporation, All rights reserved. 데이터베이스사용자가데이터베이스의정보를요청하려면먼저 Oracle 서버에접속해야합니다. SQL*Plus와같은데이터베이스인터페이스툴을사용하고사용자프로세스를시작하여접속을요청합니다. 사용자프로세스는 Oracle 서버와직접상호작용하지않고, 대신세션을생성하고서버프로세스를시작하는 UPI( 사용자프로그램인터페이스 ) 를통해호출을생성합니다. Oracle9i Database Administration Fundamentals I 1-29

54 Oracle ñ. ÿ ñ. ñ ñ. Oracle 1-30 Copyright Oracle Corporation, All rights reserved. 사용자가접속하면서버프로세스가시작되어사용자프로세스요청을처리합니다. 서버프로세스는전용서버프로세스또는공유서버프로세스일수있습니다. 전용서버환경에서는서버프로세스가단일사용자프로세스의요청을처리하며사용자프로세스의접속이해제되면서버프로세스가종료됩니다. 공유서버환경에서는서버프로세스가여러사용자프로세스의요청을처리합니다. 서버프로세스는 OPI(Oracle 프로그램인터페이스 ) 를사용하여 Oracle 서버와통신합니다. 주 : 전용환경과공유환경에서의서버프로세스할당에대한자세한내용은 Oracle9i Database Performance Tuning( 한글판 ) 과정에서자세하게다룹니다. Oracle9i Database Administration Fundamentals I 1-30

55 ñ. : DBWn PMON CKPT LGWR SMON : ARCn LMDn RECO CJQ0 LMON Snnn Dnnn Pnnn LCKn QMNn 1-31 Copyright Oracle Corporation, All rights reserved. Oracle 구조에는다섯가지필수백그라운드프로세스가있는데이러한프로세스에대해서는이단원의뒷부분에서설명합니다. 옵션이사용되는동안에는이러한필수목록외에도여러가지선택적인백그라운드프로세스가시작됩니다. 이과정에서는 ARCn 백그라운드프로세스외의선택적프로세스에대해설명하지않습니다. 다음은일부선택적백그라운드프로세스의목록입니다. RECO: 복구자 QMNn: 고급대기열처리 ARCn: 아카이버 LCKn: RAC 잠금관리자-인스턴스잠금 LMON: RAC DLM 모니터-글로벌잠금 LMDn: RAC DLM 모니터-원격잠금 CJQ0: 조정자작업대기열백그라운드프로세스 Dnnn: 디스패처 Snnn: 공유서버 Pnnn: 병렬질의슬래이브 Oracle9i Database Administration Fundamentals I 1-31

56 DBWn( ) SGA DBWn DBWn ø ò RAC ÿ OFFLINE READ ONLY DROP TRUNCATE BEGIN BACKUP 1-32 Copyright Oracle Corporation, All rights reserved. DBWn 2 서버프로세스는실행취소블록및데이터블록의변경사항을데이터베이스버퍼캐시에기록합니다. DBWn는데이터베이스버퍼캐시의더티버퍼를데이터파일에기록하여데이터베이스버퍼캐시에있는사용가능한버퍼 ( 서버프로세스가데이터파일의블록을읽을때겹쳐쓸수있는버퍼 ) 수를충분하게유지합니다. 서버프로세스는데이터베이스버퍼캐시에서만변경하므로데이터베이스성능이향상됩니다. DBWn는다음이벤트중하나가발생할때까지데이터파일에기록하는것을지연시킵니다. 증분또는정상체크포인트가발생한경우 더티버퍼의개수가한계값에이른경우 사용가능한버퍼를스캔할때프로세스가지정된개수의블록을스캔했는데도찾을수없는경우 시간초과가발생한경우 RAC(Real Application Clusters) 환경에서핑요청을한경우 정상또는임시테이블스페이스를오프라인으로설정한경우 테이블스페이스를읽기전용모드로설정한경우 테이블을삭제하거나잘라낸경우 ALTER TABLESPACE 테이블스페이스이름 BEGIN BACKUP 인경우 Oracle9i Database Administration Fundamentals I 1-32

57 LGWR( ) SGA DBWn LGWR LGWR ñ ñ. 1/3 1MB 3ñ DBWn 1-33 Copyright Oracle Corporation, All rights reserved. LGWR 2 LGWR는다음상황일때리두로그버퍼의내용을리두로그파일에순차적으로기록합니다. 트랜잭션커밋시 리두로그버퍼가 1/3 찼을때 1MB 이상의변경사항이리두로그버퍼에기록되는경우 DBWn가데이터베이스버퍼캐시에서수정된블록을데이터파일에기록하기전에 3초마다리두가복구를위해필요하기때문에디스크에리두를기록한후에만 LGWR는커밋작업을확인합니다. 또한 LGWR는데이터파일에기록하도록 DBWn에요청할수있습니다. Oracle9i Database Administration Fundamentals I 1-33

58 SMON( ) SMON SGA : ñ. ñ. þ ñ. ñ. ò ñ Copyright Oracle Corporation, All rights reserved. SMON 2 Oracle 인스턴스가실패하면디스크에기록하지않은 SGA의정보는손실됩니다. 예를들어, 운영체제가실패하면인스턴스도실패합니다. 인스턴스손실후백그라운드프로세스인 SMON은데이터베이스를다시열때인스턴스복구를자동으로수행합니다. 인스턴스복구는다음단계로구성됩니다. 1. 롤포워드하여데이터파일에는기록되지않았지만온라인리두로그에기록된데이터를복구합니다. 이데이터는인스턴스가실패했을때 SGA가손실되었기때문에디스크에기록되지않았습니다. 이프로세스동안 SMON은리두로그파일을읽어들여리두로그에기록된변경사항을데이터블록에적용합니다. 모든커밋된트랜잭션이리두로그에기록되었기때문에이프로세스는이러한트랜잭션을완전히복구합니다. 2. 데이터베이스를열어사용자가로그인하도록합니다. 복구되지않은트랜잭션에의해잠긴데이터를제외하고는즉시사용가능합니다. 3. 커밋되지않은트랜잭션은롤백됩니다. 이것은 SMON에의해또는각서버프로세스가잠긴데이터를액세스할때해당서버프로세스에의해롤백됩니다. SMON은또한다음과같은일부공간유지관리기능을수행합니다. 데이터파일에서사용가능한공간의인접영역을병합합니다. 임시세그먼트의할당을해제하여데이터파일에서사용가능한공간으로되돌립니다. Oracle9i Database Administration Fundamentals I 1-34

59 PMON( ) PMON SGA PGA ñ ñ. ñ. ñ. ñ. ñ Copyright Oracle Corporation, All rights reserved. PMON 2 백그라운드프로세스인 PMON은프로세스실패후다음과같이정리합니다. 사용자의현재트랜잭션이롤백됩니다. 현재유지된테이블또는행잠금을해제합니다. 현재사용자가예약한기타자원을사용가능하게합니다. 사용불능디스패처를재시작합니다. 디스패처는 Oracle9i Database Administration Fundamentals II( 한글판 ) 과정에서자세히설명합니다. Oracle9i Database Administration Fundamentals I 1-35

60 CKPT( ) SGA DBWn LGWR CKPT : DBWn ñ. ø ñ. ñ Copyright Oracle Corporation, All rights reserved. CKPT 2 CKPT 프로세스는 3초마다데이터를제어파일에저장하여리두로그파일에서복구가시작되는위치를식별하는데이를체크포인트라고합니다. 체크포인트의용도는특정시점이전에수정된데이터베이스버퍼캐시의모든버퍼가데이터파일에기록되게하는것입니다. 체크포인트위치라고하는이시점은인스턴스오류시데이터베이스복구가시작되는위치입니다. DBWn는이시점전에수정된데이터베이스버퍼캐시의모든버퍼를이미기록했을것입니다. Oracle9i 이전에는이작업이리두로그마지막에수행되었습니다. 로그스위치가발생한경우에도 CKPT는이체크포인트정보를데이터파일의헤더에기록합니다. 체크포인트를시작하는이유 메모리에있는수정된데이터블록을정기적으로디스크에기록하여시스템또는데이터베이스오류시데이터가손실되지않게합니다. 인스턴스복구에필요한시간을줄입니다. 복구를수행하기위해서는마지막체크포인트이후의리두로그항목만처리되면됩니다. 종료하는동안모든커밋된데이터가데이터파일에기록되게합니다. CKPT가기록한체크포인트정보에는체크포인트위치, 시스템변경번호, 복구를시작할리두로그에서의위치, 로그정보등이포함됩니다. 주 : CKPT 는데이터블록을디스크에기록하거나리두블록을온라인리두로그에기록하지않습니다. Oracle9i Database Administration Fundamentals I 1-36

61 (ARCn) ARCHIVELOG þ ú ñ. ñ. ARCn ÿ 1-37 Copyright Oracle Corporation, All rights reserved. ARCn ( ) 다른모든백그라운드프로세스는데이터베이스의구성에따라선택적이나그중 ARCn 프로세스는디스크손실후데이터베이스를복구하는데반드시필요합니다. 온라인리두로그파일이채워지면 Oracle 서버는다음온라인리두로그파일에기록을시작하는데이와같이한리두로그에서다른리두로그로전환하는프로세스를로그스위치라고합니다. ARCn 프로세스는로그스위치가발생할때마다채워진로그그룹을백업하거나아카이브하기시작합니다. 이것은로그를다시사용하기전에온라인리두로그를자동아카이브하므로데이터베이스의모든변경사항이보존됩니다. 따라서 DBA는디스크드라이브가손상되더라도데이터베이스를장애발생시점까지복구할수있습니다. 리두로그파일아카이브 : 데이터베이스를 ARCHIVELOG 모드와 NOARCHIVELOG 모드중에서어느모드에서작동하도록구성할지여부는 DBA가결정해야하는중요한문제중하나입니다. NOARCHIVELOG 모드 : NOARCHIVELOG 모드에서는로그스위치가발생할때마다온라인리두로그파일을겹쳐씁니다. LGWR는해당그룹의체크포인트가완료될때까지리두로그그룹을겹쳐쓰지않습니다. 따라서인스턴스실패시커밋된데이터는복구할수있고 SGA만손실됩니다. 즉, 디스크는손실되지않고메모리만손실되는데예를들어운영체제가실패하면인스턴스도실패합니다. Oracle9i Database Administration Fundamentals I 1-37

62 2 ARCHIVELOG 모드 : 데이터베이스가 ARCHIVELOG 모드로실행하도록구성된경우채워진온라인리두로그파일의비활성그룹은다시사용하기전에아카이브해야합니다. 데이터베이스의변경사항은온라인리두로그파일에기록되기때문에데이터베이스관리자는데이터파일의물리적백업및아카이브된온라인리두로그파일을사용하여디스크손실을포함하여어느한부분의실패로인해커밋된데이터를손실하는일없이데이터베이스를복구할수있습니다. 대개운용중인데이터베이스는 ARCHIVELOG 모드에서실행하도록구성됩니다. 아카이브로그모드는 Oracle9i Database Administration Fundamentals II( 한글판 ) 과정에서자세히설명합니다. Oracle9i Database Administration Fundamentals I 1-38

63 þ ñ.,, ÿ ñ Copyright Oracle Corporation, All rights reserved. 논리적구조계층입니다. 오라클데이터베이스에는테이블스페이스가하나이상포함되어있습니다. 테이블스페이스에는세그먼트가하나이상포함되어있습니다. 세그먼트는확장영역으로구성됩니다. 확장영역은논리적블록으로구성됩니다. 블록은읽기및쓰기작업의최소단위입니다. 오라클데이터베이스구조는데이터베이스를구성하는논리적구조와물리적구조로나눌수있습니다. 물리적구조에는데이터베이스를구성하는제어파일, 온라인리두로그파일및데이터파일이포함됩니다. 논리적구조에는테이블스페이스, 세그먼트, 확장영역및데이터블록이포함됩니다. Oracle 서버는세그먼트, 확장영역및데이터블록을포함한논리적저장영역구조와테이블스페이스를통해서디스크영역사용을세부적으로제어할수있습니다. Oracle9i Database Administration Fundamentals I 1-39

64 2 테이블스페이스 : 오라클데이터베이스의데이터는테이블스페이스에저장됩니다. 오라클데이터베이스는논리적으로테이블스페이스라고하는작은논리적저장영역으로그룹화될수있습니다. 테이블스페이스는어느한시점에서데이터베이스하나에만속할수있습니다. 각테이블스페이스는데이터파일이라고하는하나이상의운영체제파일로구성됩니다. 테이블스페이스는하나이상의세그먼트로구성됩니다. 데이터베이스를실행하는동안테이블스페이스를온라인으로설정할수있습니다. SYSTEM 테이블스페이스또는활성실행취소세그먼트가있는테이블스페이스를제외하면데이터베이스를실행하면서테이블스페이스를오프라인으로설정할수있습니다. 테이블스페이스를읽기 / 쓰기및읽기전용상태로전환할수있습니다. 데이터파일 ( 논리적구조아님 ): 오라클데이터베이스의각테이블스페이스는데이터파일이라고하는하나이상의파일로구성되며이러한데이터파일은 Oracle 서버를실행중인운영체제를따르는물리적구조입니다. 데이터파일은한테이블스페이스에만속할수있습니다. Oracle 서버에서는지정된용량의디스크공간과작은용량의오버헤드를할당하여테이블스페이스용데이터파일을생성합니다. 데이터베이스관리자는데이터파일생성후크기를변경할수있고테이블스페이스의객체가커짐에따라데이터파일도동적으로커지도록지정할수있습니다. 세그먼트 : 세그먼트는테이블스페이스안의특정논리적저장영역구조에할당된영역입니다. 테이블스페이스는하나이상의세그먼트로구성됩니다. 세그먼트를여러테이블스페이스로확장할수없지만동일한테이블스페이스에속한여러데이터파일로확장할수는있습니다. 각세그먼트는하나이상의확장영역으로구성됩니다. 확장영역 : 공간을확장영역단위로세그먼트에할당합니다. 하나이상의확장영역으로세그먼트를구성합니다. 생성된세그먼트는하나이상의확장영역으로구성됩니다. 세그먼트가커지면확장영역이세그먼트에추가됩니다. DBA는수동으로세그먼트에확장영역을추가할수있습니다. 확장영역은연속된 Oracle 블록집합입니다. 확장영역은데이터파일로확장할수없으므로한데이터파일에존재해야합니다. Oracle9i Database Administration Fundamentals I 1-40

65 2 데이터블록 : Oracle 서버에서는 Oracle 블록또는데이터블록이라는단위로데이터파일에있는저장공간을관리합니다. 가장작은단위인오라클데이터베이스의데이터는데이터블록에저장됩니다. Oracle 데이터블록은 Oracle 서버가할당, 읽기또는기록할수있는가장작은단위의저장영역입니다. 하나의데이터블록은기존데이터파일에서할당된하나이상의운영체제블록에대응됩니다. 오라클데이터베이스의표준데이터블록크기는데이터베이스가생성될때초기화매개변수 DB_BLOCK_SIZE를통해지정됩니다. 데이터블록크기는불필요한 I/O를피하기위해운영체제블록크기의배수가되어야합니다. 최대데이터블록크기는운영체제에따라다릅니다. Oracle9i Database Administration Fundamentals I 1-41

66 SQL ñ ñ. Oracle SQL ññ. ñ. DML ñ. ñ. Oracle SQL ñ Copyright Oracle Corporation, All rights reserved. SQL 질의처리 : 구문분석 : 동일한명령문을검색합니다. 구문, 객체이름및권한을검사합니다. 구문을분석하는동안사용된객체를잠급니다. 실행계획을생성하고저장합니다. 바인드 : 변수값을얻습니다. 실행 : 명령문을처리합니다. 인출 : 사용자프로세스로행을반환합니다. Oracle9i Database Administration Fundamentals I 1-42

67 SQL 2 DML 문처리 : 구문분석 : 질의처리에사용되는구문분석과동일합니다. 바인드 : 질의처리에사용되는바인드단계와동일합니다. 실행 : 데이터및실행취소블록이데이터베이스버퍼캐시에없는경우서버프로세스는이러한블록을데이터파일에서읽어데이터베이스버퍼캐시에복사합니다. 서버프로세스는수정될행을잠급니다. 실행취소블록에데이터의이전이미지를저장하여필요한경우 DML 문을롤백할수있습니다. 데이터블록변경은새로운데이터값을기록합니다. 서버프로세스는이전이미지를실행취소블록에기록하고데이터블록을갱신합니다. 이러한변경은모두데이터베이스버퍼캐시에서수행됩니다. 데이터베이스버퍼캐시의변경된블록은더티버퍼, 즉디스크에있는해당블록과동일하지않은버퍼로표시됩니다. DELETE 또는 INSERT 명령을처리할때도유사한단계가사용됩니다. DELETE 의이전이미지에는삭제된행의열값이포함되고 INSERT의이전이미지에는행위치정보가포함됩니다. DDL 문처리 : DDL( 데이터정의어 ) 문이성공하려면데이터딕셔너리에대한쓰기액세스가필요하기때문에 DDL 문의실행은 DML( 데이터조작어 ) 문및질의와다릅니다. 이러한명령문의경우구문분석에는실제로구문분석, 데이터딕셔너리조회및실행이포함됩니다. 트랜잭션관리, 세션관리및시스템관리 SQL 문은구문분석및실행단계를사용하여처리됩니다. 다시실행하려면다른실행단계를수행하십시오. Oracle9i Database Administration Fundamentals I 1-43

68 ñ ñ ó ñ. :,, SGA :, : DBWn, LGWR, CKPT, PMON, SMON ARCn 1-44 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 1-44

69 1 ñ ññ. Oracle ÿ 1-45 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 1-45

70 :=/Oracle 1 다음설명중옳은것은? a Oracle 서버는세가지파일유형으로구성된데이터의모음입니다. b 사용자는 Oracle 인스턴스를시작하여데이터베이스에접속합니다. c 접속은 Oracle 서버와 Oracle 인스턴스사이의통신경로입니다. d Oracle 서버에서사용자를검증하면세션이시작됩니다. 2 다음메모리영역중 SGA의일부가아닌것은? a 데이터베이스버퍼캐시 b PGA c 리두로그버퍼 d 공유풀 3 다음중공유풀에대한설명으로옳은것은? ( 두개선택 ) a 공유풀은라이브러리캐시, 데이터딕셔너리캐시, 공유 SQL 영역, Java 풀및대용량풀로구성됩니다. b 공유풀은가장최근에실행된 SQL 문을저장하는데사용됩니다. c 공유풀은전역으로공유할수있는객체에사용됩니다. d 라이브러리캐시는공유 SQL 영역및공유PL/SQL 영역으로구성됩니다. 4 다음중데이터딕셔너리정보를캐시하는메모리영역은? a 데이터베이스버퍼캐시 b PGA c 리두로그버퍼 d 공유풀 5 리두로그버퍼는주로데이터베이스데이터블록의모든변경사항을기록하는데사용됩니다. a 예 b 아니오 6 PGA는여러서버프로세스또는백그라운드프로세스에대한데이터및제어정보를포함하는메모리영역입니다. a 예 b 아니오 7 다음중 Oracle 인스턴스가시작될때사용할수있는것은? a 사용자프로세스 b 서버프로세스 c 백그라운드프로세스 8 다섯개의필수백그라운드프로세스를나열하십시오. Oracle9i Database Administration Fundamentals I 1-46

71 :=/LcX ] / LcX ] / 2 9 프로세스와해당작업을연결하십시오. a 데이터베이스기록자 E 데이터파일헤더에쓰기를지원합니다. b 로그기록자 C 인스턴스복구를담당합니다. c 시스템모니터 D 프로세스실패후정리합니다. d 프로세스모니터 B 복구용으로데이터베이스변경사항을기록합니다. e 체크포인트 A 더티버퍼를데이터파일에기록합니다. 10 오라클데이터베이스의물리적구조는제어파일, 데이터파일및리두로그 파일로구성됩니다. a 예 b 아니오 11 다음구조를데이터베이스에서시작하는계층순서로배치하십시오. a 테이블스페이스 b 확장영역 c 세그먼트 d 데이터베이스 e 블록 12 Oracle 서버의구성요소를나열하십시오. 13 Oracle 인스턴스의구성요소를나열하십시오. 14 오라클데이터베이스를구성하는세가지파일유형을나열하십시오. Oracle9i Database Administration Fundamentals I 1-47

72 Oracle9i Database Administration Fundamentals I 1-48

73 Oracle Copyright Oracle Corporation, All rights reserved.

74 ñ ñ ñ. DBA Oracle Universal Installer SQL*Plus Oracle Enterprise Manager 2-2 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 2-2

75 OUI(Oracle Universal Installer) Oracle Database Configuration Assistant SQL*Plus Oracle Enterprise Manager, OUI þ,, ñ 2-3 Copyright Oracle Corporation, All rights reserved. 이과정에서는여기에나열된모든툴에대해다루지만 Oracle에서제공하는유틸리티는이외에도여러가지가있습니다. Oracle9i Database Administration Fundamentals I 2-3

76 Oracle Universal Installer, Java ú ÿ Oracle Globalization 2-4 Copyright Oracle Corporation, All rights reserved. Oracle Universal Installer Java 기반 Oracle Universal Installer는모든Java 사용플랫폼에대한설치솔루션을제공하여플랫폼에관계없이공통으로설치할수있게합니다. Universal Installer 기능 구성요소간의종속성을감지하여이에따라설치과정을수행합니다. 릴리스또는스테이지영역을정의한 URL을가리키고 HTTP를통해원격으로소프트웨어를설치할수있습니다. 설치된제품을제거하는데사용할수있습니다. 제거작업은설치과정의 실행취소 입니다. 대상시스템에있는모든 Oracle 홈과그이름, 설치된제품및제품버전정보를유지관리합니다. 운영체제의언어를감지하여해당언어로설치세션을실행합니다. 대화식모드또는자동모드로실행할수있습니다. Oracle Universal Installer는응답파일을사용하여자동 ( 비대화식 ) 모드로실행됩니다. Oracle9i Database Administration Fundamentals I 2-4

77 Universal Installer UNIX Oracle Universal Installer $./runinstaller NT Oracle Universal Installer D:\> setup 2-5 Copyright Oracle Corporation, All rights reserved. ó UNIX: 설치프로그램의이름은 runinstaller이며 INSTALL\install\solaris 디렉토리에있습니다. UNIX에서는루트사용자로 Universal Installer를실행하지마십시오. NT: 설치프로그램의이름은 setup.exe이며 install/win32 디렉토리에있습니다. 주 : 사용중인플랫폼에 Oracle Server 를설치하는방법은운영체제별오라클설명서를참조하십시오. Oracle9i Database Administration Fundamentals I 2-5

78 ò ó ò ÿ ÿ ó Universal Installer./runInstaller -responsefile myrespfile -silent 2-6 Copyright Oracle Corporation, All rights reserved. ò ó 사용자작업이필요하지않거나비그래픽터미널을사용하여설치하는경우비대화식설치가수행됩니다. 설치매개변수는응답파일을사용하여사용자정의됩니다. 응답파일은설치과정중 Oracle Universal Installer에서사용하는변수및값이포함된텍스트파일입니다. 설치매개변수의예로는 ORACLE_HOME 및설치유형 ( 일반설치또는사용자설치 ) 값을들수있습니다. 사용자는먼저응답파일을복사하고편집하여설치할구성요소를지정해야합니다. UNIX: 응답파일템플리트는 stage/response 디렉토리에있습니다../runInstaller -responsefile filename [-silent] [-nowelcome] NT: 응답파일템플리트는 CD-ROM의 Response 디렉토리에있습니다. setup.exe responsefile filename [-silent] 주 : 이모드는문자모드가아닙니다. Oracle9i Database Administration Fundamentals I 2-6

79 ó Oracle Universal Installer 예 : 비대화식모드로 Oracle Universal Installer를실행합니다. UNIX:./runInstaller responsefile FILENAME [-SILENT] [-NOWELCOME] 설명 FILENAME: 응답파일식별 SILENT: Oracle Universal Installer를자동모드로실행 NOWELCOME: Welcome 창을표시하지않습니다. SILENT를사용할때는이매개변수가필요하지않습니다. UNIX ò [General] RESPONSEFILE_VERSION=1.7.0 [Session] UNIX_GROUP_NAME="dba" FROM_LOCATION="/u01/stage/products.jar" ORACLE_HOME="/u01/app/oracle/ora9i" ORACLE_HOME_NAME="Ora9i" TOPLEVEL_COMPONENT={"oracle.server", " "} SHOW_COMPONENT_LOCATIONS_PAGE=false SHOW_SUMMARY_PAGE=false SHOW_INSTALL_PROGRESS_PAGE=false SHOW_REQUIRED_CONFIG_TOOL_PAGE=false SHOW_OPTIONAL_CONFIG_TOOL_PAGE=false SHOW_END_SESSION_PAGE=false NEXT_SESSION=true SHOW_SPLASH_SCREEN=true SHOW_WELCOME_PAGE=false SHOW_ROOTSH_CONFIRMATION=true SHOW_EXIT_CONFIRMATION=true INSTALL_TYPE="Typical" s_globaldbname="u01.us.oracle.com" s_mountpoint="/u01/app/oracle/ora9i/dbs" s_dbsid="db09" b_createdb=true Oracle9i Database Administration Fundamentals I 2-7

80 ó Oracle Universal Installer 예제응답파일 ( 계속 ) General 섹션에서는응답파일의버전번호를지정합니다. Sessions 섹션에는다음과같이 Universal Installer의여러대화상자가나열됩니다. FROM LOCATION - 설치할제품의소스위치를지정합니다. ORACLE_HOME - ORACLE_HOME의값입니다. ORACLE_HOME_NAME - ORACLE_HOME_NAME의값입니다. SHOW INSTALL PROGRESS - 설치단계중나타나는설치진행페이지입니다. SHOW ROOTISH CONFIRMATION - root.sh 스크립트를실행하는확인대화상자를표시하려면 TRUE로설정합니다. SHOW EXIT CONFIRMATION - Universal Installer를종료할때확인대화상자를표시하려면 TRUE로설정합니다. 주 : 응답파일을설정하는방법은운영체제별설치설명서를참조하십시오. Oracle9i Database Administration Fundamentals I 2-8

81 Oracle Database Configuration Assistant Oracle Database Configuration Assistant ñ ñ. 2-9 Copyright Oracle Corporation, All rights reserved. Oracle Database Configuration Assistant Oracle Database Configuration Assistant 를사용하여데이터베이스를생성하는방법은 " 데이터베이스생성 " 단원에서다룹니다. Oracle9i Database Administration Fundamentals I 2-9

82 SYS SYSTEM ú ÿ ñ. DBA ÿ ñ. SYS : change_on_install ß SYSTEM : manager Oracle 2-10 Copyright Oracle Corporation, All rights reserved. Oracle 서버에서사용자생성과같은관리작업을수행하려면추가권한이필요합니다. 두개의데이터베이스사용자계정인 SYS와 SYSTEM은데이터베이스와함께자동으로생성되며 DBA 롤이부여됩니다. 이 DBA 롤은모든데이터베이스에서자동생성되는미리정의된롤이며모든데이터베이스시스템권한을가집니다. SYS 데이터베이스가생성될때 SYS 사용자가생성되며초기암호는 change_on_install로지정됩니다. SYS는매우중요한데이터딕셔너리를소유합니다. SYS로접속할때는 SYSDBA나 SYSOPER로접속해야합니다. SYSDBA나 SYSOPER 권한없이접속하려고하면 ORA connecting to SYS should be SYSDBA or SYSOPER라는오류메시지가표시됩니다. SYSTEM 데이터베이스가생성될때 SYSTEM 사용자도자동생성되는데이사용자의초기암호는 manager입니다. SYSTEM 사용자가소유하는추가테이블과뷰가생성되며여기에는 Oracle 툴에서사용하는관리정보가저장됩니다. 데이터베이스생성모드즉, 수동으로생성하는지 Database Creation Assistant를사용하여생성하는지여부에따라추가사용자가생성될수도있습니다. 일상적인관리작업을수행하려면관리자의사용자이름을하나이상추가생성해야합니다. 보안상의안전을위해데이터베이스를생성한후즉시 SYS와 SYSTEM의기본암호를변경해야합니다. Oracle9i Database Administration Fundamentals I 2-10

83 SQL*Plus ñ Oracle,,,, ÿ ÿ SQL SQL*Plus sqlplus /nolog connect / as sysdba Connected to an idle instance Copyright Oracle Corporation, All rights reserved. SQL*Plus SQL*Plus 는표준 SQL( 구조적질의어 ) 명령모음을실행하는데사용되는 Oracle 의명령행툴입니다. SQL 은데이터베이스에서데이터를검색, 추가, 갱신또는수정하기위해 Oracle 과통신하는데사용되는함수기반언어입니다. Oracle9i Database Administration Fundamentals I 2-11

84 Oracle Enterprise Manager DBA ÿ, ñ ñ á ñ Parallel Server 2-12 Copyright Oracle Corporation, All rights reserved. Oracle Enterprise Manager Oracle Enterprise Manager는 Java 기반콘솔, 툴및서비스모음, 관리서버와 Intelligent Agent 네트워크로구성된통합관리프레임워크입니다. 여기에는계층트리및시스템내의객체와객체관계에대한그래픽표현이포함됩니다. 작업일정잡기및관리, 이벤트관리, 데이터베이스검색및관리, 서비스검색및관리등과같은공통서비스는모두 Oracle Enterprise Manager에대해완벽한프레임워크를제공합니다. 또한 Oracle Enterprise Manager에는일반적인관리작업과고급관리작업을모두수행할수있는통합응용프로그램이포함되어있습니다. 이응용프로그램에는 Diagnostics Pack, Tuning Pack 및 Change Management Pack과같은옵션팩과Oracle Net Manager, Spatial Index Advisor 및 Text Manager 등의기타응용프로그램이포함됩니다. Oracle9i Database Administration Fundamentals I 2-12

85 Oracle Enterprise Manager - Oracle Management Server Oracle Oracle Oracle Management Server Oracle 2-13 Copyright Oracle Corporation, All rights reserved. Oracle Enterprise Manager Oracle Enterprise Manager는다음3계층구조를이용합니다. 첫번째계층 : 콘솔클라이언트및통합툴은관리자에게그래픽인터페이스를제공합니다. 두번째계층 : Oracle Management Server 및데이터베이스저장소는시스템관리작업을처리하는데필요한확장가능한중간계층을제공합니다. 세번째계층 : 각노드에설치된 Intelligent Agent는해당서비스를모니터하고 Management Server에서작업을실행합니다. Oracle Enterprise Manager를반드시 3계층으로구현해야하는것은아니므로데이터베이스에직접접속하는 2계층구조에서도 Oracle Enterprise Manager를사용할수있습니다. 콘솔을독립적으로실행하면한사용자가 Oracle Management Server나 Intelligent Agent 없이도하나이상의응용프로그램을사용할수있습니다. 독립형콘솔은작업, 이벤트또는그룹시스템이필요없는기본관리작업을수행하려는경우사용됩니다. Oracle9i Database Administration Fundamentals I 2-13

86 Oracle Enterprise Manager ( ) 콘솔첫번째계층은관리자에게모든관리작업을위한그래픽사용자인터페이스를제공하는콘솔및관리응용프로그램과같은클라이언트로구성됩니다. 이계층은다수의응용프로그램논리에대한두번째계층 Oracle Management Server에따라달라집니다. 주 : Oracle9i에서는콘솔에독립적으로접속할수있지만 Oracle9i 이전에는 Oracle Management Server를통해서만콘솔에접속할수있었습니다. Oracle Management Server Oracle Enterprise Manager의두번째계층구성요소는 OMS(Oracle Management Server) 입니다. OMS는 Oracle Enterprise Manager 프레임워크의핵심으로관리사용자계정을제공하고, 작업및이벤트와같은기능을처리하며, 콘솔 ( 첫번째계층 ) 과관리노드 ( 세번째계층 ) 사이의정보흐름을관리합니다. OMS는저장소를사용하여모든시스템데이터, 응용프로그램데이터, 관리노드의상태정보및시스템에서관리되는팩정보를저장합니다. Oracle Enterprise Manager 저장소저장소는 OMS를설치할때생성되는테이블집합입니다. OMS는지속적인백엔드저장을위해저장소를사용하며필요한경우 OMS를두개이상사용할수있습니다. 여러 OMS가저장소를공유하여신뢰성및결함허용기능을제공합니다. 노드세번째계층은데이터베이스및관리되는다른서비스와같이대상이포함된관리노드로구성됩니다. Oracle Intelligent Agent는각노드에상주하며 OMS와통신하고콘솔과클라이언트응용프로그램이보낸작업을수행합니다. Intelligent Agent는노드마다하나씩만필요합니다. Intelligent Agent는콘솔및Oracle Management Server와는물론데이터베이스와관계없이독립적으로동작합니다. Intelligent Agent는다른구성요소와관계없이독립적으로실행되어데이터베이스를시작및종료하거나, 시스템의다른부분이작동중지된경우작동상태를유지하는등의작업을수행할수있습니다. Intelligent Agent의 ID는 dbsnmp입니다. Oracle9i Database Administration Fundamentals I 2-14

87 OMS 2-15 Copyright Oracle Corporation, All rights reserved. 콘솔은관리자에게그래픽인터페이스를제공하고모든관리응용프로그램및툴에대해중앙실행위치를제공합니다. 또한콘솔에서 SQL*Plus Worksheet를실행할수도있습니다. 콘솔은웹을통해서버의시스템기능에의존하는모드로실행하거나서버의시스템기능에의존하지않는클라이언트로실행할수있습니다. 서버의시스템기능에의존하는클라이언트는웹브라우저를사용하여콘솔파일이설치된서버에접속하는반면, 서버의시스템기능에의존하지않는클라이언트는콘솔파일을지역적으로설치해야합니다. 콘솔은독립형모드로실행하거나 Oracle Management Server에접속하여실행할수있습니다. 주 : 이과정에서는 Oracle Enterprise Manager, 콘솔또는 Oracle Management Server에대해자세히다루지않습니다. Oracle Enterprise Manager에대한자세한내용은 Oracle Enterprise Manager 9i 과정을참조하십시오. Oracle9i Database Administration Fundamentals I 2-15

88 Oracle Enterprise Manager Console 예 : Oracle Enterprise Manager Console을시작합니다. 1. 다음과같이콘솔을실행합니다. 시작 > 프로그램 > Oracle-OraHome90 > Enterprise Manager Console 2. 다음옵션중하나를선택하여콘솔을시작합니다. Login to the Oracle Management Server Launch standalone 3. OK를누릅니다. Oracle9i Database Administration Fundamentals I 2-16

89 ñ ñ ó ñ. Oracle Universal Installer SQL*Plus Oracle Enterprise Manager 2-17 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 2-17

90 2 ñ ññ. SQL*Plus Enterprise Manager Console 2-18 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 2-18

91 2: Oracle 이연습은강사가지도하는과정으로강사는로그인계정을제공하고해당계정에로그인하도록도와줍니다. 강사가제공하는다음정보를기록하십시오. : F / : 1 SQL*Plus 에 SYSDBA 로접속하십시오. 힌트 - 강사가제공하는지침을사용하여계정에접속합니다. - SQL*Plus를시작합니다. - SYS 사용자가 SYSDBA 권한으로접속합니다. $ sqlplus /nolog SQL*Plus: Release Production on Thu Nov 29 15:44: (c) Copyright 2001 Oracle Corporation. All rights reserved. SQL> CONNECT / AS SYSDBA Connected. 2 SQL*Plus 에서다음질의를실행하여데이터베이스에접속되었는지확인하십시오. SQL> SELECT * FROM DUAL; D - X 3 독립형모드로 Oracle Enterprise Manager 를실행하십시오. - 시작 > 프로그램 > Oracle-OraHome90 > Enterprise Manager Console 로이동합니다. - Launch standalone 옵션을선택합니다. - OK 를선택합니다. Oracle9i Database Administration Fundamentals I 2-19

92 2: Oracle 4 Oracle Management Service를사용하여 Oracle Enterprise Manager를실행하십시오. - 오라클강의실전용다음네단계를수행하여오라클강의실을설정해야오라클강의를받을수있습니다. 1. 데스크톱에서 omsconfig 파일갱신아이콘을누릅니다. 강의에서사용할 Unix 서버이름을입력하십시오. 강사가제공한서버이름을대소문자를구분하여정확하게입력해야합니다. 2. MSDOS 창을엽니다. 3. 명령프롬프트에 oemctl start oms를입력한후, 다음메시지를기다립니다. "The Oracleoracle901_homeManagementServer service was started successfully." 4. MSDOS 창을닫습니다. - OEM Console을시작한다음 Login to the Oracle Management Server 옵션을선택합니다. 다음과같이로그인합니다. Administrator: sysman 주 : 대소문자를구분해야합니다. Password : oem_temp 주 : 대소문자를구분해야합니다. 프롬프트가표시되면암호를 oracle로변경하십시오. 주 : 대소문자를구해야합니다. Management Server: ( 강사제공 ) - OEM Console이열리면주메뉴에서다음으로이동합니다. Navigator > Discover Nodes. Discovery Wizard 대화상자가나타납니다. - Next를선택하여계속합니다. - 관리하려는노드의이름즉, 지정된데이터베이스서버호스트이름을입력합니다.( 강사제공 ) - Next를선택합니다. - 검색이완료되면 OK를선택합니다. 주 : 검색을실패하면강사에게알리십시오. - 이동트리에서 Database 폴더를확장합니다. - 강사가제공한지정된데이터베이스를두번누릅니다. ( 다음페이지에계속 ) Oracle9i Database Administration Fundamentals I 2-20

93 2: Oracle 4 Oracle Management Service를사용하여 Oracle Enterprise Manager를실행하십시오. ( 계속 ) - 다음접속정보를입력합니다. 사용자 : ( 강사제공 ) 암호 : ( 강사제공 ) 권한 : SYSDBA - 그런다음작업실행에필요한노드인증서를설정합니다. - 주메뉴에서 Configuration > Preferences로이동합니다. - Preferred Credentials 페이지를선택합니다. - 창하단으로이동하여지정된데이터베이스의항목을선택합니다. - 다음을입력합니다. Username: ( 강사제공 ) Password: ( 강사제공 ) Confirm Password ROle: SYSDBA - OK를선택합니다. 5 SQL*Plus Worksheet를시작하십시오. 다음으로이동하여 Oracle Enterprise Manager Console에서 SQL*Plus Worksheet를시작할수있습니다. - Tools > Database Applications > SQL*Plus Worksheet로이동합니다. 또한다음과같은방법으로 Windows NT 메뉴에서 SQL*Plus Worksheet를시작할수도있습니다. - 시작 > 프로그램 > Oracle-OraHome90 > Integrated Management Tools > SQLPlus Worksheet로이동합니다. 강사가지정한데이터베이스에직접접속합니다. 입력 : 사용자이름, 암호및서비스 SYSDBA 권한으로접속합니다. OK를누릅니다. 주 : SQL*Plus Worksheet 에서다른사용자로로그인할때마다서비스이름이접속문자열에포함되어야합니다. Oracle9i Database Administration Fundamentals I 2-21

94 Oracle9i Database Administration Fundamentals I 2-22

95 Oracle Copyright Oracle Corporation, All rights reserved.

96 ñ ñ ñ. ñ 3-2 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 3-2

97 Oracle SGA ß Java ó PMON SMON DBW0 LGWR CKPT spfiledb01.ora CONNECT / AS SYSDBA STARTUP 3-3 Copyright Oracle Corporation, All rights reserved. 인스턴스를시작하려면 Oracle 서버가초기화매개변수파일을읽어야합니다. Oracle9i Database Administration Fundamentals I 3-3

98 þ ññ. ñ ñ. Explicit: ñ. Implicit: Oracle ñ. ñ. ÿ ÿ ñ. PFILE - SPFILE Copyright Oracle Corporation, All rights reserved. 인스턴스를시작하려면 Oracle 서버가초기화매개변수파일을읽어야합니다. 다음두가지유형의초기화매개변수파일이있습니다. PFILE - 일반적으로 initsid.ora라고하는정적매개변수파일 SPFILE - 일반적으로 spfilesid.ora라고하는지속매개변수파일초기화매개변수파일내용 인스턴스매개변수목록 인스턴스와연관된데이터베이스의이름 SGA( 시스템글로벌영역 ) 의메모리구조에대한할당 채워진온라인리두로그파일로수행하는작업 제어파일의이름및위치 실행취소세그먼트정보 여러가지상황에서의성능을최적화하기위해한인스턴스에대해여러초기화매개변수파일이존재할수있습니다. Oracle9i Database Administration Fundamentals I 3-4

99 Oracle Enterprise Manager를사용하여초기화매개변수보기 OEM Console에서다음작업을수행합니다. 1. Databases > Instance > Configuration으로이동합니다. 2. General 페이지에서 All Initialization Parameters를선택합니다. Oracle9i Database Administration Fundamentals I 3-5

100 PFILE initsid.ora ñ. ÿ ñ. ú ñ. ñ ÿ ñ. ú ñ. $ORACLE_HOME/dbs ñ. 3-6 Copyright Oracle Corporation, All rights reserved. PFILE PFILE은표준운영체제편집기를사용하여유지관리할수있는텍스트파일입니다. 인스턴스를시작하는동안 PFILE은읽기전용파일입니다. 파일이수정되면인스턴스를종료한다음다시시작하여새매개변수값을적용해야합니다. PFILE은기본적으로 $ORACLE_HOME/dbs 디렉토리에있으며 initsid.ora라는이름이지정됩니다. Oracle9i Database Administration Fundamentals I 3-6

101 PFILE init.ora ÿ ñ. Oracle Universal Installer ñ. copy ñ. SID ñ. cp init.ora $ORACLE_HOME/dbs/initdba01.ora initsid.ora ñ. ñ. ññ ñ. 3-7 Copyright Oracle Corporation, All rights reserved. PFILE 설치하는동안 Universal Installer에서예제파일 init.ora를생성합니다. 이 init.ora 예제파일을사용하면인스턴스에맞는 initsid.ora를생성할수있습니다. initsid.ora 파일의매개변수를수정할때는텍스트편집기를사용합니다. Oracle9i Database Administration Fundamentals I 3-7

102 PFILE # Initialization Parameter File: initdba01.ora db_name = dba01 instance_name = dba01 control_files = ( home/dba01/oradata/u01/control01dba01.ctl, home/dba01/oradata/u02/control01dba02.ctl) db_block_size = 4096 db_cache_size = 4M shared_pool_size = java_pool_size = max_dump_file_size = background_dump_dest = /home/dba01/admin/bdump user_dump_dest = /home/dba01/admin/udump core_dump_dest = /home/dba01/admin/cdump undo_management = AUTO undo_tablespace = UNDOTBS Copyright Oracle Corporation, All rights reserved. PFILE "keyword=value" 형식으로값을지정합니다. Oracle 서버는각매개변수에대한기본값을가지며이값은운영체제에따라다를수있습니다. 매개변수를임의의순서로지정할수있지만예외인경우도있습니다. 주석행은 # 기호로시작합니다. 문자리터럴을포함하려면매개변수를큰따옴표로묶습니다. IFILE 키워드를사용하여추가파일을포함할수있습니다. 운영체제에서대소문자를구분하는경우파일이름에서도대소문자를구분합니다. 값이여러개있는경우괄호로묶고쉼표로구분합니다. 주 : 매개변수를알파벳순으로나열할것인지또는기능별로그룹화할것인지지정하는기준을개발하십시오. PFILE은인스턴스마다다르며반드시앞의예제와동일할필요는없습니다. Oracle9i Database Administration Fundamentals I 3-8

103 SPFILE spfilesid.ora ñ. Oracle ÿ ñ. ñ. ñ. ñ ñ ñ. Recovery Manager ñ. 3-9 Copyright Oracle Corporation, All rights reserved. SPFILE SPFILE 은 Oracle9i 에서새로추가된이진파일입니다. 이파일은수동으로수정할수없고항상서버측에상주해야하며파일이생성된이후에는 Oracle 서버에의해유지관리됩니다. SPFILE 을수동으로수정하면사용할수없게됩니다. SPFILE 은데이터베이스를종료하고시작할때변경사항을지속적으로유지합니다. 또한파일에기록된매개변수값을자체적으로튜닝할수있습니다. SPFILE 은서버측에상주하므로 RMAN 을사용하여초기화매개변수파일을백업할수있습니다. 기본적으로이파일은 $ORACLE_HOME/dbs 에있으며기본이름은 spfilesid.ora 형식으로지정됩니다. Oracle9i Database Administration Fundamentals I 3-9

104 SPFILE PFILE ÿ ñ. CREATE SPFILE = $ORACLE_HOME/dbs/spfileDBA01.ora FROM PFILE = $ORACLE_HOME/dbs/initDBA01.ora ; SPFILE-NAME: SPFILEñ ñ. PFILE-NAME:SPFILE PFILEñ ñ. ñ Copyright Oracle Corporation, All rights reserved. SPFILE SPFILE은 CREATE SPFILE 명령을사용하여 PFILE 파일에서생성됩니다. 이명령을실행하려면 SYSDBA 권한이있어야합니다. 이명령은인스턴스가시작되기전이나후에실행할수있습니다. SQL> CREATE SPFILE [='SPFILE-NAME'] 2 FROM PFILE[='PFILE-NAME'] 설명 : SPFILE-NAME: 생성할 SPFILE의이름입니다. PFILE-NAME: SPFILE을생성하기위해사용하는 PFILE의이름입니다. PFILE은서버측에서사용할수있어야합니다. SPFILE-NAME 및 PFILE-NAME이구문에포함되지않으면 Oracle은기본PFILE을사용하여시스템에서생성한이름으로 SPFILE을생성합니다. SQL> CREATE SPFILE FROM PFILE; Oracle9i Database Administration Fundamentals I 3-10

105 SPFILE ( ) SPFILE 엑스포트 : SPFILE의내용을 PFILE로엑스포트할수있습니다. SQL> CREATE PFILE FROM SPFILE; PFILE은서버측에서텍스트파일로생성됩니다. 이명령은인스턴스가시작되기전이나후에실행할수있습니다. 이렇게하면 SPFILE을보고다음을수행하여쉽게수정할수있습니다. SPFILE을 PFILE로엑스포트합니다. PFILE을편집합니다. 편집된 PFILE에서 SPFILE을다시생성합니다. SPFILE을 PFILE로엑스포트하여지속매개변수파일의백업을생성할수도있습니다. 주 : Oracle9i에서는 RMAN이지속매개변수파일을백업할수도있습니다. V$SPPARAMETER 위에서설명한대로여러옵션을사용하여 SPFILE 의매개변수설정을볼수있습니다. 그밖에 V$SPPARAMETER 를사용하여 SPFILE 의내용을표시하거나볼수도있습니다. Oracle9i Database Administration Fundamentals I 3-11

106 SPFILE Oracle Enterprise Manager를사용하여 SPFILE 생성 OEM Console에서다음작업을수행합니다. 1. 주메뉴에서 Object > Create spfile을선택합니다. Oracle Enterprise Manager를사용하여 SPFILE 엑스포트 OEM Console에서다음작업을수행합니다. 1. 주메뉴에서 Object > Create pfile을선택합니다. Oracle9i Database Administration Fundamentals I 3-12

107 SPFILE *.background_dump_dest= /home/dba01/admin/bdump *.compatible='9.0.0' *.control_files='/home/dba01/oradata/u01/ctrl01.ctl *.core_dump_dest= /home/dba01/admin/cdump *.db_block_size=4096 *.db_name='dba01 *.db_domain= world *.global_names=true *.instance_name='dba01' *.remote_login_passwordfile='exclusive *.java_pool_size= *.shared_pool_size= *.undo_management='auto' *.undo_tablespace='undotbs' Copyright Oracle Corporation, All rights reserved. SPFILE PFILE에서매개변수설정과동일한행에지정된주석은 SPFILE에서유지관리되며다른모든주석은무시됩니다. SPFILE의텍스트는 UNIX에서쉽게볼수있지만SPFILE은이진형식이고 SPFILE을수동으로수정하면사용할수없게됩니다. SPFILE의특정내용을보고일부를수정하려면 SPFILE을 PFILE로엑스포트하십시오. Oracle9i Database Administration Fundamentals I 3-13

108 STARTUP ú spfilesid.ora SPFILE initsid.ora PFILE ÿ PFILE ñ ÿ ñ. STARTUP PFILE = $ORACLE_HOME/dbs/initDBA1.ora PFILE SPFILE ñ SPFILE = /database/startup/spfiledba1.ora 3-14 Copyright Oracle Corporation, All rights reserved. STARTUP ú 우선순위 : STARTUP 명령이사용되면서버측의 spfilesid.ora가인스턴스를시작합니다. spfilesid.ora를찾을수없으면서버측의기본 SPFILE이인스턴스를시작합니다. 기본 SPFILE을찾을수없으면서버측의 initsid.ora가인스턴스를시작합니다. 지정된 PFILE은기본SPFILE보다우선적으로사용되어인스턴스를시작할수있습니다. PFILE에는 SPFILE 사용을지정하는정의가선택적으로포함될수있습니다. 기본위치가아닌위치에서 SPFILE로인스턴스를시작하려면이방법을사용해야합니다. 기본위치가아닌위치에서 SPFILE로데이터베이스를시작하려면 PFILE 내에 SPFILE=< 전체경로및파일이름 > 항목이있어야합니다. 예제 : SPFILE=$HOME/ADMIN/PFILE/$ORACLE_SID.ora. Oracle9i Database Administration Fundamentals I 3-14

109 SPFILE ALTER SYSTEM ALTER SYSTEM SET undo_tablespace = 'UNDO2'; ALTER SYSTEM SET undo_tablespace = 'UNDO2' SCOPE=BOTH; ALTER SYSTEM RESET undo_suppress_errors SCOPE=BOTH SID='*'; 3-15 Copyright Oracle Corporation, All rights reserved. SPFILE ALTER SYSTEM SET 명령은인스턴스매개변수값을변경하는데사용됩니다. ALTER SYSTEM SET parameter_name = parameter_value [COMMENT 'text'] [SCOPE = MEMORY SPFILE BOTH] [SID= 'sid' '*'] 설명 parameter_name: 변경할매개변수의이름입니다. parameter_value: 매개변수가변경되는값입니다. COMMENT: 변경되는매개변수옆 SPFILE에추가되는주석입니다. SCOPE: 메모리, SPFILE 또는두영역모두에서변경되는지여부를결정합니다. MEMORY: 현재실행중인인스턴스에서만매개변수값을변경합니다. SPFILE: SPFILE에서만매개변수값을변경합니다. BOTH: 현재실행중인인스턴스및 SPFILE에서매개변수값을변경합니다. SID: 사용되는 SPFILE의 ORACLE_SID를지정합니다. 'sid': SPFILE을변경하는데사용되는특정 SID입니다. '*': 기본 SPFILE을사용합니다. Oracle9i Database Administration Fundamentals I 3-15

110 SPFILE ( ) 예제 : SQL> SHOW PARAMETERS undo_suppress_errors NAME TYPE VALUE undo_suppress_errors boolean FALSE SQL> ALTER SYSTEM SET undo_suppress_errors = TRUE 2 COMMENT = temporary testing SCOPE=BOTH 3 SID= DBA01 ; SQL> SHOW PARAMETERS undo_suppress_errors NAME TYPE VALUE undo_suppress_errors boolean TRUE ALTER SYSTEM RESET 명령은값을삭제하거나기본값으로되돌리는데사용됩니다. SQL> ALTER SYSTEM RESET parameter_name [SCOPE = MEMORY SPFILE BOTH] [SID= sid * ] 예제 : SQL> ALTER SYSTEM RESET undo_suppress_errors 2 SCOPE=BOTH SID= dba01 ; 다음방법을사용하여 SPFILE에서매개변수를제거할수있습니다. ALTER SYSTEM SET을사용하여삭제를시뮬레이트하도록매개변수를다시기본값으로설정합니다. CREATE SPFILE FROM PFILE을사용하여 SPFILE을다시생성합니다. ALTER SYSTEM RESET을사용하여 SPFILE에서매개변수를삭제합니다. Oracle9i Database Administration Fundamentals I 3-16

111 SPFILE ( ) Oracle Enterprise Manager를사용하여 SPFILE 구성수정 OEM Console에서다음작업을수행합니다. 1. Databases > Instance로이동합니다. 2. Configuration을누릅니다. 3. General 페이지에서 All Initialization Parameters를누릅니다. 4. 값열에서매개변수를수정합니다. 5. OK를누릅니다. Oracle9i Database Administration Fundamentals I 3-17

112 매개변수 BACKGROUND_DUMP_DEST COMPATIBLE CONTROL_FILES DB_CACHE_SIZE DB_NAME SHARED_POOL_SIZE USER_DUMP_DEST 설명 LGWR, DBWn 등의백그라운드프로세스추적파일이기록되어있는위치며경고로그파일의위치이기도합니다. 이인스턴스와호환성있는서버의버전입니다. 제어파일이름 표준블록크기의버퍼를위한캐시크기를지정합니다. 여덟문자이하의데이터베이스식별자로새데이터베이스생성시필요한유일한매개변수입니다. 공유풀의바이트크기 사용자프로세스대신사용자디버그추적파일이생성되는위치 주 : 기본값은 Oracle Server 버전에따라다릅니다. þ 매개변수 IFILE LOG_BUFFER MAX_DUMP_FILE_SIZE PROCESSES SQL_TRACE TIMED_STATISTICS 설명 현재매개변수파일안에포함된다른매개변수파일이름으로세단계까지중첩할수있습니다. SGA 에서리두로그버퍼에할당된바이트수 운영체제블록의개수로지정된추적파일의최대크기 인스턴스에동시에접속할수있는운영체제프로세스의최대개수 모든사용자세션에대한 SQL 추적기능을활성화또는비활성화합니다. 추적파일및모니터화면에서타이밍을활성화또는비활성화합니다. Oracle9i Database Administration Fundamentals I 3-18

113 NOMOUNT STARTUP OPEN MOUNT SHUTDOWN NOMOUNT SHUTDOWN 3-19 Copyright Oracle Corporation, All rights reserved. 데이터베이스를시작할때시작할상태를선택합니다. 다음시나리오에서는인스턴스를시작하는단계를설명합니다. 인스턴스시작 NOMOUNT2= 인스턴스는데이터베이스생성또는제어파일의재생성동안에만 NOMOUNT 단계에서시작됩니다. 인스턴스시작에는다음작업이포함됩니다. 다음순서로 $ORACLE_HOME/dbs에서초기화파일읽기 먼저 spfilesid.ora를읽습니다. 찾을수없으면 spfile.ora를읽습니다. 찾을수없으면 initsid.ora를읽습니다. STARTUP으로지정한 PFILE 매개변수는기본동작보다우선적으로적용됩니다. SGA 할당 백그라운드프로세스시작 alertsid.log 파일및추적파일열기데이터베이스이름은초기화매개변수파일또는 STARTUP 명령의 DB_NAME 매개변수를사용하여지정해야합니다. Oracle9i Database Administration Fundamentals I 3-19

114 MOUNT STARTUP OPEN MOUNT NOMOUNT SHUTDOWN SHUTDOWN 3-20 Copyright Oracle Corporation, All rights reserved. 데이터베이스마운트 MOUNT2= 특정관리작업을수행하려면인스턴스를시작하고데이터베이스를마운트만하고열지마십시오. 예를들어, 다음작업동안에는데이터베이스를마운트만하고열면안됩니다. 데이터파일이름을바꾸는동안 리두로그아카이브옵션을활성화하고비활성화하는동안 전체데이터베이스복구작업동안데이터베이스마운트에는다음작업이포함됩니다. 데이터베이스를이전에시작한인스턴스와연관시키기 매개변수파일에지정된제어파일찾기및열기 데이터파일과리두로그파일의이름및상태를알기위해제어파일읽기 ( 그러나이때데이터파일과온라인리두로그파일의존재여부를확인하지않습니다.) Oracle9i Database Administration Fundamentals I 3-20

115 OPEN STARTUP MOUNT OPEN ó NOMOUNT SHUTDOWN SHUTDOWN 3-21 Copyright Oracle Corporation, All rights reserved. 데이터베이스열기 (OPEN): 정상적인데이터베이스운영이란인스턴스가시작되고데이터베이스가마운트되고열리는것을말하며적합한사용자가데이터베이스에접속하여일반적인데이터액세스작업을수행할수있습니다. 데이터베이스열기에는다음작업이포함됩니다. 온라인데이터파일열기 온라인리두로그파일열기데이터베이스를열때데이터파일이나온라인리두로그파일이없으면 Oracle 서버는오류를반환합니다. 최종단계에서 Oracle 서버는모든데이터파일및온라인리두로그파일을열수있는지확인하고데이터베이스의일관성을검사합니다. 필요한경우시스템모니터 (SMON) 백그라운드프로세스는인스턴스복구를시작합니다. Oracle9i Database Administration Fundamentals I 3-21

116 STARTUP ñ. STARTUP STARTUP PFILE=$ORACLE_HOME/dbs/initdb01.ora 3-22 Copyright Oracle Corporation, All rights reserved. STARTUP 인스턴스를시작하려면다음명령을사용합니다. STARTUP [FORCE] [RESTRICT] [PFILE=filename] [OPEN [RECOVER][database] MOUNT NOMOUNT] ( 주 : 위구문은완전한구문이아닙니다.) 설명 : OPEN: 사용자가데이터베이스를액세스할수있게합니다. MOUNT: 특정 DBA 작업을위해데이터베이스를마운트하지만사용자가데이터베이스를액세스하는것은허용하지않습니다. NOMOUNT: SGA를생성하고백그라운드프로세스를시작하지만데이터베이스를액세스하는것은허용하지않습니다. PFILE=parfile: 인스턴스를구성하는데비기본매개변수파일의사용을허용합니다. Oracle9i Database Administration Fundamentals I 3-22

117 ( ) FORCE: 정상시작전에실행중인인스턴스를중지합니다. RESTRICT: RESTRICTED SESSION 권한을가진사용자만데이터베이스를액세스할수있도록합니다. RECOVER: 데이터베이스를시작할때매체복구를시작합니다. 데이터베이스자동시작 : UNIX의경우 : 데이터베이스자동시작및종료는 /var/opt/oracle 디렉토리의 oratab 파일같은특수운영체제파일의항목으로제어할수있습니다. 주 : 자세한내용은사용자운영체제의설치안내서를참조하십시오. 문제해결 : STARTUP 명령을실행하는동안오류가발생하면 STARTUP 명령을다시실행하기전에 SHUTDOWN 명령을실행해야합니다. 주 : STARTUP 및 SHUTDOWN 명령은 SQL 명령이아닌 SQL*Plus 명령입니다. Oracle9i Database Administration Fundamentals I 3-23

118 Shutdown ( ) Oracle Enterprise Manager를사용하여데이터베이스시작 OEM Console에서다음작업을수행합니다. 1. Databases > Instance로이동합니다. 2. Configuration을누릅니다. 3. General 탭에서 Open 옵션을선택합니다. 4. Apply를누릅니다. 주 : 데이터베이스를시작하려면 SYSDBA 권한으로접속되어있어야합니다. Oracle9i Database Administration Fundamentals I 3-24

119 ALTER DATABASE NOMOUNT MOUNT ñ. ALTER DATABASE db01 MOUNT; ñ. ALTER DATABASE db01 OPEN READ ONLY; 3-25 Copyright Oracle Corporation, All rights reserved. ALTER DATABASE NOMOUNT 단계에서 MOUNT 단계로또는 MOUNT 단계에서 OPEN 단계로데이터베이스를이동하려면 ALTER DATABASE 명령을사용합니다. ALTER DATABASE { MOUNT OPEN } 사용자트랜잭션의데이터수정을방지하기위해데이터베이스를읽기전용모드로열수있습니다. 인스턴스를시작하려면다음명령을사용합니다. ALTER DATABASE OPEN [READ WRITE READ ONLY] 설명 : READ WRITE: 사용자가리두로그를생성할수있도록데이터베이스를읽기-쓰기모드로엽니다. READ ONLY: 사용자를읽기전용트랜잭션에제한하여리두로그정보를생성하지못하게합니다. Oracle9i Database Administration Fundamentals I 3-25

120 STARTUP ó STARTUP RESTRICT ALTER SYSTEM ALTER SYSTEM ENABLE RESTRICTED SESSION; 3-26 Copyright Oracle Corporation, All rights reserved. RESTRICTED SESSION은구조관리또는데이터베이스임포트및엑스포트와같은작업을수행할때유용합니다. 데이터베이스를제한모드에서시작하여 RESTRICTED SESSION 권한을가진사용자만데이터베이스를사용하도록할수있습니다. 또한 ALTER SYSTEM SQL 명령을사용하여데이터베이스를제한모드로둘수있습니다. ALTER SYSTEM [ {ENABLE DISABLE} RESTRICTED SESSION ] 설명 : ENABLE RESTRICTED SESSION: 이후부터 RESTRICTED SESSION 권한을가진사용자만로그인할수있게합니다. DISABLE RESTRICTED SESSION: 권한이없는사용자도로그인할수있도록 RESTRICTED SESSION을비활성화합니다. 세션종료 : 인스턴스를제한모드로설정한다음관리작업을수행하기전에다음을수행하여모든현재사용자세션을삭제할수있습니다. ALTER SYSTEM KILL SESSION 'integer1,integer2' 설명 : integer1: V$SESSION 뷰에서 SID 열값 integer2: V$SESSION 뷰에서 SERIAL# 열값 Oracle9i Database Administration Fundamentals I 3-26

121 ( ) 주 : 세션 ID 및일련번호는세션을고유하게식별하는데사용되며이것은사용자가로그오프하고새세션이동일한세션 ID를사용하더라도 ALTER SYSTEM KILL SESSION 명령이올바른세션에적용됨을보장합니다. 세션종료효과 : ALTER SYSTEM KILL SESSION 명령은백그라운드프로세스 PMON이실행시다음단계를수행하도록합니다. 사용자의현재트랜잭션을롤백합니다. 현재보유한모든테이블또는행잠금을해제합니다. 현재사용자가예약한모든자원을사용가능하게합니다. Oracle9i Database Administration Fundamentals I 3-27

122 Shutdown ( ) Oracle Enterprise Manager를사용하여제한모드로데이터베이스열기 OEM Console에서다음작업을수행합니다. 1. Instance > Configuration으로이동합니다. 2. General 페이지를선택합니다. 3. Instance State에서 Shutdown 옵션을선택합니다. 4. Apply를선택합니다. 5. Shutdown Options 대화상자에서 Immediate 옵션을선택합니다. 6. OK를선택합니다. 7. 프로세스가완료되면 Close를선택합니다. 8. Instance State에서 Open 옵션을선택합니다. 9. OK를선택합니다. 10. Startup Options 대화상자가나타나면 Restrict access to database 옵션을선택합니다. 11. OK를선택합니다. 12. 프로세스가완료되면 Close를누릅니다. 주 : 데이터베이스에 SYSDBA 권한으로접속되어있어야합니다. Oracle9i Database Administration Fundamentals I 3-28

123 STARTUP MOUNT ALTER DATABASE OPEN READ ONLY; ñ ñ. þ ð 3-29 Copyright Oracle Corporation, All rights reserved. 데이터베이스가이미읽기-쓰기모드로열려있지않으면모든데이터베이스는읽기전용으로열릴수있습니다. 이러한기능은운용중인데이터베이스에서질의처리를오프로드하는대기데이터베이스에특히유용합니다. 예를들어, 디스크정렬을하는경우처럼질의가임시테이블스페이스를사용할필요가있는경우현재사용자는기본임시테이블스페이스로지정된지역적으로관리되는테이블스페이스를가지고있어야하며그렇지않으면질의는실패합니다. SYS 사용자의경우지역적으로관리되는테이블스페이스가필요합니다. 주 : 지역적으로관리되는테이블스페이스에대해서는뒤에나오는단원에서설명합니다. 읽기전용모드는리두데이터를생성하지않는데이터베이스복구또는데이터베이스상태변경작업을제한하지않습니다. 예를들어, 읽기전용모드에서다음작업을수행할수있습니다. 데이터파일을오프라인이나온라인으로설정할수있습니다. 오프라인데이터파일및테이블스페이스의복구를수행할수있습니다. 제어파일, 운영체제감사트레일, 추적파일및경고로그파일과같은다른파일에대한디스크쓰기는읽기전용모드에서계속수행할수있습니다. Oracle9i Database Administration Fundamentals I 3-29

124 Shutdown ( ) Oracle Enterprise Manager를사용하여읽기전용모드로데이터베이스시작 OEM Console에서다음작업을수행합니다. 1. Instance > Configuration으로이동합니다. 2. General 페이지를선택합니다. 3. Instance State에서 Shutdown 옵션을선택합니다. 4. Apply를선택합니다. 5. Shutdown Options 대화상자가나타나면 Immediate 옵션을선택합니다. 6. OK를선택합니다. 7. 프로세스가완료되면 Close를선택합니다. 8. Instance State에서 Open 옵션을선택합니다. 9. OK를선택합니다. 10. Startup Options 대화상자에서 Read Only Mode 옵션을선택합니다. 11. OK를선택합니다. 12. 프로세스가완료되면 Close를누릅니다. 주 : 데이터베이스에 SYSDBA 권한으로접속되어있어야합니다. Oracle9i Database Administration Fundamentals I 3-30

125 A I T N ó ó ñ : A = ABORT I = IMMEDIATE T = TRANSACTIONAL N = NORMAL 3-31 Copyright Oracle Corporation, All rights reserved. 데이터베이스를종료하여모든물리적구조의운영체제오프라인백업을수행하고다시시작할때수정된정적초기화매개변수가적용되게합니다. 인스턴스를종료하려면 SYSOPER 또는 SYSDBA로접속하고다음명령을사용합니다. SHUTDOWN [NORMAL TRANSACTIONAL IMMEDIATE ABORT ] Oracle9i Database Administration Fundamentals I 3-31

126 : þ Shutdown Normal, Transactional Immediate ú : þ ( ) 3-32 Copyright Oracle Corporation, All rights reserved. Shutdown Normal 모드로종료 : 기본종료모드는 Normal 모드입니다. Normal 모드로데이터베이스종료는다음조건을만족시키며진행됩니다. 새접속이허용되지않습니다. 종료하기전에 Oracle 서버가모든사용자의접속해제를기다립니다. 데이터베이스및리두버퍼가디스크에기록됩니다. 백그라운드프로세스가종료되고 SGA가메모리에서제거됩니다. 인스턴스를종료하기전에 Oracle은데이터베이스를닫고마운트해제합니다. 이후시작시인스턴스를복구할필요가없습니다. Transactional 모드로종료 : Transactional 모드로종료는클라이언트의작업손실을방지합니다. Transactional 모드로데이터베이스종료는다음조건을만족시키며진행됩니다. 모든클라이언트가특정인스턴스에서새트랜잭션을시작할수없습니다. 클라이언트는진행중인트랜잭션을마치면접속을해제합니다. 모든트랜잭션이끝나는즉시종료됩니다. 이후시작시인스턴스를복구할필요가없습니다. Oracle9i Database Administration Fundamentals I 3-32

127 Shutdown ( ) Immediate 모드로종료 : Immediate 모드로데이터베이스종료는다음조건을만족시키며진행됩니다. 현재 Oracle 서버가처리하고있는 SQL 문이완료되지않습니다. Oracle 서버는현재데이터베이스에접속하고있는사용자의접속이해제될때까지기다리지않습니다. Oracle은활성트랜잭션을롤백하고모든사용자의접속을해제합니다. 인스턴스를종료하기전에 Oracle은데이터베이스를닫고마운트해제합니다. 이후시작시인스턴스를복구할필요가없습니다. Oracle9i Database Administration Fundamentals I 3-33

128 Shutdown : ÿ þ þ þ Abort,, ú : ñ þ (ø ) 3-34 Copyright Oracle Corporation, All rights reserved. Shutdown Abort 모드로종료 : Normal 및 Immediate 종료옵션이작동하지않는경우현재데이터베이스인스턴스를 Abort 모드로종료할수있습니다. Abort 모드로인스턴스종료는다음조건을만족시키며진행됩니다. 현재 Oracle 서버가처리하고있는 SQL 문이즉시종료됩니다. Oracle은현재데이터베이스에접속하고있는사용자의접속이해제될때까지기다리지않습니다. 데이터베이스및리두버퍼가디스크에기록되지않습니다. 커밋되지않은트랜잭션은롤백되지않습니다. 인스턴스는파일을닫지않은채종료됩니다. 데이터베이스가닫히지않거나마운트해제되지않습니다. 이후시작시자동으로인스턴스를복구해야합니다. 주 : 일관성없는상태의데이터베이스는백업하지않는것이좋습니다. Oracle9i Database Administration Fundamentals I 3-34

129 Shutdown ( ) Oracle Enterprise Manager를사용하여데이터베이스종료 OEM Console에서다음작업을수행합니다. 1. Databases > Instance로이동합니다. 2. Configuration을누릅니다. 3. General 탭에서 Open 옵션을선택합니다. 4. Apply를누릅니다. 주 : 데이터베이스를종료하려면 SYSDBA 권한으로접속되어있어야합니다. Oracle9i Database Administration Fundamentals I 3-35

130 ñ ñ ó ñ. ÿ ñ. ÿ ÿ ñ. ñ ñ ñ. alertsid.log 3-36 Copyright Oracle Corporation, All rights reserved. ñ 진단파일을사용하면데이터베이스작업에대한정보를캡처할수있으며인스턴스관리에유용합니다. 진단파일에는여러유형이있습니다. 생성되는진단파일의유형은발생한문제또는배포해야하는정보에따라다릅니다. alertsid.log 파일 : 데이터베이스의일상적인운영에필요한정보입니다. 백그라운드추적파일 : SMON, PMON, DBWn와같은백그라운드프로세스를실패하는경우필요한주요정보입니다. 사용자추적파일 : 치명적인사용자오류에대한주요정보또는사용자강제추적파일입니다. Oracle9i Database Administration Fundamentals I 3-36

131 alertsid.log : ñ ÿ ñ. DBA ñ. BACKGROUND_DUMP_DEST ñ Copyright Oracle Corporation, All rights reserved. 각 Oracle 인스턴스에는경고로그파일이있으며없는경우에는인스턴스가시작될때생성됩니다. 데이터베이스작업이진행됨에따라로그파일이늘어나므로직접관리합니다. 일상적인운용또는오류를진단하는경우경고로그파일을먼저확인해야합니다. 또한경고로그파일에는포인터가포함되어있으므로파일을추적하여보다자세한정보를확인할수있습니다. 경고로그파일은다음정보를기록합니다. 데이터베이스를시작하고종료한시기 모든비기본초기화매개변수의목록 백그라운드프로세스시작 인스턴스에서사용중인스레드 LGWR가기록하는로그시퀀스번호 로그스위치에대한정보 테이블스페이스및실행취소세그먼트생성 실행된명령문변경 ORA-600과같은오류메시지및확장오류에대한정보 Oracle9i Database Administration Fundamentals I 3-37

132 ( ) alert_sid.log 위치는초기화매개변수 BACKGROUND_DUMP_DEST에의해정의됩니다. Oracle9i Database Administration Fundamentals I 3-38

133 þ ñ ÿ ñ. BACKGROUND_DUMP_DEST ÿ ñ Copyright Oracle Corporation, All rights reserved. 백그라운드추적파일은 SMON, PMON, DBWn와같은백그라운드프로세스에서발생한오류를기록하는데사용됩니다. 이러한파일은오류를추적파일에기록해야하는경우에만존재하며문제를진단하고해결하는데사용됩니다. 백그라운드추적파일이처음생성되는경우데이터서버의버전번호및운영체제를나타내는헤더정보가포함됩니다. 사용자추적파일에대한이름지정규칙 : sid_processname_pid.trc (db01_lgwr_23845.trc). 파일의위치는초기화매개변수 BACKGROUND_DUMP_DEST에의해정의됩니다. Oracle9i Database Administration Fundamentals I 3-39

134 ÿ ÿ SQL ó ÿ ñ. USER_DUMP_DEST ÿ ñ. MAX_DUMP_FILE_SIZE ÿ ñ Copyright Oracle Corporation, All rights reserved. 사용자추적파일에는 SQL 튜닝에유용한추적된 SQL 문의통계와사용자오류메시지가포함됩니다. 사용자추적파일에대한이름지정규칙 : sid_ora_pid.trc(db01_ora_23845.trc) 파일의위치는초기화매개변수 USER_DUMP_DEST에의해정의됩니다. Oracle9i Database Administration Fundamentals I 3-40

135 : ALTER SESSION : ALTER SESSION SET SQL_TRACE = TRUE DBMS : dbms_system.set_sql_trace_in_session : SQL_TRACE = TRUE 3-41 Copyright Oracle Corporation, All rights reserved. 주 : 인스턴스레벨에서 SQL_TRACE=TRUE를설정하면많은양의추적데이터가생성됩니다. 이옵션을사용할때는주의해야합니다. 사용자추적은 Oracle9i SQL Statement Tuning( 한글판 ) 과정에서자세하게다룹니다. Oracle9i Database Administration Fundamentals I 3-41

136 Oracle Enterprise Manager를사용하여사용자추적활성화또는비활성화 OEM Console에서다음작업을수행합니다. 1. Databases > Instance > Configuration으로이동합니다. 2. General 페이지에서 All Initialization Parameters를선택합니다. 3. SQL_TRACE = TRUE 매개변수를설정합니다. 4. OK를선택합니다. Oracle9i Database Administration Fundamentals I 3-42

137 ñ ñ ó ñ. ñ 3-43 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 3-43

138 3 ñ ññ. SPFILE ñ 3-44 Copyright Oracle Corporation, All rights reserved. 3 주 : SQL*Plus를사용하거나 OEM과 SQL*Plus Worksheet를사용하여연습을수행할수있습니다. Oracle9i Database Administration Fundamentals I 3-44

139 3: Oracle 1 SYS 사용자로데이터베이스에접속하고데이터베이스를종료하십시오. 2 데이터베이스가종료되면 PFILE 에서 SPFILE을생성하십시오. SPFILE 파일을 spfilesid.ora라는파일이름형식으로 $HOME/ADMIN/PFILE 디렉토리에넣습니다. SID 대신해당인스턴스이름 을사용하십시오. $HOME/ADMIN/PFILE에있는 PFILE에서 SPFILE을 생성하십시오. 3 운영체제에서 SPFILE을보십시오. 4 SYS 사용자로접속하고 SPFILE을사용하여데이터베이스를시작하십시오. 5 a 데이터베이스를종료하고읽기전용모드로여십시오. b 암호가 HR인사용자 HR로접속하여 REGIONS 테이블에 INSERT INTO regions VALUES (5, Mars ); 행을삽입하십시오. 결과는? c 데이터베이스를읽기 / 쓰기모드로되돌리십시오. 6 a 암호가 HR인사용자 HR로접속하여 REGIONS 테이블에다음행을삽입합니다. 이때커밋하거나종료하지마십시오. INSERT INTO regions VALUES ( 5, Mars ); b 새로운텔넷세션에서 SQL*Plus를시작하십시오. SYS 사용자가 SYSDBA 권한으로접속하고 Transactional 모드로종료하십시오. c HR 세션에서삽입을롤백하고종료하십시오. HR 세션에어떤결과가발생했습니까? SYS 세션에어떤결과가발생했습니까? 7 a SYS 사용자로데이터베이스를시작하십시오. b HR 사용자로다른세션을시작하십시오. 주 : 두개의SQL*Plus 세션을연상태로, 하나는 SYS 사용자로, 다른하나는 HR 사용자로유지하십시오. c SYS 사용자로제한된세션을활성화하십시오. d HR 사용자로 REGIONS 테이블에서 SELECT 문을수행합니다. SELECT 문이성공했습니까? 세션을종료한다음 HR 사용자로다시접속하십시오. 결과는? e SYS 사용자로제한된세션을비활성화하십시오. Oracle9i Database Administration Fundamentals I 3-45

140 Oracle9i Database Administration Fundamentals I 3-46

141 Copyright Oracle Corporation, All rights reserved.

142 ñ ñ ñ. Oracle Database Configuration Assistant ú Oracle Managed Files 4-2 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 4-2

143 ñ ñ. ó Oracle Data Migration Assistant ÿ 4-3 Copyright Oracle Corporation, All rights reserved. 데이터베이스시스템구성및구현의첫단계는데이터베이스계획을수립하는것입니다. 먼저데이터베이스의용도를정의하십시오. 이렇게하면업무상의필요즉, 데이터웨어하우징, 온라인트랜잭션고속처리또는일반적인목적에따라생성해야할데이터베이스유형을결정할수있습니다. 데이터베이스의용도와유형을결정한다음데이터파일, 제어파일및리두로그파일의구성방법과저장방법등사용될데이터베이스의구조를구성해야합니다. Oracle의 Optimal Flexible Architecture를사용하면데이터베이스파일구조및위치를구성하는데도움이됩니다. 구조를정의한후데이터베이스및새데이터베이스시스템식별이름을선택해야합니다. 데이터베이스생성은여러운영체제파일을준비하는작업이며데이터베이스에서사용되는데이터파일수에관계없이한번만수행하면됩니다. 이전버전의 Oracle 에서이전하는동안완전히새로운데이터베이스가필요한경우만데이터베이스를생성해야합니다. 그렇지않은경우에는이전유틸리티를사용할수있습니다. Oracle Data Migration Assistant 는현재데이터베이스시스템의이전에사용하는툴입니다. Oracle9i Database Administration Fundamentals I 4-3

144 OFA(Optimal Flexible Architecture) ñ. OFA ñ ÿ ñ. ÿ ñ. ñ ú ñ ñ. ñ ó ñ. 4-4 Copyright Oracle Corporation, All rights reserved. OFA(Optimal Flexible Architecture) 지원되는모든플랫폼에서의설치및구성은 OFA(Optimal Flexible Architecture) 를준수합니다. OFA는유형및그사용방법에따라데이터베이스파일을구성합니다. 이진파일, 제어파일, 로그파일및관리파일은여러디스크에분산될수있습니다. 일관성있는이름지정규칙을사용하면다음과같은이점이있습니다. 데이터베이스파일을다른파일과쉽게구분할수있습니다. 제어파일, 리두로그파일및데이터파일을쉽게식별할수있습니다. 파일을다른디스크또는디렉토리에분산하여동일한시스템에서여러 Oracle 홈을쉽게관리할수있습니다. 별도의디렉토리또는디스크에상주할수있는데이터파일, 이진파일및관리파일에대한디스크경합을줄여성능을향상시킬수있습니다. Oracle9i Database Administration Fundamentals I 4-4

145 Oracle oracle_base /product /release_number /bin /dbs /rdbms /sqlplus /admin /inst_name /pfile oradata/ db01/ system01.dbf control01.ctl redo0101.log... db02/ system01.dbf control01.ctl redo0101.log Copyright Oracle Corporation, All rights reserved. Oracle 위의디렉토리트리는 OFA 호환데이터베이스의예입니다. Optimal Flexible Architecture: 데이터베이스의설치및생성중에고려해야하는또다른중요한문제는기존데이터베이스에데이터를추가하고, 사용자를추가하고, 새데이터베이스를생성하고, 하드웨어를추가하고, 충분한수의드라이브에 I/O( 입 / 출력 ) 로드를충분히분산하여데이터베이스의성장을쉽게관리할수있도록파일시스템을구성하는것입니다. Oracle9i Database Administration Fundamentals I 4-5

146 ñ ñ. ñ þ : ÿ ó 4-6 Copyright Oracle Corporation, All rights reserved. 데이터베이스를생성하려면 SYSDBA 권한이필요합니다. 이권한은운영체제인증또는암호파일인증을통해부여됩니다. 데이터베이스를생성하기전에 SGA, Oracle 실행파일및프로세스를위한메모리가충분한지확인하십시오. 운영체제설치및관리설명서를참조하십시오. 온라인리두로그파일, 제어파일, 데이터파일등을포함한데이터베이스를저장할디스크공간을계산하십시오. Oracle9i Database Administration Fundamentals I 4-6

147 OS? OS 4-7 Copyright Oracle Corporation, All rights reserved. 데이터베이스가상주하는동일시스템에서지역적으로데이터베이스를관리할지또는단일원격클라이언트에서여러데이터베이스서버를관리할지여부에따라운영체제인증이나암호파일인증을선택하여데이터베이스관리자를인증할수있습니다. 주 : 운영체제인증에대한내용은운영체제별설명서를참조하십시오. Oracle9i Database Administration Fundamentals I 4-7

148 ñ. $ orapwd file=$oracle_home/dbs/orapwu15 password=admin entries=5 REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE ñ. ñ. òñ. GRANT SYSDBA TO HR; 4-8 Copyright Oracle Corporation, All rights reserved. Oracle은암호파일을생성하는암호유틸리티인 orapwd를제공합니다. SYSDBA 권한을사용하여접속하는경우사용자이름과연관된스키마가아닌 SYS 스키마로접속하게됩니다. SYSOPER의경우PUBLIC 스키마에접속하게됩니다. 암호파일을사용한데이터베이스액세스는권한이있는사용자가실행한특정 GRANT 명령에의해제공됩니다. 주 : 권한부여에대한자세한내용은 " 권한관리 " 단원을참조하십시오. Oracle9i Database Administration Fundamentals I 4-8

149 ( ) 암호파일사용 : 1. 암호유틸리티 orapwd를사용하여암호파일을생성합니다. orapwd file=filename password=password entries=max_users 설명 : filename: 암호파일이름 ( 필수 ) password: SYSOPER 및 SYSDBA의암호 ( 필수 ) entries: SYSDBA 또는 SYSOPER로접속할수있는최대구분사용자수. 이숫자를초과하면새암호파일을생성해야합니다. 큰숫자를사용하는것이좋으며등호 (=) 앞뒤에는공백이없어야합니다. 예 : orapwd file=$oracle_home/dbs/orapwu15 password=admin entries=5 설명 : filename: $ORACLE_HOME/dbs/orapwU15 password: admin entries: 5 2. REMOTE_LOGIN_PASSWORDFILE 매개변수를 EXCLUSIVE로설정합니다. 설명 : EXCLUSIVE 하나의인스턴스만암호파일을사용할수있으며암호파일에 SYS가아닌다른이름이포함되었음을나타냅니다. EXCLUSIVE 암호파일을사용하면개별사용자에게 SYSDBA 또는 SYSOPER 권한을부여할수있습니다. 3. 위에서생성한암호파일을사용하여데이터베이스에접속합니다. CONNECT sys/admin AS SYSDBA 암호파일위치 : UNIX: $ORACLE_HOME/dbs NT: %ORACLE_HOME%/database 암호파일유지관리 : 운영체제명령을사용하여기존암호파일을삭제하고암호유틸리티를사용하여새암호파일을생성합니다. Oracle9i Database Administration Fundamentals I 4-9

150 ñ ñ. Oracle Universal Installer Oracle Database Configuration Assistant Java Oracle Universal Installer CREATE DATABASE 4-10 Copyright Oracle Corporation, All rights reserved. 데이터베이스는 Oracle Universal Installer를사용하여 Oracle9i 설치중자동으로생성하거나, DBCA(Oracle Database Configuration Assistant) 를사용하거나, CREATE DATABASE 명령을통해 SQL 스크립트를작성하여생성할수있습니다. Database Configuration Assistant는 Oracle Universal Installer와상호작용하거나독립적으로사용될수있으며데이터베이스를쉽게생성할수있는그래픽사용자인터페이스입니다. DBCA는 Java 기반이며 Java 엔진이있는플랫폼에서실행할수있습니다. Oracle Server를설치하는동안 Oracle Universal Installer에의해DBCA가실행되고자동으로시작데이터베이스를생성할수있습니다. DBCA를사용하거나사용하지않을수있으며시작데이터베이스도선택적으로생성할수있습니다. 또한나중에 DBCA를독립형응용프로그램으로실행하여데이터베이스를생성할수도있습니다. 이전버전의 Oracle 소프트웨어를사용하는경우기존데이터베이스를이전하거나업그레이드할수도있습니다. Oracle9i Database Administration Fundamentals I 4-10

151 ñ ñ. ORACLE_BASE ORACLE_HOME ORACLE_SID ORA_NLS33 PATH LD_LIBRARY_PATH 4-11 Copyright Oracle Corporation, All rights reserved. 데이터베이스를수동으로또는 Database Configuration Assistant로생성하기전에운영체제환경을제대로구성해야합니다. ORACLE_BASE: Oracle 소프트웨어의최상위디렉토리를지정합니다. 예 : /u01/app/oracle ORACLE_HOME: Oracle 소프트웨어를설치할디렉토리를지정합니다. OFA 권장값은 $ORACLE_BASE/product/release입니다. 예 : /u01/app/oracle/product/9.1.1 ORACLE_SID: 인스턴스의이름을지정하며이이름은동일한시스템에서실행중인 Oracle 인스턴스에대해고유해야합니다. ORA_NLS33: US7ASCII가아닌다른문자집합으로데이터베이스를생성할때필요합니다. 예 : $ORACLE_HOME/ocommon/nls/admin/data PATH: SQL*Plus와같은실행파일을찾기위해운영체제가검색할디렉토리를지정합니다. Oracle9i 실행파일은 $ORACLE_HOME/bin에있으며 PATH 변수에추가해야합니다. LD_LIBRARY_PATH: 운영체제및 Oracle 라이브러리파일의디렉토리를지정합니다. 예 : $ORACLE_HOME/lib Oracle9i Database Administration Fundamentals I 4-11

152 Database Configuration Assistant Database Configuration Assistant ñ ñ. ÿ 4-12 Copyright Oracle Corporation, All rights reserved. Database Configuration Assistant 템플리트관리는 Oracle9i의새로운기능으로미리정의된일부템플리트를사용할수있습니다. 또한기존데이터베이스를복사본으로사용하여새데이터베이스또는템플리트를생성할수있습니다. 데이터베이스매개변수는 XML 형식으로저장됩니다. 템플리트를사용하면다음과같은이점이있습니다. 데이터베이스를생성하는데필요한시간을절약할수있습니다. 템플리트를공유할수있습니다. 필요한경우데이터베이스옵션을변경할수있습니다. 템플리트에대한자세한내용은 Oracle Database Configuration Assistant 온라인도움말을참조하십시오. Oracle9i Database Administration Fundamentals I 4-12

153 Database Configuration Assistant ÿ ñ. SID ñ. ñ. ñ. ú ñ Copyright Oracle Corporation, All rights reserved. Database Configuration Assistant Programs > Oracle-OraHome90 > Configuration and Migration Tools > Database Configuration Assistant로이동하여 Database Configuration Assistant를실행합니다. Create a Database 옵션을선택합니다. 다음의미리정의된템플리트목록에서생성할데이터베이스유형을선택합니다. Data warehouse General purpose New database Transaction processing Show Details 옵션을사용하여생성될대상을볼수있습니다. 템플리트는데이터파일과함께또는데이터파일없이생성할수있습니다. Without datafiles: 데이터베이스의구조만포함됩니다. 모든데이터베이스매개변수를지정하고변경할수있습니다. With datafiles: 데이터베이스의구조와물리적데이터파일이모두포함됩니다. 데이터베이스의모든로그파일과제어파일은자동으로생성되며제어파일, 로그그룹을추가 / 제거하거나데이터파일의이름및대상을변경할수있습니다. 하지만데이터파일, 테이블스페이스또는롤백세그먼트는추가하거나제거할수없으며초기화매개변수도변경할수없습니다. Oracle9i Database Administration Fundamentals I 4-13

154 ( ) 전역데이터베이스이름및 SID를지정합니다. 다음과같은데이터베이스에서사용할기능을선택합니다. Oracle Spatial Oracle OLAP 서비스 Example Schemas Example Schema에는다음테이블유형에대한스크립트가포함되어있습니다. Human Resources Order Entry Product Media Sales History Shipping 데이터베이스를생성한이후실행할스크립트를식별합니다. 데이터베이스작동모드를선택합니다. 전용서버모드 공유서버모드 Oracle9i Database Administration Fundamentals I 4-14

155 Database Configuration Assistant,, ó ñ. ñ. ñ. ñ Copyright Oracle Corporation, All rights reserved. Database Configuration Assistant 다음옵션을지정합니다. Memory Typical 또는 Custom Database를선택합니다. Typical은최소사용자입력으로데이터베이스를생성합니다. Typical 옵션을사용하면 OLTP(Online Transaction Processing), Multipurpose, 및 Data Warehousing 중하나를데이터베이스운영환경으로지정할수있습니다. Custom을사용하면데이터베이스생성을사용자정의할수있습니다. 이옵션은고급데이터베이스생성경험이있는데이터베이스관리자만사용해야합니다. Archive 이옵션은데이터베이스를 ARCHIVELOG 모드로설정하고재사용되기전에리두로그파일이아카이브되게합니다. DB Sizing 이옵션을사용하면데이터베이스의블록크기및정렬영역크기를정의할수있습니다. 데이터베이스의데이터블록크기는데이터베이스가생성될때만지정할수있습니다. SORT_AREA_SIZE는정렬작업에사용되는최대메모리양입니다. Oracle9i Database Administration Fundamentals I 4-15

156 ( ) File Locations 추적파일의위치를지정하고초기화매개변수파일의경로를지정합니다. 데이터베이스저장매개변수를정의합니다. 이페이지에는제어파일, 테이블스페이스, 데이터파일, 실행취소세그먼트및리두로그그룹등의객체를변경하고볼수있는트리목록과요약뷰 ( 여러열목록 ) 가표시됩니다. File Location Variables 버튼을눌러임의의파일위치변수를변경합니다. 데이터베이스생성옵션을선택하여데이터베이스생성을완료합니다. Create Database: 이옵션은즉시데이터베이스를생성합니다. Save as a Database Template: 이옵션은데이터베이스생성매개변수를템플리트로저장합니다. 그러면이템플리트는사용가능한템플리트목록에추가됩니다. Generate Database Creation Scripts: 이옵션을사용하면데이터베이스생성매개변수를나중에사용할수있도록스크립트파일로저장할수있습니다. Finish를선택합니다. Oracle9i Database Administration Fundamentals I 4-16

157 ú ñ. ñ. ñ. ñ. NOMOUNT ñ ñ. CREATE DATABASE ñ. ñ. ß ñ ñ. ñ Copyright Oracle Corporation, All rights reserved. ú 고유한인스턴스및데이터베이스이름을선택합니다. 데이터베이스문자집합을선택합니다. 데이터베이스문자집합을정의해야합니다. 다음과같이선택적으로국가별문자집합도정의할수있습니다. 문자집합 AL32UTF16 국가별문자집합 AL16UTF16 사용할수있는여러가지집합에대한자세한내용은 "Globalization Support 사용 " 단원을참조하십시오. 운영체제변수를설정합니다. 네가지환경변수즉, ORACLE_HOME, ORACLE_SID, PATH, LD_LIBRARY_PATH 를설정해야합니다. ORACLE_HOME: Oracle9i 서버가설치되는최상위디렉토리입니다. ORACLE_SID: 데이터베이스의인스턴스에할당되는사용자정의가능한이름으로, 동일한시스템에서실행중인다른데이터베이스인스턴스와구별하는데사용됩니다. PATH: 실행파일을찾기위해운영체제가검색하는디렉토리를정의합니다. LD_LIBRARY_PATH: 필요한라이브러리파일이저장되는디렉토리를정의합니다. Oracle9i Database Administration Fundamentals I 4-17

158 ú ( ) 초기화매개변수파일을생성합니다. 초기화매개변수파일은설치과정에서설치된예제 init.ora 파일을사용하여생성됩니다. 예제 init.ora를복사한다음 initsid.ora로이름을지정합니다. 생성할데이터베이스의필요에따라파일을수정하십시오. SPFILE을사용하려면먼저 PFILE을생성해야합니다. 데이터베이스별 initsid.ora 파일및 SPFILE을생성하는방법에대한지침은 "Oracle 인스턴스관리 " 를참조하십시오. NOMOUNT에서인스턴스를시작합니다. SYSDBA 권한이있는 SYS 사용자로접속합니다. 데이터베이스를생성하려면데이터베이스가 NOMOUNT 상태에있어야합니다. 데이터베이스를 NOMOUNT 상태에두는방법에대한지침은 "Oracle 인스턴스관리 " 단원을참조하십시오. CREATE DATABASE 명령을생성하고실행합니다. CREATE DATABASE 명령이포함된 SQL 스크립트를작성합니다. SQL*Plus에 SYSDBA 권한이있는 SYS 사용자로접속합니다. NOMOUNT 상태인데이터베이스에서스크립트를실행합니다. 생성되는데이터베이스의용도가 OMF(Oracle Managed Files) 를사용하여운영체제파일을관리하기위한것일경우 CREATE DATABASE 명령이매우간단해집니다. OMF에대한내용은 "Oracle 인스턴스관리 " 단원을참조하십시오. 데이터베이스를엽니다. 데이터딕셔너리를생성하고생성이후단계를수행하는스크립트를실행하려면먼저데이터베이스를열어야합니다. NOMOUNT 상태에서데이터베이스를여는방법은 "Oracle 인스턴스관리 " 단원을참조하십시오. 스크립트를실행합니다. catalog.sql 및 catproc.sql 스크립트는데이터베이스가생성된이후에실행해야합니다. 두스크립트는모두 SYSDBA 권한이있는 SYS 사용자로실행해야합니다. 스크립트를실행하기전에데이터베이스를 OPEN 상태로설정해야합니다. catalog.sql: 기본테이블과동적성능뷰에대한뷰및뷰의동의어를생성합니다. 이스크립트를실행하면다음용도의객체를생성하는다른스크립트가시작됩니다. PL/SQL 데이터유형선언, 미리정의된예외, 내장프로시저및함수, SQL 작업을포함한기본 PL/SQL 환경 감사 임포트 / 엑스포트 SQL*Loader 설치옵션 Oracle9i Database Administration Fundamentals I 4-18

159 ú 2 스크립트실행 ( 계속 ) catproc.sql: PL/SQL을사용하는데필요한프로시저와패키지를생성합니다. 또한 RDBMS 기능을확장하는데사용되는여러 PL/SQL 패키지를생성합니다. 이스크립트는경고, 파이프, logminer, 대형객체, 객체, 대기열, 복제및기타내장옵션에대한추가패키지뷰도생성합니다. pupbld.sql: Product User Profile 테이블및관련프로시저를생성합니다. 이스크립트를실행하면사용자가 SQL*Plus에접속할때마다경고메시지가표시되는것을방지할수있습니다. 주 : 이스크립트는 SYSTEM 사용자로실행해야합니다. 추가테이블스페이스를생성합니다. 데이터베이스필요에따라추가테이블스페이스를생성해야합니다. 주 : 부록 A에는 UNIX 환경에서데이터베이스를수동으로생성하는방법에대한단계별지침이설명되어있습니다. 특정플랫폼에서데이터베이스를생성하는방법은운영체제별 Oracle 설명서를참조하십시오. Oracle9i Database Administration Fundamentals I 4-19

160 CREATE DATABASE user01 LOGFILE GROUP 1 ('/$HOME/ORADATA/u01/redo01.log') SIZE 100M, GROUP 2 ('/$HOME/ORADATA/u02/redo02.log') SIZE 100M, GROUP 3 ('/$HOME/ORADATA/u03/redo03.log') SIZE 100M MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 100 MAXINSTANCES 1 DATAFILE '/$HOME/ORADATA/u01/system01.dbf' SIZE 325M UNDO TABLESPACE undotbs DATAFILE '/$HOME/ORADATA/u02/undotbs01.dbf' SIZE 200M AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED DEFAULT TEMPORARY TABLESPACE temp CHARACTER SET US7ASCII NATIONAL CHARACTER SET AL16UTF16 SET TIME_ZONE= 'America/New_York' 4-20 Copyright Oracle Corporation, All rights reserved. 데이터베이스를생성하려면다음 SQL 명령을사용합니다. CREATE DATABASE [database] [CONTROLFILE REUSE] [LOGFILE [GROUP integer] filespec [MAXLOGFILES integer] [MAXLOGMEMBERS integer] [MAXLOGHISTORY integer] [MAXDATAFILES integer] [MAXINSTANCES integer] [ARCHIVELOG NOARCHIVELOG] [CHARACTER SET charset] [NATIONAL CHARACTER SET charset] [DATAFILE filespec [autoextend_clause] Oracle9i Database Administration Fundamentals I 4-20

161 2 filespec :== 'filename' [SIZE integer][k M] [REUSE] autoextend_clause :== [AUTOEXTEND {OFF ON [NEXT integer[k M]] [MAXSIZE {UNLIMITED integer[k M]} }] [DEFAULT TEMPORARY TABLESPACE tablespace filespec [temp_tablespace_extent_clause] temp_tablespace_extent_clause:== EXTENT MANAGEMENT LOCAL UNIFORM [SIZE integer][k M] ] [UNDO TABLESPACE tablespace DATAFILE filespec [autoextend_clause] ] [SET TIME_ZONE [time_zone_region]] } ] 설명 : DATABASE: 생성될데이터베이스이름입니다. 데이터베이스이름이생략되면초기화매개변수인 DB_NAME이사용됩니다. CONTROLFILE REUSE: 매개변수파일에서식별된기존제어파일이재사용되어야함을지정합니다. LOGFILE GROUP: 사용될로그파일이름과로그파일이속한그룹을지정합니다. MAXLOGFILES: 데이터베이스에대해생성될수있는리두로그파일그룹의최대개수를지정합니다. MAXLOGMEMBERS: 한로그파일그룹에대한로그파일멤버의최대개수를지정합니다. MAXLOGHISTORY: Oracle Real Application Clusters의자동매체복구를위해아카이브된리두로그파일의최대개수를지정합니다. Oracle9i Database Administration Fundamentals I 4-21

162 2 DATAFILE: filespec은사용될데이터파일을지정합니다. AUTOEXTEND: 데이터파일의자동확장을활성화하거나비활성화합니다. MAXDATAFILES: CREATE DATABASE 또는 CREATE CONTROLFILE 명령실행시제어파일의데이터파일섹션에대한초기크기를지정합니다. 파일수가 MAXDATAFILES보다많고 DB_FILES 이하인새파일을추가하면제어파일이자동확장되어데이터파일섹션에추가파일을수용할수있습니다. MAXINSTANCES: 데이터베이스를동시에마운트하고열수있는인스턴스의최대개수입니다. ARCHIVELOG: 리두로그를다시사용하기전에아카이브해야함을설정합니다. NOARCHIVELOG: 리두로그의내용을아카이브하지않고도다시사용할수있음을설정합니다. CHARACTER SET: 데이터베이스에서데이터저장에사용하는문자집합입니다. NATIONAL CHARACTER SET: NCHAR,NCLOB 또는 NVARCHAR2로정의된열에데이터를저장하기위해사용되는국가별문자집합을지정합니다. 지정하지않으면국가별문자집합은데이터베이스문자집합과동일합니다. DEFAULT TEMPORARY TABLESPACE: 데이터베이스의기본임시테이블스페이스를생성합니다. Oracle은다른임시테이블스페이스를지정하지않는사용자를이임시테이블스페이스에할당합니다. UNDO TABLESPACE: 실행취소테이블스페이스를생성하고지정된데이터파일을실행취소테이블스페이스의일부로생성합니다. SET TIME_ZONE: 데이터베이스의시간영역을설정합니다. Oracle9i Database Administration Fundamentals I 4-22

163 OMF OMF ñ. OMF SQL ó Oracle þ ÿ ñ. OMF ñ ÿ ñ. DB_CREATE_FILE_DEST: ó ñ. DB_CREATE_ONLINE_LOG_DEST_N: ó ñ. ó ñ ñ ñ Copyright Oracle Corporation, All rights reserved. OMF(Oracle Managed Files) OMF를사용하면오라클데이터베이스내의파일을직접관리할필요가없으므로파일을쉽게관리할수있습니다. OMF는다음과같이이름이지정됩니다 제어파일 : ora_%u.ctl 리두로그파일 : ora_%g_%u.log 데이터파일 : ora_%t_%u.dbf 임시데이터파일 : ora_%t_%u.tmp 각문자는다음과같이정의됩니다. %u 는여덟문자로구성된문자열이며각각고유해야합니다. %t 는테이블스페이스이름이며필요한경우파일이름의최대길이에맞게잘립니다. 테이블스페이스이름을고유문자열앞에두는것은테이블스페이스의모든데이터파일이문자순으로된파일목록에서나란히나타난다는것을말합니다. %g 는리두로그파일그룹번호입니다. ora_ 로시작하고확장자가.dbf 인파일은 OMF 로식별됩니다. Oracle9i Database Administration Fundamentals I 4-23

164 OMF ( ) 실행취소파일은특정확장자를갖지않습니다. DB_CREATE_FILE_DEST와 DB_CREATE_ONLINE_LOG_DEST_N 매개변수모두반드시설정할필요는없습니다. 둘중하나또는둘다사용할수있습니다. Oracle9i Database Administration Fundamentals I 4-24

165 OMF(Oracle Managed Files) ñ OMF ñ. DB_CREATE_FILE_DEST=/$HOME/ORADATA/u05 DB_CREATE_ONLINE_DEST_1=/$HOME/ORADATA/u01 DB_CREATE_ONLINE_DEST_2=/$HOME/ORADATA/u02 CREATE DATABASE ñ > CREATE DATABASE dba01; 4-25 Copyright Oracle Corporation, All rights reserved. OMF(Oracle Managed Files) OMF를사용하여데이터베이스를생성하려면초기화매개변수파일에서 DB_CREATE_FILE_DEST 및 DB_CREATE_ONLINE_DEST_n 매개변수를정의해야합니다. OMF 매개변수가정의되면파일이름이나위치를정의하지않아도되므로데이터베이스생성구문이간단해집니다. 위의예에서는다음 OMF로데이터베이스를생성합니다. 100MB이고크기를무제한자동확장할수있는 /$HOME/ORADATA/u05 디렉토리의 SYSTEM 테이블스페이스데이터파일. 각각 100MB 의두멤버를갖는두개의온라인리두로그그룹. /$HOME/ORADATA/u01 과 /$HOME/ORADATA/u02 에하나씩있습니다. 자동실행취소관리모드가활성화된경우 10MB 이고크기를무제한자동확장할수있는실행취소테이블스페이스데이터파일이 /$HOME/ORADATA/u05 디렉토리에생성. SYS_UNDOTBS 라는실행취소테이블스페이스가생성됩니다. CONTROL_FILES 초기화매개변수가지정되지않은경우 /$HOME/ORADATA/u01 과 /$HOME/ORADATA/u02 에하나씩두개의제어파일생성. /$HOME/ORADATA/u01 의제어파일이기본제어파일입니다. Oracle9i Database Administration Fundamentals I 4-25

166 OMF(Oracle Managed Files) ( ) CREATE DATABASE 명령이실패하면생성된 OMF가제거됩니다. 사용자가 DBA_DATAFILES, V$DATAFILE, V$CONTROLFILE 및 V$LOGFILE을선택하면내부적으로생성된파일이름을볼수있습니다. DB_CREATE_FILE_DEST와 DB_CREATE_ONLINE_LOG_DEST_N은모두ALTER SYSTEM SET 명령을사용하여동적으로수정할수있습니다. Oracle9i Database Administration Fundamentals I 4-26

167 ñ ñ. SQL 4-27 Copyright Oracle Corporation, All rights reserved. 슬라이드에보이는세가지문제중하나가발생하면 CREATE DATABASE 문이실패합니다. CREATE DATABASE 문으로생성한파일을삭제하고오류를수정한다음데이터베이스를다시생성해야합니다. Oracle9i Database Administration Fundamentals I 4-27

168 ñ ñ., change_on_install SYS manager SYSTEM ( ß ) 4-28 Copyright Oracle Corporation, All rights reserved. 데이터베이스를생성하면인스턴스는실행중인상태가유지되고데이터베이스가열려정상적으로사용할수있습니다. 데이터베이스에는 SYS 사용자와 SYSTEM 사용자가있습니다. 데이터베이스생성방법즉, DBCA를사용했는지또는수동으로데이터베이스를생성했는지여부에따라다른사용자가생성될수도있습니다. 데이터베이스를생성한즉시SYS와 SYSTEM의암호를변경하십시오. V$LOGFILE, V$CONTROLFILE 및 V$DATAFILE 과같은동적성능뷰는볼수있지만데이터딕셔너리뷰는생성되지않습니다. Oracle9i Database Administration Fundamentals I 4-28

169 ñ ñ ó ñ. Oracle Database Configuration Assistant ú Oracle Managed Files 4-29 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 4-29

170 4 ñ ñ ñ. Database Configuration Assistant ñ ñ. ñ ñ. Start > Programs > Oracle-OraHome90 > Configuration and Migration Tools. A UNIX ú ñ ñ. ñ ñ ú Database Configuration Assistant ñ Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 4-30

171 ß ú Copyright Oracle Corporation, All rights reserved.

172 ñ ñ ñ. ß ß ß ß ú 5-2 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 5-2

173 È þ ß PL/SQL 5-3 Copyright Oracle Corporation, All rights reserved. 데이터베이스파일이외에도여러가지다른구조가생성됩니다. 데이터딕셔너리 : 데이터베이스의객체에대한설명이저장됩니다. 동적성능테이블 : 데이터베이스및인스턴스를모니터하고튜닝하기위해데이터베이스관리자 (DBA) 가사용하는정보를포함합니다. PL/SQL 패키지 : 데이터베이스에기능을추가하는프로그램단위입니다. 이러한패키지는 CREATE DATABASE 명령을실행한후 catproc.sql 스크립트를실행할때생성됩니다. PL/SQL 패키지는이과정에서다루지않습니다. 데이터베이스이벤트트리거 : 트리거란테이블이나뷰를수정할때마다또는일부사용자작업이나데이터베이스시스템작업이발생할때암시적으로실행되는프로시저입니다. 데이터베이스이벤트트리거는이과정에서다루지않습니다. Oracle9i Database Administration Fundamentals I 5-3

174 ß ñ. ò ò ñ. ñ. SYSTEM ÿ ñ. SYS ñ. Oracle ÿ ñ. SELECT ÿ ñ. ß 5-4 Copyright Oracle Corporation, All rights reserved. ß 오라클데이터베이스에서가장중요한부분의하나인데이터딕셔너리는연관된데이터베이스에대한정보를제공하는테이블및뷰의읽기전용집합입니다. DDL( 데이터정의어 ) 명령이실행될때마다 Oracle 서버는데이터딕셔너리를갱신하며또한테이블을확장시키는명령과같은 DML( 데이터조작어 ) 명령도데이터딕셔너리를갱신할수있습니다. 데이터딕셔너리는모든오라클데이터베이스에서핵심일뿐만아니라일반사용자에서응용프로그램설계자나데이터베이스관리자에이르기까지모든사용자에게중요한정보소스입니다. 데이터딕셔너리를액세스하려면 SQL 문을사용합니다. 데이터베이스는읽기전용이므로데이터딕셔너리의테이블및뷰에대해서는질의만할수있습니다. Oracle9i Database Administration Fundamentals I 5-4

175 ß ß ñ ñ. CREATE DATABASE ß ñ ú catalog.sql 5-5 Copyright Oracle Corporation, All rights reserved. ß 데이터딕셔너리에는데이터베이스의객체에대한설명이저장되며다음두가지유형의객체가포함됩니다. : 기본테이블은연관된데이터베이스에대한정보를저장하는테이블입니다. 기본테이블은오라클데이터베이스에서생성되는첫번째객체로데이터베이스생성 (CREATE DATABASE) 시 Oracle 서버가 sql.bsq 스크립트를실행할때자동생성됩니다. Oracle 서버만이이러한테이블에기록할수있으며데이터대부분이암호화되어저장되기때문에사용자가직접테이블을액세스하기는힘듭니다. AUD$ 테이블을제외하고는기본테이블을직접갱신하기위해 DML 명령을사용하지마십시오. 기본테이블의한예로 IND$ 테이블을들수있으며여기에는데이터베이스에있는인덱스에관한정보가포함됩니다. ß : 데이터딕셔너리뷰는기본테이블정보를보다효과적으로표시하는기본테이블요약입니다. 예를들어, 데이터딕셔너리뷰에서는객체번호만사용하는대신객체이름을사용합니다. 데이터딕셔너리뷰는 CREATE DATABASE 명령이후에실행되는 catalog.sql 스크립트를사용하여생성됩니다. Oracle9i Database Administration Fundamentals I 5-5

176 ß catalog.sql catproc.sql þ ß ú ñ. PL/SQL ñ. 5-6 Copyright Oracle Corporation, All rights reserved. ß 데이터딕셔너리의기본테이블은데이터베이스가생성될때자동생성됩니다. Oracle Universal Installer를사용하여데이터베이스를생성하는경우데이터딕셔너리및동적성능뷰를생성하는스크립트와 Oracle 서버옵션을위한스크립트가자동실행됩니다. 새데이터베이스를수동으로생성하는경우이러한스크립트를수동으로실행해야합니다. 또한 Oracle 서버를새버전으로업그레이드할때이뷰와스크립트를다시실행해야할수도있습니다. 이러한스크립트는 SYSDBA 권한을가진 SYS 사용자로실행해야합니다. 스크립트는다음디렉토리에있습니다. UNIX: $ORACLE_HOME/rdbms/admin NT: %ORACLE_HOME%\rdbms\admin Oracle9i Database Administration Fundamentals I 5-6

177 ß ß ñ ó ñ. ó ò ò 5-7 Copyright Oracle Corporation, All rights reserved. ß 데이터딕셔너리내용은다음과같습니다. 데이터베이스의모든스키마객체 ( 테이블, 뷰, 인덱스, 클러스터, 동의어, 시퀀스, 프로시저, 함수, 패키지, 트리거등 ) 정의 스키마객체에할당된영역의크기및스키마객체가현재사용하는영역의크기 열의기본값 무결성제약조건정보 Oracle 사용자이름 각사용자에게부여된권한및롤 누가여러스키마객체를액세스또는갱신했는가와같은감사정보 Oracle9i Database Administration Fundamentals I 5-7

178 ß : Oracle ñ ó ñ. Oracle DDL ñ. DBA ó ñ. 5-8 Copyright Oracle Corporation, All rights reserved. ß Oracle 서버의데이터딕셔너리사용방법 : 데이터딕셔너리의기본테이블에있는데이터는 Oracle 서버가기능하는데필요하므로 Oracle 서버만이데이터딕셔너리정보를기록하거나변경할수있습니다. 데이터베이스작업동안 Oracle 서버는데이터딕셔너리를읽어스키마객체가존재하고여기에사용자가정상적으로액세스함을확인합니다. 또한 Oracle 서버는데이터딕셔너리를계속갱신하여데이터베이스구조의변경사항을반영합니다. 사용자및데이터베이스관리자의데이터딕셔너리사용방법 : 데이터딕셔너리뷰는모든데이터베이스사용자에게참조를제공합니다. 일부뷰는모든 Oracle 사용자가액세스할수있지만기타뷰는데이터베이스관리자만액세스할수있습니다. Oracle9i Database Administration Fundamentals I 5-8

179 ß ñ ï ñ. DBA: ñ. ALL: ñ. USER: ò ñ. DBA_xxx ALL_xxx USER_xxx 5-9 Copyright Oracle Corporation, All rights reserved. ß DBA 접두어가붙는뷰 : DBA 접두어가붙는뷰는전체데이터베이스에대한전역적뷰를보여줍니다. 따라서데이터베이스관리자만이러한뷰를질의할수있습니다. SELECT ANY TABLE 시스템권한을가진사용자는데이터딕셔너리에서 DBA 접두어가붙는뷰를질의할수있습니다. DBA는다음명령문을실행하여데이터베이스의모든객체를질의합니다. SELECT owner, object_name, object_type FROM dba_objects; ALL 접두어가붙는뷰 : ALL 접두어가붙는뷰는사용자가볼수있는데이터베이스의전반적인모습을보여줍니다. 이러한뷰는사용자가소유하는스키마객체뿐만아니라공용이나명시적인권한및롤을통해액세스하는스키마객체에대한정보를반환합니다. 예를들어, 다음질의는액세스할수있는모든객체에대한정보를반환합니다. SELECT owner, object_name, object_type FROM all_objects; Oracle9i Database Administration Fundamentals I 5-9

180 ß ( ) USER 접두어가붙는뷰 : 일반적인데이터베이스사용자가가장관심을가지는뷰는 USER 접두어가붙는뷰입니다. 이러한뷰에는다음특징이있습니다. 데이터베이스에서사용자전용환경을참조합니다. 일반적으로현재사용자가소유하는객체를참조합니다. OWNER 열이현재사용자를암시하는것을제외하면다른뷰와동일한열을가집니다. ALL 뷰에있는정보의부분집합을반환합니다. 편의상축약된 PUBLIC 동의어를가질수있습니다. 예를들어, 다음질의는사용자스키마에포함된모든객체를반환합니다. SELECT owner, object_name, object_type FROM users_objects; 데이터딕셔너리뷰 : 데이터딕셔너리뷰는다음질문에대한답을제공하는정적뷰입니다. 객체가생성되었습니까? 객체는어디에속합니까? 객체의소유자는? 사용자가소유한권한은? 객체에설정된제한사항은? 주 : 모든데이터딕셔너리뷰의목록은 Oracle9i Database Reference 설명서를참조하십시오. Oracle9i Database Administration Fundamentals I 5-10

181 ß DICTIONARY, DICT_COLUMNS DBA_TABLES, DBA_INDEXES, DBA_TAB_COLUMNS, DBA_CONSTRAINTS ò DBA_SEGMENTS, DBA_EXTENTS DBA_TABLESPACES, DBA_DATA_FILES 5-11 Copyright Oracle Corporation, All rights reserved. ß 데이터딕셔너리뷰에대한개요를보려면다음과같이 DICTIONARY 뷰또는해당동의어 DICT를질의합니다. SELECT * FROM dictionary; 응답범위를좁히려면 where 절을포함시킵니다. SELECT * FROM dictionary WHERE table_name LIKE dba_seg% 뷰에있는열목록을얻으려면 DESCRIBE 키워드를사용합니다. DESCRIBE dba_users; 데이터딕셔너리뷰에있는열에대한개요를보려면 DICT_COLUMNS 뷰를질의합니다. 데이터딕셔너리뷰의내용을보려면 SELECT 명령을사용합니다. SELECT * FROM dba_users; 주 : 데이터딕셔너리뷰및데이터딕셔너리뷰의열에대한전체목록은 "Oracle9i Database Reference" 설명서를참조하십시오. Oracle9i Database Administration Fundamentals I 5-11

182 ú ú ÿ ñ ñ SYS V$ þ ú V$FIXED_TABLE 5-12 Copyright Oracle Corporation, All rights reserved. ú Oracle 서버는전체작업과정동안현재데이터베이스작업을동적성능뷰라고하는가상테이블집합에기록합니다. 이러한가상테이블은데이터베이스가실행되는동안에만메모리에존재하며데이터베이스작업의실시간상태를반영합니다. 가상테이블은메모리와제어파일에있는정보의실제소스를나타냅니다. 이러한테이블은실제테이블이아니며대부분의사용자는액세스할수없지만데이터베이스관리자는질의할수있고 SELECT 권한을부여할수있으며이뷰에대한뷰를생성할수있습니다. 이러한뷰는데이터베이스관리자가변경하거나제거할수없기때문에고정뷰라고도합니다. 동적성능테이블은 SYS의소유이며이름은모두 VV$ 로시작합니다. 뷰는이러한테이블에대해생성되고뷰에대한공용동의어가생성됩니다. 동의어이름도 V$ 로시작합니다. 예를들어, V$DATAFILE 뷰에는데이터베이스의데이터파일에대한정보가포함되고 V$FIXED_TABLE 뷰에는데이터베이스에있는모든동적성능테이블및뷰에대한정보가포함됩니다. 동적성능테이블은다음질문에대한답을제공합니다. 객체가온라인이고사용할수있습니까? 객체가열려있습니까? 설정된잠금은무엇입니까? 활성세션입니까? Oracle9i Database Administration Fundamentals I 5-12

183 ú V$CONTROLFILE V$DATABASE V$DATAFILE V$INSTANCE V$PARAMETER V$SESSION V$SGA $SPPARAMETER V$TABLESPACE V$THREAD V$VERSION 5-13 Copyright Oracle Corporation, All rights reserved. ú 동적성능뷰에대한개요를보려면다음과같이 DICTIONARY 뷰또는해당동의어DICT 를질의합니다. SELECT * FROM dictionary; 응답범위를좁히려면 where 절을포함시킵니다. SELECT * FROM dictionary WHERE table_name like V$data% V$FIXED_TABLE 뷰를질의하여동적성능뷰의목록을얻을수도있습니다. SELECT * FROM V$FIXED_TABLE; 뷰내에서열목록을얻으려면 DESCRIBE 키워드를사용합니다. DESCRIBE V$INSTANCE; 동적성능뷰의열에대한개요를보려면 DICT_COLUMNS 뷰를질의합니다. 해당뷰의내용을보려면 SELECT 명령을사용합니다. SELECT * from V$INSTANCE; Oracle9i Database Administration Fundamentals I 5-13

184 ú ( ) 예제 : V$CONTROLFILE: 제어파일의이름을나열합니다. V$DATABASE: 제어파일의데이터베이스정보를포함합니다. V$DATAFILE: 제어파일의데이터파일정보를포함합니다. V$INSTANCE: 현재인스턴스상태를표시합니다. V$PARAMETER: 현재세션에대해유효한매개변수및값을나열합니다. V$SESSION: 각현재세션에대한세션정보를나열합니다. V$SGA: SGA( 시스템글로벌영역 ) 의요약정보를포함합니다. V$SPPARAMETER: SPFILE 내용을나열합니다. V$TABLESPACE: 제어파일의테이블스페이스정보를표시합니다. V$THREAD: 제어파일의스레드정보를포함합니다. V$VERSION: Oracle 서버에있는핵심라이브러리구성요소의버전번호입니다. 주 : 동적성능뷰및해당열에대한전체목록은 "Oracle9i Database Reference" 설명서를참조하십시오. Oracle9i Database Administration Fundamentals I 5-14

185 cat*.sql dbms*.sql prvt*.plb utl*.sql ß ÿ 5-15 Copyright Oracle Corporation, All rights reserved. 관리스크립트는해당파일이름에따라여러범주로구분할수있습니다. cat*.sql: 이스크립트는데이터딕셔너리뷰를생성합니다. catalog.sql과 catproc.sql 스크립트외에 Oracle 유틸리티에대한정보를생성하는스크립트가있습니다. 예를들어, catadt.sql 스크립트는 ORDBMS에서유형및기타객체기능에대한메타데이터정보를보여주는데이터딕셔너리뷰를생성하며 catnoadt.sql 스크립트는이러한테이블과뷰를삭제합니다. dbms*.sql 및 prvt*plb: 이스크립트는 Oracle 서버기능을확장하는미리정의된 Oracle 패키지에대한객체를생성하며이러한프로그램은데이터베이스관리작업을단순화합니다. 대부분의 SQL 스크립트는 catproc.sql 스크립트가실행되는동안실행되며일부추가스크립트는데이터베이스관리자가실행해야합니다. 한예로dbmspool.sql 스크립트가있는데이스크립트는공유풀의단편화를줄이기위해공유풀에있는객체의크기를보여주고 SGA에서유지또는제거될객체를표시할수있도록합니다. utl*.sql: 데이터베이스에추가뷰와테이블이필요할때이스크립트를실행해야합니다. 예를들어, utlxplan.sql 스크립트는 SQL 문의실행계획을보는데사용되는테이블을생성합니다. 주 : 대부분의이러한스크립트는 SYSDBA 권한을가진 SYS 사용자로실행되어야합니다. 데이터베이스관리자는스크립트를검사하여스크립트실행에사용할사용자계정을찾아야합니다. Oracle9i Database Administration Fundamentals I 5-15

186 ñ ñ ó ñ. ß ß ß ß ú 5-16 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 5-16

187 5 ñ ññ. ß ß 5-17 Copyright Oracle Corporation, All rights reserved. 5 주 : SQL*Plus 또는 Oracle Enterprise Manager와 SQL*Plus Worksheet를사용하여연습을수행할수있습니다. Oracle9i Database Administration Fundamentals I 5-17

188 5: ß ú 1 데이터딕셔너리에대한다음설명중옳은것은? a 데이터딕셔너리는데이터베이스와해당객체를설명합니다. b 데이터딕셔너리는두가지유형의객체, 기본테이블과데이터딕셔너리뷰를포함합니다. c 데이터딕셔너리는테이블집합입니다. d 데이터딕셔너리는연관된데이터베이스에대한정보를기록하고확인합니다. 2 기본테이블은 catalog.sql 스크립트를사용하여생성됩니다. a 예 b 아니오 3 데이터딕셔너리사용방법에대한다음설명중옳은것은? ( 세개선택 ) a Oracle 서버는 DML 문이실행될때이를수정합니다. b 사용자, 스키마객체및저장영역구조에대한정보를찾습니다. c 사용자및 DBA가참조로사용합니다. d 데이터베이스가작동하려면데이터딕셔너리가반드시있어야합니다. 4 데이터딕셔너리뷰는정적뷰입니다. a 예 b 아니오 5 동적성능뷰에대한정보는제어파일에서수집됩니다. a 예 b 아니오 6 다음중동적성능뷰가대답할수있는질문은? a 객체가온라인이고사용할수있습니까? b 설정된잠금은? c 객체의소유자는? d 사용자가소유한권한은? e 활성세션입니까? 7 데이터딕셔너리뷰목록을찾아보십시오. 8 데이터베이스이름, 인스턴스이름및데이터베이스블록의크기를식별하십시오. 힌트 : 동적성능뷰 V$DATABASE, V$THREAD 및 V$PARAMETER를질의합니다. 9 데이터파일이름을나열하십시오. 힌트 : 동적성능뷰 V$DATAFILE을질의합니다. 10 SYSTEM 테이블스페이스를구성하는데이터파일을식별하십시오. 힌트 : 데이터딕셔너리뷰 DBA_DATA_FILES를질의하여 SYSTEM 테이블스페이스데이터파일을식별합니다. Oracle9i Database Administration Fundamentals I 5-18

189 5: ß ú ( ) 11 데이터베이스에서사용가능영역및이미사용한공간의양은? 힌트 - 데이터딕셔너리뷰 DBA_FREE_SPACE를질의하여데이터베이스에서사용가능한영역을표시합니다. - DBA_SEGMENTS 데이터딕셔너리뷰를질의하여사용된공간을표시합니다. 12 데이터베이스사용자이름및생성일을나열하십시오. 힌트 : 데이터딕셔너리뷰 DBA_USERS를질의하여데이터베이스사용자의이름및생성일을나열합니다. Oracle9i Database Administration Fundamentals I 5-19

190 Oracle9i Database Administration Fundamentals I 5-20

191 Copyright Oracle Corporation, All rights reserved.

192 ñ ñ ñ. ñ OMF(Oracle Managed Files) 6-2 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 6-2

193 : ú MOUNT ñ ÿ CREATE DATABASE 6-3 Copyright Oracle Corporation, All rights reserved. 데이터베이스의제어파일은성공적인데이터베이스시작및운영에필요한작은이진파일입니다. 제어파일마다연관된오라클데이터베이스는하나뿐입니다. 데이터베이스를열기전에제어파일을읽어데이터베이스가사용할수있는적합한상태인지결정합니다. 제어파일은데이터베이스사용중에 Oracle 서버에의해계속갱신되므로데이터베이스를열때마다기록이가능해야합니다. 제어파일의정보는해당 Oracle 서버만수정할수있으며데이터베이스관리자또는일반사용자는제어파일을수정할수없습니다. 어떠한이유에서든제어파일을액세스할수없으면데이터베이스에서제대로작업할수없습니다. 데이터베이스제어파일의모든복사본이손실된경우데이터베이스를열기전에먼저복구해야합니다. Oracle9i Database Administration Fundamentals I 6-3

194 ( ) 제어파일크기조정 : 데이터베이스생성중지정한키워드는제어파일의크기에영향을줍니다. 이는매개변수의값이클경우특히중요합니다. 제어파일의크기는 CREATE DATABASE 또는 CREATE CONTROLFILE 명령에있는다음키워드의영향을받습니다. MAXLOGFILES MAXLOGMEMBERS MAXLOGHISTORY MAXDATAFILES MAXINSTANCES Oracle9i Database Administration Fundamentals I 6-4

195 ñ ÿ ñ. 6-5 Copyright Oracle Corporation, All rights reserved. 제어파일의정보에는다음사항이포함됩니다. 데이터베이스이름은초기화매개변수인 DB_NAME에지정한이름또는 CREATE DATABASE 문에사용한이름으로결정됩니다. 데이터베이스식별자는데이터베이스를작성할때기록됩니다. 데이터베이스의생성시간또한데이터베이스가생성될때기록됩니다. 데이터베이스에서데이터파일또는리두로그를추가, 이름바꾸기또는삭제할경우관련된데이터파일및온라인리두파일의이름및위치가갱신됩니다. 테이블스페이스를추가또는삭제하면테이블스페이스정보도갱신됩니다. 로그전환시리두로그기록이생성됩니다. 아카이브가발생하면아카이브된로그의위치및상태가기록됩니다. 백업본의위치및상태는 Recovery Manager 유틸리티가기록합니다. 로그전환이발생하면현재의로그시퀀스번호가기록됩니다. 체크포인트가만들어지면체크포인트정보가기록됩니다. Oracle9i Database Administration Fundamentals I 6-5

196 ( ) 제어파일은두가지유형의섹션으로구성됩니다. 재사용가능섹션 재사용불가섹션재사용가능섹션은백업데이터파일이름및백업리두로그파일이름과같은 Recovery Manager 정보를저장합니다. 이섹션은순환방식으로사용하며 Recovery Manager를통해서만다시사용할수있습니다. 주 : Recovery Manager에대한자세한내용은 Oracle9i Database Administration Fundamentals II( 한글판 ) 과정에서설명합니다. Oracle9i Database Administration Fundamentals I 6-6

197 ñ CONTROL_FILES= $HOME/ORADATA/u01/ctrl01.ctl, $HOME/ORADATA/u02/ctrl02.ctl 1 (u01) 2 (u02) ctrl01.ctl ctrl02.ctl 6-7 Copyright Oracle Corporation, All rights reserved. ñ 단일포인트의제어파일실패를방지하려면다른물리적디스크에각복사본을저장하여제어파일을다중화하는것이좋습니다. 제어파일이손실되면제어파일의다중화된복사본을사용하여데이터베이스를복구하지않고인스턴스를재시작할수있습니다. 제어파일은다음방법을사용하여최대여덟번까지다중화될수있습니다. 데이터베이스를생성할때다음초기화매개변수파일에제어파일이름과전체경로를포함시켜여러개의제어파일을생성합니다. CONTROL_FILES=$HOME/ORADATA/u01/ctrl01.ctl, $HOME/ORADATA/u02/ctrl02.ctl 데이터베이스를생성한후제어파일을추가합니다. 제어파일백업 : 제어파일은데이터베이스의물리적구조를기록하므로데이터베이스의물리적구조를변경하면즉시제어파일을백업해야합니다. 제어파일의백업및복구에대한자세한내용은 Oracle9i Database Administration Fundamentals II( 한글판 ) 과정에서설명합니다. Oracle9i Database Administration Fundamentals I 6-7

198 1. SPFILE : 2. : 3. : 4. : startup SPFILE ñ ALTER SYSTEM SET control_files = '$HOME/ORADATA/u01/ctrl01.ctl', '$HOME/ORADATA/u02/ctrl02.ctl' SCOPE=SPFILE; shutdown immediate cp $HOME/ORADATA/u01/ctrl01.ctl $HOME/ORADATA/u02/ctrl02.ctl 6-8 Copyright Oracle Corporation, All rights reserved. SPFILE ñ 1. SPFILE 변경 : 사용할모든제어파일 ( 주제어파일및다중화된복사본 ) 의목록을포함하도록 ALTER SYSTEM SET 명령을사용하여 SPFILE을변경합니다. 2. 데이터베이스종료 : 데이터베이스를종료하여운영체제에추가제어파일을생성합니다. 3. 추가제어파일생성 : 운영체제복사명령을사용하여추가제어파일을필요한만큼생성하고파일이해당디렉토리에생성되었는지확인합니다. 4. 데이터베이스시작 : 데이터베이스가시작되면 SPFILE을읽고Oracle 서버는 CONTROL_FILES 매개변수에나열된모든제어파일을유지관리합니다. Oracle9i Database Administration Fundamentals I 6-8

199 1. : shutdown immediate PFILE ñ 2. : cp $HOME/ORADATA/u01/ctrl01.ctl $HOME/ORADATA/u02/ctrl02.ctl 3. PFILE : CONTROL_FILES = (/DISK1/control01.ctl, /DISK3/control02.ctl) 4. : startup 6-9 Copyright Oracle Corporation, All rights reserved. PFILE ñ 1. 데이터베이스종료 : 데이터베이스를종료하여운영체제에추가제어파일을생성합니다. 2. 추가제어파일생성 : 운영체제복사명령을사용하여추가제어파일을필요한만큼생성하고파일이해당디렉토리에생성되었는지확인합니다. 3. PFILE에제어파일이름추가 : PFILE을변경하여모든제어파일의목록을포함합니다. 4. 데이터베이스시작 : 데이터베이스가시작되면 PFILE을읽고Oracle 서버는 CONTROL_FILES 매개변수에나열된모든제어파일을유지관리합니다. Oracle9i Database Administration Fundamentals I 6-9

200 OMF CONTROL_FILES þ OMF ÿ ñ. DB_CREATE_ONLINE_LOG_DEST_n ÿ ñ. þ alertsid.log ÿ ñ Copyright Oracle Corporation, All rights reserved. OMF 초기화매개변수파일에 CONTROL_FILES 매개변수가지정되지않은경우데이터베이스를생성하는동안제어파일이 OMF로자동생성됩니다. init.ora 파일을사용할경우 CONTROL_FILES 매개변수는 OMF에서생성된이름 (V$CONTROLFILE 또는 alertsid.log에서선택하여찾을수있음 ) 으로설정해야합니다. SPFILE을사용할경우 CONTROL_FILES 매개변수는데이터베이스생성시자동으로설정되고저장됩니다. 제어파일의위치는 DB_CREATE_ONLINE_LOG_DEST_n 매개변수에의해결정됩니다. 이매개변수가설정되지않은경우제어파일은 DB_CREATE_FILE_DEST 매개변수에서정의한위치에있게됩니다. 두매개변수모두설정되지않은경우제어파일은 OMF에속하지않습니다. 제어파일이 OMF에속하지않는경우 CONTROL_FILES 매개변수를초기화매개변수파일에설정해야합니다. 그렇지않으면오류가발생합니다. 파일생성시제어파일이름은ora_cmr7t30p.ctl로고유하게생성되며 alertsid.log에표시됩니다. Oracle9i Database Administration Fundamentals I 6-10

201 ó ñ ñ. V$CONTROLFILE: ÿ ñ. V$PARAMETER: ñ. V$CONTROLFILE_RECORD_SECTION: ó ñ. SHOW PARAMETER CONTROL_FILES:, ñ Copyright Oracle Corporation, All rights reserved. 제어파일의위치및이름을알려면 V$CONTROLFILE 뷰를질의하십시오. SELECT name FROM V$CONTROLFILE; NAME /u01/home/db03/oradata/u01/ctrl01.ctl /u01/home/db03/oradata/u01/ctrl01.ctl 2 rows selected. V$PARAMETER 뷰를사용할수도있습니다. SELECT name, value from V$PARAMETER WHERE name = 'control_files'; NAME Value control_files /u01/home/db03/oradata/u01/ctrl01.ctl Oracle9i Database Administration Fundamentals I 6-11

202 ( ) 제어파일의다른섹션에대한정보를얻으려면 V$CONTROLFILE_RECORD_SECTION 뷰를질의합니다. SQL> SELECT type, record_size, records_total, records_used 2 FROM v$controlfile_record_section 3 WHERE TYPE='DATAFILE'; TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED DATAFILE row selected. RECORDS_TOTAL 열은특정섹션에할당하는레코드수를지정합니다. 위의예를살펴보면 CREATE DATABASE 명령의 MAXDATAFILES 매개변수에의해데이터파일의최대개수가 30개로제한됨을알수있습니다. SHOW PARAMETER 명령을사용하여제어파일의위치를찾을수도있습니다. SQL> SHOW PARAMETER control_files; NAME TYPE VALUE control_files string $HOME/ORADATA/u01/ctrl01.ctl, $HOME/ORADATA/u02/ctrl02.ctl 여러동적성능뷰에있는정보는제어파일에서얻을수있습니다. 다음은여러가지예의목록입니다. V$BACKUP V$DATAFILE V$TEMPFILE V$TABLESPACE V$ARCHIVE V$LOG V$LOGFILE V$LOGHIST V$ARCHIVED_LOG V$DATABASE Oracle9i Database Administration Fundamentals I 6-12

203 ( ) Oracle Enterprise Manager를사용하여제어파일에대한정보얻기 OEM Console에서다음작업을수행합니다. 1. Databases > Storage로이동합니다. 2. Controlfile을누릅니다. 3. General 탭에서 All Initialization Parameters를누릅니다. 4. 값열의매개변수를수정합니다. 5. OK를누릅니다. Oracle9i Database Administration Fundamentals I 6-13

204 ñ ñ ó ñ. SPFILE ñ init.ora ñ OMF 6-14 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 6-14

205 6 ñ ññ ññ. ñ 6-15 Copyright Oracle Corporation, All rights reserved. 6 주 : SQL*Plus 또는 Oracle Enterprise Manager와 SQL*Plus Worksheet를사용하여연습을수행할수있습니다. Oracle9i Database Administration Fundamentals I 6-15

206 6: 1 기존제어파일의위치및이름은? 힌트 : 동적성능뷰 V$CONTROLFILE을질의합니다. 주 : V$PARAMETER를사용할수도있으며, SHOW PARAMETER 명령을실행하여제어파일의이름및위치를표시할수있습니다. 2 제어파일이없는데이터베이스를시작해보십시오. 매개변수파일에서제어파일의이름을변경하거나제어파일의이름을변경하여이러한사항을시뮬레이트할수있습니다. 결과는? 3 u02 디렉토리에서기존제어파일을다중화하고새제어파일의이름을 ctrl02.ctl로지정합니다. Oracle 서버에서새제어파일에기록할수있는지확인합니다. 예를들어, UNIX에서 chmod 660 명령을사용합니다. 두제어파일모두사용되고있는지확인하십시오. 힌트 : - 데이터베이스를종료하기전에 SPFILE(SCOPE=SPILE) 을변경하여새제어파일을초기화파일에추가합니다. - 데이터베이스를종료하고기존제어파일을 u02 디렉토리로복사한다음이름을 ctrl02.ctl로지정합니다. UNIX에서 chmod 660 명령을사용합니다. 이작업은강의용이며일반적으로는파일사용권한을변경하지않습니다. - 데이터베이스를시작합니다. - 동적성능뷰 V$CONTROLFILE 또는 V$PARAMETER를질의하거나 SHOW PARAMETER 명령을사용하여두제어파일이모두사용되고있는지확인합니다. 4 제어파일에서데이터파일섹션의초기크기는? 힌트 : 동적성능뷰 V$CONTROLFILE_RECORD_SECTION을질의합니다. Oracle9i Database Administration Fundamentals I 6-16

207 Copyright Oracle Corporation, All rights reserved.

208 ñ ñ ñ. ó ñ OMF 7-2 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 7-2

209 ñ ñ. ÿ 7-3 Copyright Oracle Corporation, All rights reserved. 리두로그파일은데이터베이스실패시트랜잭션을리두하는방법을제공합니다. 모든트랜잭션은리두로그버퍼에동기적으로기록되며매체실패시복구방식을제공할수있도록리두로그파일에쓰여집니다. 단, 직접로드가 NOLOGGING 절이활성화된객체에삽입하는것은예외입니다. 여기에는아직커밋되지않은트랜잭션, 실행취소세그먼트정보및스키마와객체관리문이포함됩니다. 리두로그파일은인스턴스실패같은상황에서데이터파일에기록되지않은커밋된데이터를복구하는데사용되며리두로그파일은복구용으로만사용됩니다. Oracle9i Database Administration Fundamentals I 7-3

210 Copyright Oracle Corporation, All rights reserved. 데이터베이스관리자는오라클데이터베이스에서온라인리두로그파일복사본을유지관리하도록설정하여어느한부분의장애로인한데이터베이스정보의손실을막을수있습니다. 온라인리두로그파일그룹 : 온라인리두로그파일의동일한복사본모음을온라인리두로그파일그룹이라고합니다. LGWR 백그라운드프로세스는그룹에있는모든온라인리두로그파일에동일한정보를동시에기록합니다. Oracle 서버에는데이터베이스의정상적인운영을위해적어도두개의온라인리두로그파일그룹이필요합니다. 온라인리두로그파일멤버 : 그룹에있는각온라인리두로그파일을멤버라고합니다. 그룹에있는각멤버는동일한로그시퀀스번호및크기를가집니다. Oracle 서버는각리두로그파일을고유하게식별하도록로그그룹에기록을시작할때마다로그시퀀스번호를지정합니다. 현재로그시퀀스번호는제어파일과모든데이터파일헤더에저장됩니다. Oracle9i Database Administration Fundamentals I 7-4

211 ( ) 초기리두로그파일생성 : 데이터베이스를생성하는동안온라인리두로그파일그룹및멤버의초기집합이생성됩니다. 다음매개변수는온라인리두로그파일개수를제한합니다. CREATE DATABASE 명령에서 MAXLOGFILES 매개변수는온라인리두로그파일그룹의절대최대값을지정합니다. MAXLOGFILES의최대값및기본값은운영체제에따라다릅니다. CREATE DATABASE 명령에서 MAXLOGMEMBERS 매개변수는그룹당최대멤버수를결정합니다. MAXLOGMEMBERS의최대값및기본값은운영체제에따라다릅니다. Oracle9i Database Administration Fundamentals I 7-5

212 ú ÿ ñ. LGWR ñ úñ. ñ. ñ. ñ. 7-6 Copyright Oracle Corporation, All rights reserved. ú Oracle 서버는데이터베이스의모든변경사항을리두로그버퍼에순차적으로기록합니다. 다음상황에서 LGWR 프로세스는리두항목을리두로그버퍼에서현재온라인리두로그파일그룹인온라인리두로그파일그룹중하나에기록합니다. 트랜잭션이커밋될때 리두로그버퍼가 1/3 찼을때 리두로그버퍼에변경된레코드가 1MB를초과한경우 DBWn가데이터베이스버퍼캐시에있는수정된블록을데이터파일에기록하기전리두로그파일은순환방식으로사용됩니다. 각리두로그파일그룹은로그가재사용될때마다겹쳐써지는로그시퀀스번호로식별됩니다. 로그스위치 : LGWR는온라인리두로그파일에순차적으로기록합니다. 현재온라인리두로그파일그룹이가득찼을때 LGWR는다음그룹에기록하기시작합니다. 이를로그스위치라고합니다. 사용할수있는마지막온라인리두로그파일이찼을때 LGWR는처음온라인리두로그파일그룹으로돌아가기록을다시시작합니다. Oracle9i Database Administration Fundamentals I 7-6

213 ú ( ) 체크포인트 : 체크포인트동안다음작업이발생합니다. DBWn는체크포인트되고있는로그가처리한많은더티데이터베이스버퍼를데이터파일에기록합니다. DBWn가기록하는버퍼의개수는 FAST_START_MTTR_TARGET 매개변수가지정된경우이매개변수에의해결정되며기본값은 0입니다. 주 : FAST_START_MTTR_TARGET 매개변수에대한자세한내용은 Oracle9i Database Administration Fundamentals II ( 한글판 ) 과정에서설명합니다. 체크포인트백그라운드프로세스 CKPT는제어파일을갱신하여체크포인트가정상적으로완료되었음을나타냅니다. 체크포인트가로그스위치에의해발생한경우 CKPT는데이터파일의헤더도갱신합니다. 체크포인트는데이터베이스에있는모든데이터파일또는특정데이터파일에대해서만발생할수있습니다. 예를들어, 체크포인트는다음상황에서발생합니다. 모든로그스위치발생시 인스턴스가 NORMAL, TRANSACTIONAL 또는 IMMEDIATE 옵션으로종료된경우 초기화매개변수 FAST_START_MTTR_TARGET을설정하여시행하는경우 데이터베이스관리자가수동으로요청한경우 ALTER TABLESPACE [OFFLINE NORMAL READ ONLY BEGIN BACKUP] 명령으로인해특정데이터파일에서체크포인트가발생한경우초기화매개변수 LOG_CHECKPOINTS_TO_ALERT를 TRUE로설정했을경우각체크포인트에대한정보는 alert_sid.log 파일에기록됩니다. 이매개변수의기본값인 FALSE는체크포인트를기록하지않습니다. Oracle9i Database Administration Fundamentals I 7-7

214 ñ : ALTER SYSTEM SWITCH LOGFILE; ñ : FAST_START_MTTR_TARGET FAST_START_MTTR_TARGET = 600 ALTER SYSTEM CHECKPOINT ALTER SYSTEM CHECKPOINT; 7-8 Copyright Oracle Corporation, All rights reserved. 로그스위치및체크포인트는이전에식별된데이터베이스작업의일정시점에수행되지만 DBA가로그스위치또는체크포인트발생을강제시행할수있습니다. 체크포인트시행 : FAST_START_MTTR_TARGET 매개변수는우선적으로사용되는다음매개변수대신사용됩니다. FAST_START_IO_TARGET LOG_CHECKPOINT_TIMEOUT FAST_START_MTTR_TARGET을사용할경우에는이러한매개변수를사용하면안됩니다. 앞선예의 FAST_START_MTTR_TARGET을설정하면인스턴스복구시간이 600초이상걸리지않을것입니다. 데이터베이스는다른매개변수도이에맞추어조정합니다. Oracle9i Database Administration Fundamentals I 7-8

215 ALTER DATABASE ADD LOGFILE GROUP 3 ('$HOME/ORADATA/u01/log3a.rdo', '$HOME/ORADATA/u02/log3b.rdo') SIZE 1M; log1a.rdo log2a.rdo log3a.rdo log1b.rdo log2b.rdo log3b.rdo Copyright Oracle Corporation, All rights reserved. 경우에따라추가로그파일그룹을생성할필요가있습니다. 예를들어, 그룹을추가하면가용성문제를해결할수있습니다. 온라인리두로그파일의새그룹을생성하려면다음 SQL 명령을사용합니다. ALTER DATABASE [database] ADD LOGFILE [GROUP integer] filespec [, [GROUP integer] filespec]...] 이파일명세로멤버의이름및위치를지정합니다. 각리두로그파일그룹에대해GROUP 매개변수값을선택할수있습니다. 이매개변수를생략하면 Oracle 서버는이매개변수값을자동생성합니다. Oracle9i Database Administration Fundamentals I 7-9

216 ALTER DATABASE ADD LOGFILE MEMBER '$HOME/ORADATA/u04/log1c.rdo' TO GROUP 1, '$HOME/ORADATA/u04/log2c.rdo' TO GROUP 2, '$HOME/ORADATA/u04/log3c.rdo' TO GROUP 3; log1a.rdo log2a.rdo log3a.rdo log1b.rdo log2b.rdo log3b.rdo log1c.rdo 1 log2c.rdo 2 log3c.rdo Copyright Oracle Corporation, All rights reserved. 다음 ALTER DATABASE ADD LOGFILE MEMBER 명령을사용하여기존리두로그파일그룹에새멤버를추가할수있습니다. ALTER DATABASE [database] ADD LOGFILE MEMBER [ 'filename' [REUSE] [, 'filename' [REUSE]]... TO {GROUP integer ('filename'[, 'filename']...) } ]... 파일이데이터베이스서버의기본디렉토리에생성되지않도록로그파일멤버의전체지정이름을사용합니다. 해당파일이이미존재하는경우크기가동일해야하며 REUSE 옵션을지정해야합니다. 하나이상의그룹멤버를지정하거나그룹번호를지정하여대상그룹을식별할수있습니다. Oracle9i Database Administration Fundamentals I 7-10

217 ( ) Oracle Enterprise Manager를사용하여리두로그파일그룹및멤버추가 OEM Console에서다음작업을수행합니다. 1. Databases > Storage로이동합니다. 2. Redo Log Groups 폴더를누릅니다. 3. 마우스오른쪽버튼을눌러 Create를선택합니다. 4. General 탭에서리두로그파일그룹및멤버를생성하기위한정보를입력합 니다. 5. Create를누릅니다. Oracle9i Database Administration Fundamentals I 7-11

218 ALTER DATABASE DROP LOGFILE GROUP 3; log1a.rdo log2a.rdo log3a.rdo Copyright Oracle Corporation, All rights reserved. 온라인리두로그파일그룹의크기를증가시키거나감소시키려면새크기의새온라인리두로그파일그룹을추가한다음이전그룹을삭제합니다. 다음 ALTER DATABASE DROP LOGFILE 명령을사용하여전체온라인리두로그파일그룹을삭제할수있습니다. ALTER DATABASE [database] DROP LOGFILE {GROUP integer ('filename'[, 'filename']...)} [,{GROUP integer ('filename'[, 'filename']...)}]... 제한사항 : 인스턴스에는온라인리두로그파일그룹이최소두개필요합니다. 활성화된그룹이나현재사용중인그룹은삭제할수없습니다. 온라인리두로그파일그룹을삭제할때운영체제파일은삭제되지않습니다. Oracle9i Database Administration Fundamentals I 7-12

219 ALTER DATABASE DROP LOGFILE MEMBER '$HOME/ORADATA/u04/log3c.rdo'; log1a.rdo log1b.rdo log1c.rdo 1 log1a.rdo log1b.rdo log2c.rdo Copyright Oracle Corporation, All rights reserved. 온라인리두로그파일멤버가 INVALID 상태이므로이멤버를삭제하려고할수도있습니다. 하나이상의특정온라인리두로그파일멤버를삭제하려는경우다음 ALTER DATABASE DROP LOGFILE MEMBER 명령을사용합니다. ALTER DATABASE [database] DROP LOGFILE MEMBER 'filename'[, 'filename']... 제한사항 : 삭제하려는멤버가마지막으로유효한그룹멤버인경우그멤버를삭제할수없습니다. 현재사용하는그룹인경우로그파일스위치를시행해야멤버를삭제할수있습니다. 데이터베이스가 ARCHIVELOG 모드에서실행중이고멤버가속한로그파일그룹이아카이브되지않은경우그멤버를삭제할수없습니다. 온라인리두로그파일멤버를삭제할때 OMF 기능을사용하지않을경우운영체제파일은삭제되지않습니다. Oracle9i Database Administration Fundamentals I 7-13

220 Storage Manager Oracle Enterprise Manager를사용하여리두로그파일그룹및멤버를삭제합니다. OEM Console에서다음작업을수행합니다. 1. Databases > Storage로이동합니다. 그룹을제거하려면다음작업을수행합니다. 1. Redo Log Groups 폴더를확장하고제거하려는리두로그파일그룹을선택합니다. 2. 마우스오른쪽버튼을눌러 Remove를선택합니다. 3. 제거를확인합니다. 멤버를제거하려면다음작업을수행합니다. 1. Redo Log Groups 폴더를확장하고삭제하려는멤버를포함하는그룹으로이동합니다. 2. General 페이지에서멤버를강조표시하고마우스오른쪽버튼을눌러 Remove를선택합니다. 3. 제거를확인합니다. Oracle9i Database Administration Fundamentals I 7-14

221 ñ ñ ALTER DATABASE CLEAR LOGFILE ñ ALTER DATABASE CLEAR LOGFILE '$HOME/ORADATA/u01/log2a.rdo'; 7-15 Copyright Oracle Corporation, All rights reserved. 온라인리두로그파일의위치는이파일이름을바꿔서변경할수있습니다. 온라인리두로그파일이름을바꾸기전에새온라인리두로그파일이존재하는지확인합니다. Oracle 서버는제어파일에서포인터만변경하고운영체제파일을물리적으로생성하거나그이름을바꾸지는않습니다. 다음 ALTER DATABASE RENAME FILE 명령은온라인리두로그파일이름을변경합니다. SQL> ALTER DATBASE [database} 2 RENAME FILE filename [, filename ] 3 TO filename ] Oracle9i Database Administration Fundamentals I 7-15

222 Storage Manager Oracle Enterprise를사용하여리두로그파일그룹및멤버재배치또는이름바꾸기 OEM Console에서다음작업을수행합니다. 1. Databases > Storage > Redo Log Groups로이동합니다. ;7 리두로그파일그룹을선택합니다. 7 리두로그파일멤버의파일이름또는파일디렉토리를수정하여멤버이름을 바꾸거나멤버를재배치합니다. 7 Apply를누릅니다. Oracle9i Database Administration Fundamentals I 7-16

223 ? Copyright Oracle Corporation, All rights reserved. 데이터베이스인스턴스에대한온라인리두로그파일의적당한개수를결정하려면여러구성을테스트해야합니다. 경우에따라서데이터베이스인스턴스는그룹을두개만요구할수있으며또는그룹이 LGWR에서항상사용될수있음을보장하기위해데이터베이스인스턴스는추가그룹을요구할수도있습니다. 예를들어, 체크포인트가완료되지않았거나그룹이아카이브되지않았으므로 LGWR가그룹을자주기다려야한다는내용이 LGWR 추적파일또는 ALERT 파일메시지에표시되면그룹을추가할필요가있습니다. Oracle 서버에서다중화된그룹이다양한수의멤버를포함할수있더라도대칭구성을생성하도록합니다. 비대칭구성은디스크장애와같은비정상적인상황에서임시결과로만필요해야합니다. 온라인리두로그파일위치 : 온라인리두로그파일을다중화할때그룹멤버를다른디스크에분리합니다. 이렇게하면한멤버를사용할수없더라도다른멤버를사용할수있으므로인스턴스는종료되지않습니다. ARCn 과 LGWR 백그라운드프로세스간의경합을줄이기위해아카이브로그파일과온라인리두로그파일을다른디스크에분리합니다. Oracle9i Database Administration Fundamentals I 7-17

224 ( ) LGWR와 DBWn 간의경합을줄이고매체고장시데이터파일과온라인리두로그파일이모두손실되는위험을줄이기위해데이터파일과온라인리두로그파일을다른디스크에분리해야합니다. 온라인리두로그파일크기조정 : 온라인리두로그파일의최소크기는 50KB이고최대크기는운영체제에따라다릅니다. 다른그룹의멤버는크기가다를수있지만크기가다른그룹을갖는것은아무런이점이없습니다. 크기가다른그룹은온라인리두로그파일그룹멤버의크기를변경하려할경우에임시결과로만필요해야합니다. 이경우크기가다른새온라인리두로그파일그룹을생성한후이전그룹을제거해야합니다. 다음상황은온라인리두로그파일의구성에영향을줄수있습니다. 로그스위치및체크포인트수 리두항목의수및양 예를들어, 아카이브가활성화된경우테이프의용량과같은저장매체의용량 Oracle9i Database Administration Fundamentals I 7-18

225 OMF DB_CREATE_ONLINE_LOG_DEST_n DB_CREATE_ONLINE_LOG_DEST_1 DB_CREATE_ONLINE_LOG_DEST_2 ALTER DATABASE ADD LOGFILE; ALTER DATABASE DROP LOGFILE GROUP 3; 7-19 Copyright Oracle Corporation, All rights reserved. OMF DB_CREATE_ONLINE_LOG_DEST_n 매개변수정의 : OMF가관리하는온라인리두로그파일을생성하려면 DB_CREATE_ONLINE_LOG_DEST_n 매개변수를정의해야합니다. 이매개변수는 n 값으로식별되는각다중화된복사본에대해설정되어야합니다. 위의예에서두그룹은각각두개의멤버로생성되었습니다. 이름은 ora_1_wo94n2xi.log와같이자동으로생성되어 alertsid.log에표시되며기본크기는 100MB입니다. 온라인리두로그파일의새그룹을생성할때 DBA는 ALTER DATABASE ADD LOGFILE 명령을사용합니다. 이명령은파일을지정할필요가없도록수정되었습니다. 슬라이드의예제에서는각각 DB_CREATE_ONLINE_LOG_DEST_1 및 DBVCREATE_ONLINE_LOG_DEST_2에서정의된위치에있는두멤버로로그파일을추가합니다. 로그파일멤버의고유한파일이름은자동으로생성되어 alertsid.log에표시되며기본크기는 100MB입니다. 그룹삭제 : 위의예제에서는로그파일그룹 3 및그룹3의각OMF 로그파일멤버와연관된해당운영체제파일을삭제합니다. 아카이브된리두로그파일및 OMF: 아카이브된리두로그파일은 OMF가될수없습니다. Oracle9i Database Administration Fundamentals I 7-19

226 ò ò ó ñ ñ. V$LOG V$LOGFILE 7-20 Copyright Oracle Corporation, All rights reserved. V$LOG 뷰 : 다음질의는제어파일에서온라인리두로그파일에대한정보를반환합니다. SQL> SELECT group#, sequence#, bytes, members, status 2 FROM v$log; GROUP# SEQUENCE# BYTES MEMBERS STATUS CURRENT INACTIVE 2 rows selected. 다음항목은 STATUS 열에가장일반적인값입니다. UNUSED: 온라인리두로그파일그룹을기록한적이없음을나타냅니다. 이값은방금추가된온라인리두로그파일의상태입니다. CURRENT: 현재온라인리두로그파일그룹임을나타냅니다. 온라인리두로그파일그룹이활성화되어있음을암시합니다. ACTIVE: 온라인리두로그파일그룹이활성화되어있으나현재온라인리두로그파일그룹이아님을나타냅니다. 온라인리두로그파일그룹은고장복구에필요하고블록복구에사용될수있으며아카이브될수도있고안될수도있습니다. Oracle9i Database Administration Fundamentals I 7-20

227 ( ) CLEARING: 로그가 ALTER DATABASE CLEAR LOGFILE 명령후에비어있는로그로재생성중임을나타내며로그가지워진상태는 UNUSED 로변경됩니다. CLEARING_CURRENT: 현재로그파일이닫힌스레드에대해지워지고있음을나타냅니다. 새로그헤더를기록하는중 I/O 오류같은스위치장애가발생한경우로그는이상태가될수있습니다. INACTIVE: 인스턴스복구에온라인리두로그그룹이더이상필요하지않음을나타내며온라인리두로그그룹은아카이브될수도있고안될수도있습니다. V$LOGFILE 뷰 : 그룹의모든멤버이름을알려면 V$LOGFILE 뷰를질의합니다. SQL> SELECT member FROM V$LOGFILE; MEMBER /u01/home/db03/oradata/u03/log02a.rdo /u01/home/db03/oradata/u03/log01a.rdo STATUS 열값은다음중하나일수있습니다. INVALID: 파일을액세스할수없음을나타냅니다. STALE: 파일내용이불완전함을나타냅니다. DELETED: 파일이더이상사용되지않음을나타냅니다. 공백은파일이사용중임을나타냅니다. Oracle9i Database Administration Fundamentals I 7-21

228 ÿ ñ ñ. ARCHIVELOG ñ. : ÿ ÿ ÿ ÿ ñ. : ú ñ. NOARCHIVELOG ÿ ñ Copyright Oracle Corporation, All rights reserved. ÿ 데이터베이스를 ARCHIVELOG 모드와 NOARCHIVELOG 모드중에서어느모드에서작동하도록구성할지여부는 DBA( 데이터베이스관리자 ) 가결정해야하는중요한문제중하나입니다. NOARCHIVELOG 모드 NOARCHIVELOG 모드에서는온라인리두로그파일이채워지고로그스위치가발생할때마다온라인리두로그파일을겹쳐씁니다. LGWR는그룹에대한체크포인트가완료될때까지리두로그파일그룹을겹쳐쓰지않습니다. ARCHIVELOG 모드데이터베이스가 ARCHIVELOG 모드에서실행하도록구성되면채워진온라인리두파일의비활성그룹은아카이브되어야합니다. 데이터베이스의모든변경사항은온라인리두로그파일에기록되므로데이터베이스관리자는물리적백업과아카이브된온라인리두로그파일을사용하여커밋된데이터를손실하지않고데이터베이스를복구할수있습니다. 온라인리두로그파일을아카이브하는방법에는다음두가지가있습니다. 수동 자동 ( 권장됨 ) Oracle9i Database Administration Fundamentals I 7-22

229 ÿ ( ) ARCHIVELOG 모드 ( 계속 ): LOG_ARCHIVE_START 초기화매개변수는인스턴스가시작될때아카이브가자동으로수행되어야할지아니면수동으로수행되어야할지여부를나타냅니다. TRUE: 아카이브가자동임을나타냅니다. ARCn은로그스위치가발생할때마다채워진로그그룹의아카이브를시작합니다. FALSE: 기본값입니다. DBA가채워진리두로그파일을수동으로아카이브함을나타냅니다. DBA는온라인리두로그파일을아카이브하려할때마다수동으로명령을실행해야합니다. 전체또는특정온라인리두로그파일을수동으로아카이브할수있습니다. Oracle9i Database Administration Fundamentals I 7-23

230 ÿ ARCn ú SQL ú ÿ : ÿ ñ.,, (SCN) ÿ ñ ÿ ñ. ñ ñ ñ. ARCn ñ DBA 7-24 Copyright Oracle Corporation, All rights reserved. ÿ 아카이브된로그에대한정보는 V$INSTANCE에서얻을수있습니다. SQL> SELECT archiver 2 FROM v$instance; ARCHIVE STOPPED 1 row selected. 주 : 아카이브에대한자세한내용은 Oracle9i Database Administration Fundamentals II ( 한글판 ) 과정에서설명합니다. Oracle9i Database Administration Fundamentals I 7-24

231 ÿ ( ) Oracle Enterprise Manager를사용하여아카이브정보얻기 OEM Console에서다음작업을수행합니다. 1. Databases > Instance로이동합니다. 2. Configuration을누릅니다. 3. General 페이지는다음을식별합니다. Database and Instance Information-Archive Log Mode: 데이터베이스가실행되는모드식별 All Initialization Parameters: 아카이브에사용되는매개변수식별 4. Recovery 페이지를사용하여모드, 파일이름형식및로그대상과같은구체적인아카이브항목을설정하고식별할수있습니다. Oracle9i Database Administration Fundamentals I 7-25

232 ñ ñ ó ñ. ñ OMF 7-26 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 7-26

233 7 ñ ññ. OMF 7-27 Copyright Oracle Corporation, All rights reserved. 7 주 : SQL*Plus 또는 Oracle Enterprise Manager와 SQL*Plus Worksheet를사용하여연습을수행할수있습니다. Oracle9i Database Administration Fundamentals I 7-27

234 7: 1 기존로그파일의개수및위치를나열하고데이터베이스에있는리두로그파일그룹및멤버의개수를표시하십시오. 힌트 : - 동적뷰 V$LOGFILE를질의합니다. - 동적뷰 V$LOG를사용합니다. 2 데이터베이스구성모드는? 아카이브기능이활성화되었습니까? 힌트 : - V$DATABASE 동적성능뷰를질의합니다. - V$INSTANCE 동적성능뷰를질의합니다. 3 다음의이름지정규칙을사용하여 u04에있는데이터베이스의각그룹에리두로그파일멤버를추가하십시오. 그룹 1에멤버추가 : log01b.rdo 그룹 2에멤버추가 : log02b.rdo 결과를확인하십시오. 힌트 : - ALTER DATABASE ADD LOGFILE MEMBER 명령을실행하여각그룹에리두로그파일멤버를추가합니다. - V$LOGFILE 동적성능뷰를질의하여결과를확인합니다. 4 다음이름지정규칙을사용하여 u03 및 u04에있는두멤버로데이터베이스에리두로그그룹을추가하십시오. 그룹 3 추가 : log03a.rdo 및 log03b.rdo 결과를확인하십시오. 힌트 : - ALTER DATABASE ADD LOGFILE 명령을실행하여새그룹을생성합니다. - V$LOGFILE 동적성능뷰를질의하여새그룹에추가되는새멤버의이름을표시합니다. - V$LOG 동적성능뷰를질의하여리두로그파일그룹및멤버의개수를표시합니다. Oracle9i Database Administration Fundamentals I 7-28

235 7: ( ) 5 4단계에서생성된리두로그파일그룹을제거하십시오. 힌트 : - ALTER DATABASE DROP LOGFILE GROUP 명령을실행하여로그그룹을제거합니다. - 동적뷰 V$LOG를질의하여결과를확인합니다. - 그룹에대한운영체제파일을제거합니다. 6 온라인리두로그파일의크기를모두 1024KB로조정하십시오. ( 로그파일의크기를다시조정할수없으므로새로그파일을추가하고기존파일을삭제해야합니다.) 힌트 : - ALTER DATABASE ADD LOGFILE GROUP 명령을실행하여크기가 1024KB인두개의새그룹을추가합니다. - 동적뷰 V$LOG를질의하여활성그룹을검사합니다. - ALTER SYSTEM SWITCH LOGFILE 명령을실행하여로그스위치를강제시행하고그룹스테이지를비활성으로변경합니다. 필요한로그스위치의수는상황에따라달라집니다. - ALTER DATABASE DROP LOGFILE 명령을실행하여비활성그룹을제거합니다. - V$LOG 동적뷰를질의하여결과를확인합니다. Oracle9i Database Administration Fundamentals I 7-29

236 Oracle9i Database Administration Fundamentals I 7-30

237 Copyright Oracle Corporation, All rights reserved.

238 ñ ñ ñ. OMF(Oracle Managed Files) 8-2 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 8-2

239 Oracle ñ. ñ. ÿ ñ. ñ ÿ ñ. ñ. ñ. 8-3 Copyright Oracle Corporation, All rights reserved. 데이터베이스, 테이블스페이스및데이터파일은밀접하게연관되어있으나이들사이에는중요한차이점이있습니다. 오라클데이터베이스는테이블스페이스라고하는하나이상의논리적저장영역단위로구성되며이러한테이블스페이스는데이터베이스의모든데이터를집합적으로저장합니다. 오라클데이터베이스의각테이블스페이스는데이터파일이라고하는하나이상의파일로구성되며이러한데이터파일은 Oracle을실행중인운영체제를따르는물리적구조입니다. 데이터베이스의데이터는데이터베이스의각테이블스페이스를구성하는데이터파일에집합적으로저장됩니다. 예를들어, 가장단순한오라클데이터베이스는한테이블스페이스와한데이터파일로구성됩니다. 또는각각두개의데이터파일로구성되는세개의테이블스페이스 ( 총 6개의데이터파일 ) 로구성된데이터베이스도있을수있습니다. Oracle9i Database Administration Fundamentals I 8-3

240 SYSTEM È ß SYSTEM SYSTEM òÿ òÿ 8-4 Copyright Oracle Corporation, All rights reserved. DBA는제어성을높이고편리한유지관리를위해테이블스페이스를생성합니다. Oracle 서버는두가지유형의테이블스페이스즉, SYSTEM 및기타테이블스페이스를인식합니다. SYSTEM 테이블스페이스 : 데이터베이스와함께생성됩니다. 모든데이터베이스에서필요합니다. 내장프로그램단위를포함하는데이터딕셔너리를포함합니다. SYSTEM 실행취소세그먼트를포함합니다. 사용자데이터포함을허용하더라도포함하지않아야합니다. 비SYSTEM 테이블스페이스 : 데이터베이스관리가더욱유연해집니다. 실행취소세그먼트, 임시세그먼트, 응용프로그램데이터세그먼트및응용프로그램인덱스세그먼트를분리합니다. 백업요구사항에따라데이터를분리합니다. 동적데이터와정적데이터를분리합니다. 사용자객체에할당된공간의양을제어합니다. Oracle9i Database Administration Fundamentals I 8-4

241 ñ ÿ ñ. CREATE TABLESPACE CREATE TABLESPACE userdata DATAFILE '/u01/oradata/userdata01.dbf' SIZE 100M AUTOEXTEND ON NEXT 5M MAXSIZE 200M; 8-5 Copyright Oracle Corporation, All rights reserved. CREATE TABLESPACE 명령을사용하여테이블스페이스를생성합니다. CREATE TABLESPACE tablespace [DATAFILE clause] [MINIMUM EXTENT integer[k M]] [BLOCKSIZE integer [K]] [LOGGING NOLOGGING] [DEFAULT storage_clause ] [ONLINE OFFLINE] [PERMANENT TEMPORARY] [extent_management_clause] [segment_management_clause] Oracle9i Database Administration Fundamentals I 8-5

242 ( ) 설명 : Tablespace: 생성할테이블스페이스의이름입니다. DATAFILE: 테이블스페이스를구성하는데이터파일을지정합니다. MINIMUM EXTENT: 테이블스페이스에서사용되는모든확장영역의크기는정수배수로 KB 또는 MB 단위의크기를 K 또는 M을사용하여지정합니다. BLOCKSIZE: 테이블스페이스의비표준블록크기를지정합니다. 이절을지정하려면 DB_CACHE_SIZE 및하나이상의 DB_nK_CACHE_SIZE 매개변수가설정되어야하며이절에서지정한정수는하나의 DB_nK_CACHE_SIZE 매개변수설정에대응해야합니다. LOGGING: 기본적으로테이블스페이스의모든테이블, 인덱스및분할영역변경사항을리두에기록함을지정하며기본값은 LOGGING입니다. NOLOGGING: 기본적으로테이블스페이스의모든테이블, 인덱스및분할영역변경사항을리두에기록하지않음을지정하며 NOLOGGING은직접로드와같은일부 DML 및 DDL 명령에만영향을줍니다. DEFAULT: 테이블스페이스에서생성된모든객체에기본저장영역매개변수를지정합니다. OFFLINE: 생성즉시테이블스페이스를사용할수없습니다. PERMANENT: 테이블스페이스를사용하여영구객체를보유할수있음을지정합니다. TEMPORARY: 테이블스페이스를임시객체 ( 예를들어, ORDER BY 절로인한암시적정렬에서사용되는세그먼트 ) 보유에만사용할수있도록지정합니다. EXTENT MANAGEMENT LOCAL 절이나 BLOCKSIZE 절은지정할수없습니다. extent_management_clause: 테이블스페이스의확장영역관리방법을지정하며이절은이단원의다음부분에서설명합니다. segment_management_clause: 지역적으로관리되는영구테이블스페이스에서만의미가있습니다. Oracle이사용가능영역목록이나비트맵을사용하여테이블스페이스의세그먼트에서이미사용된영역과사용가능영역을추적해야할지여부를지정합니다. datafile_clause:== filename [SIZE integer[k M] [REUSE] [ autoextend_clause ] filename: 테이블스페이스의데이터파일이름입니다. SIZE: KB 또는 MB 단위의크기를 K 또는 M을사용하여지정합니다. REUSE: Oracle 서버에서기존파일을재사용할수있도록합니다. autoextend_clause: 데이터파일의자동확장을활성화하거나비활성화합니다. NEXT: 추가확장영역이필요한경우디스크공간의다음증분크기 ( 바이트단위 ) 가자동으로할당되도록지정합니다. Oracle9i Database Administration Fundamentals I 8-6

243 ( ) 설명 : MAXSIZE: 데이터파일의자동확장에사용할수있는최대디스크공간을지정합니다. UNLIMITED: 데이터파일에할당할수있거나임시파일이제한되지않는디스크공간을지정합니다. 참조 : 자세한내용은 Oracle9i SQL Reference 및 Oracle9i Concepts 를참조하십시오. Oracle9i Database Administration Fundamentals I 8-7

244 ( ) Oracle Enterprise Manager를사용하여테이블스페이스생성 OEM Console에서다음작업을수행합니다. 1. Databases > Storage > Tablespaces로이동합니다. 2. 마우스오른쪽버튼을눌러 Create를선택합니다. 3. General 탭및Storage 탭에서테이블스페이스에필요한정보를입력합니다. 4. Create를누릅니다. Oracle9i Database Administration Fundamentals I 8-8

245 þ : þ þ ó ÿ ß : ß òþ ò ÿ ò ò ÿ 8-9 Copyright Oracle Corporation, All rights reserved. 테이블스페이스는확장영역에공간을할당합니다. 테이블스페이스를생성하여사용가능영역과사용된공간을추적하는두가지방법중하나를사용할수있습니다. 지역적으로관리되는테이블스페이스 : 확장영역이비트맵을통해테이블스페이스내에서관리되며비트맵의각비트는블록또는블록그룹에대응됩니다. 재사용을위해확장영역을할당하거나비우는경우 Oracle 서버에서는비트맵값을변경하여블록의새상태를나타냅니다. Oracle9i에서는지역적으로관리되는테이블스페이스가기본관리방식입니다. 딕셔너리관리테이블스페이스 : 확장영역이데이터딕셔너리에의해관리됩니다. Oracle 서버에서는확장영역이할당되거나할당이해제될때마다데이터딕셔너리에서해당테이블을갱신합니다. Oracle9i Database Administration Fundamentals I 8-9

246 þ ß ò ò CREATE TABLESPACE userdata DATAFILE '/u01/oradata/userdata01.dbf' SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K; 8-10 Copyright Oracle Corporation, All rights reserved. þ EXTENT MANAGEMENT 절의 LOCAL 옵션은지역적으로관리되는테이블스페이스를지정합니다. 기본적으로테이블스페이스는지역적으로관리됩니다. extent_management_clause: [ EXTENT MANAGEMENT [ DICTIONARY LOCAL [ AUTOALLOCATE UNIFORM [SIZE integer[k M]] ] ] ] 설명 : DICTIONARY: 딕셔너리테이블을사용하여테이블스페이스를관리함을지정합니다. LOCAL: 비트맵을통해테이블스페이스를지역적으로관리함을지정합니다. LOCAL을지정한경우에는 DEFAULT storage_clause, MINIMUM EXTENT 또는 TEMPORARY를지정할수없습니다. AUTOALLOCATE: 시스템에서테이블스페이스를관리함을지정합니다. 사용자는확장영역크기를지정할수없으며 AUTOALLOCATE가기본값입니다. UNIFORM: SIZE 바이트의일정한확장영역으로테이블스페이스를관리함을지정합니다. KB 또는 MB 단위의확장영역크기를 K 또는 M을사용하여지정합니다. 기본크기는 1MB 입니다. Oracle9i Database Administration Fundamentals I 8-10

247 þ ( ) EXTENT MANAGEMENT 절은다음과같이다양한 CREATE 명령에서사용될수있습니다. SYSTEM이아닌영구테이블스페이스인경우 CREATE TABLESPACE 명령에 EXTENT MANAGEMENT LOCAL을지정할수있습니다. 임시테이블스페이스인경우 CREATE TEMPORARY TABLESPACE 명령에 EXTENT MANAGEMENT LOCAL을지정할수있습니다. þ : 지역적으로관리되는테이블스페이스는딕셔너리관리테이블스페이스에비해다음장점을가집니다. 지역관리는반복적인영역관리작업을피하는데이러한반복적인작업은확장영역에서공간소모또는해제로인해실행취소세그먼트또는데이터딕셔너리테이블에서공간을소모하거나해제하는다른작업이발생하는경우딕셔너리관리테이블스페이스에서발생할수있습니다. 지역적으로관리되는테이블스페이스는데이터딕셔너리테이블에사용가능영역을기록하지않으므로이러한테이블의경합을줄입니다. 확장영역의로컬관리는인접한사용가능공간을자동추적하므로사용가능한확장영역을통합할필요가없습니다. 지역적으로관리되는확장영역의크기는시스템에의해자동으로결정됩니다. 테이블스페이스할당량정보와같은특별한경우를제외하고확장영역비트맵의변경사항은데이터딕셔너리에있는테이블을갱신하지않으므로실행취소정보를생성하지않습니다. Oracle9i Database Administration Fundamentals I 8-11

248 ß ß ÿ ÿ ñ CREATE TABLESPACE userdata DATAFILE '/u01/oradata/userdata01.dbf' SIZE 500M EXTENT MANAGEMENT DICTIONARY DEFAULT STORAGE (initial 1M NEXT 1M PCTINCREASE 0); 8-12 Copyright Oracle Corporation, All rights reserved. ß 딕셔너리관리테이블스페이스에있는세그먼트는사용자정의된저장영역을가질수있습니다. 이저장영역은지역적으로관리되는테이블스페이스보다더유연성이있지만효율성은떨어집니다. Oracle9i Database Administration Fundamentals I 8-12

249 ñ ÿ DATAFILE EXTENT MANAGEMENT CREATE UNDO TABLESPACE undo1 DATAFILE '/u01/oradata/undo01.dbf' SIZE 40M; 8-13 Copyright Oracle Corporation, All rights reserved. 실행취소테이블스페이스는자동실행취소관리와함께사용됩니다. 자동실행취소관리에대한자세한내용은 " 실행취소데이터관리 " 단원을참조하십시오. CREATE UNDO TABLESPACE tablespace [DATAFILE clause] Oracle9i Database Administration Fundamentals I 8-13

250 þ CREATE TEMPORARY TABLESPACE temp TEMPFILE '/u01/oradata/temp01.dbf' SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 4M; 8-14 Copyright Oracle Corporation, All rights reserved. 정렬세그먼트에만사용하는임시테이블스페이스를지정하여정렬작업용공간을효과적으로관리할수있습니다. 영구스키마객체는임시테이블스페이스에상주할수없습니다. 세그먼트를여러정렬작업이공유할때정렬세그먼트즉, 임시세그먼트가사용됩니다. 메모리에비해너무큰여러정렬작업을수행할때임시테이블스페이스를사용하면성능을개선할수있습니다. 인스턴스의처음정렬작업시주어진임시테이블스페이스에정렬세그먼트가생성됩니다. 정렬세그먼트는세그먼트크기가해당인스턴스에서실행중인모든활성정렬의전체저장영역수요이상이될때까지확장영역을할당하여확장합니다. Oracle9i Database Administration Fundamentals I 8-14

251 2 지역적으로관리되는임시테이블스페이스에는임시데이터파일 ( 임시파일 ) 이있으며이파일은다음을제외하고일반데이터파일과비슷합니다. 임시파일은항상 NOLOGGING 모드로설정됩니다. 임시파일을읽기전용으로설정할수없습니다. 임시파일이름을바꿀수없습니다. ALTER DATABASE 명령으로임시파일을생성할수없습니다. 임시파일은읽기전용데이터베이스에필요합니다. 매체복구는임시파일을복구하지않습니다. 임시테이블스페이스에서정렬성능을최적화하려면 UNIFORM SIZE를 SORT_AREA_SIZE 매개변수의배수가되도록설정합니다. Oracle9i Database Administration Fundamentals I 8-15

252 2 Oracle Enterprise Manager를사용하여임시테이블스페이스생성 OEM Console에서다음작업을수행합니다. 1. Databases > Storage > Tablespaces로이동합니다. 2. 마우스오른쪽버튼을눌러 Create를선택합니다. 3. General 탭에세부사항을입력합니다. 4. Type 영역에서 Temporary 옵션을선택합니다. 5. Storage 탭을누른다음저장영역정보를입력합니다. 6. Create를누릅니다. Oracle9i Database Administration Fundamentals I 8-16

253 þ ñ. SYSTEM ñ ñ. ñ ñ. CREATE DATABASE ÿ ALTER DATABASE ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp; 8-17 Copyright Oracle Corporation, All rights reserved. 기본임시테이블스페이스없이데이터베이스를생성할경우 SYSTEM 테이블스페이스는 TEMPORARY TABLESPACE 절없이생성된임의의사용자에할당됩니다. 또한 SYSTEM 테이블스페이스가기본임시테이블스페이스라는경고가 alert_sid.log에기록됩니다. 데이터베이스생성시기본임시테이블스페이스를생성하면 SYSTEM 테이블스페이스는임시공간에사용될수없습니다. 데이터베이스생성후임시테이블스페이스를생성하고데이터베이스를변경하여기본임시테이블스페이스를설정할수있습니다. SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp; 기본임시테이블스페이스가정의되면임시테이블스페이스에명시적으로할당되지않은모든사용자가이테이블스페이스에할당됩니다. 기본임시데이터베이스는 ALTER DATABASE DEFAULT TEMPORARY TABLESPACE 명령을사용하여언제든지변경할수있습니다. 기본임시테이블스페이스가변경되면기본임시테이블스페이스에할당된임의의사용자가새기본값으로재할당됩니다. Oracle9i Database Administration Fundamentals I 8-17

254 ú ñ ÿ ñ. CREATE DATABASE DBA01 LOGFILE GROUP 1 ('/$HOME/ORADATA/u01/redo01.log') SIZE 100M, GROUP 2 ('/$HOME/ORADATA/u02/redo02.log') SIZE 100M, MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 100 MAXINSTANCES 1 DATAFILE '/$HOME/ORADATA/u01/system01.dbf' SIZE 325M UNDO TABLESPACE undotbs DATAFILE '/$HOME/ORADATA/u02/undotbs01.dbf' SIZE 200 DEFAULT TEMPORARY TABLESPACE temp TEMPFILE '/$HOME/ORADATA/u03/temp01.dbf' SIZE 4M CHARACTER SET US7ASCII 8-18 Copyright Oracle Corporation, All rights reserved. 데이터베이스를생성하는동안다음작업이진행됩니다. 기본임시테이블스페이스없이데이터베이스를생성하면기본테이블스페이스인 SYSTEM 테이블스페이스가 TEMPORARY TABLESPACE 절없이생성된임의의사용자에게할당됩니다. 또한 SYSTEM 테이블스페이스가기본임시테이블스페이스라는경고가 alert_sid.log에기록됩니다. 데이터베이스생성시기본임시테이블스페이스를생성하면 SYSTEM 테이블스페이스가임시공간에사용될수없습니다. CREATE DATABASE 명령을사용하여기본임시테이블스페이스를생성하면지역적으로관리되는유형이됩니다. Oracle9i Database Administration Fundamentals I 8-18

255 ñ ÿ ñ. ALTER DATABASE DEFAULT TEMPORARY TABLESPACE default_temp2; DATABASE_PROPERTIES ñ. SELECT * FROM DATABASE_PROPERTIES; 8-19 Copyright Oracle Corporation, All rights reserved. 2 데이터베이스를생성한후다음작업이진행됩니다. 기본임시테이블스페이스는다음작업으로생성되고설정될수있습니다. CREATE TABLESPACE 명령을사용하여임시테이블스페이스를생성합니다. 위에서설명한 ALTER DATABASE 명령을사용합니다. 기본임시테이블스페이스가정의되면임시테이블스페이스에명시적으로할당되지않은모든사용자가이테이블스페이스에할당됩니다. 기본임시테이블스페이스는 ALTER DATABASE DEFAULT TEMPORARY TABLESPACE 명령을사용하여언제든지변경할수있습니다. 기본임시테이블스페이스가변경되면기본임시테이블스페이스에할당된임의의사용자가새기본값으로재할당됩니다. Oracle9i Database Administration Fundamentals I 8-19

256 2 Oracle Enterprise Manager를사용하여기본임시테이블스페이스생성 : OEM Console에서다음작업을수행합니다. 1. Databases > Storage > Tablespaces로이동합니다. 2. 마우스오른쪽버튼을눌러 Create를선택합니다. 3. General 탭에서 Temporary를선택하고 Set as Default Temporary Tablespace를선택합니다. 4. Storage 탭에필요한정보를입력합니다. 5. Create를누릅니다. Oracle9i Database Administration Fundamentals I 8-20

257 ñ ñ. ñ. ñ ñ. ñ Copyright Oracle Corporation, All rights reserved. 기본임시테이블스페이스삭제새기본값을사용할수있을때까지기본임시테이블스페이스를삭제할수없습니다. 기본임시테이블스페이스를새기본값으로변경할때는 ALTER DATABASE 명령을사용해야합니다. 이전기본임시테이블스페이스는새기본임시테이블스페이스가사용가능하게된후에만삭제할수있습니다. 이전기본임시테이블스페이스에할당된사용자는자동으로새기본임시테이블스페이스에재할당됩니다. 기본임시테이블스페이스의유형변경기본임시테이블스페이스는 SYSTEM 테이블스페이스이거나임시테이블스페이스중하나여야하므로기본임시테이블스페이스를영구테이블스페이스유형으로변경할수없습니다. 기본임시테이블스페이스오프라인설정테이블스페이스를오프라인으로설정하여다른사용자가데이터베이스의해당부분을사용하지못하게할수있습니다. ( 예 : 오프라인백업, 유지관리또는테이블스페이스를사용하는응용프로그램변경 ) 임시테이블스페이스에는이러한상황이적용되지않으므로기본임시테이블스페이스는오프라인으로설정할수없습니다. Oracle9i Database Administration Fundamentals I 8-21

258 ñ ñ. ALTER TABLESPACE userdata READ ONLY; 8-22 Copyright Oracle Corporation, All rights reserved. ALTER TABLESPACE [tablespace]read ONLY 명령은테이블스페이스를일시적인읽기전용모드로설정합니다. 이러한일시적인상태에서는이전에테이블스페이스의블록을수정한기존트랜잭션의롤백을제외하고더이상테이블스페이스에기록작업을수행할수없습니다. 모든기존트랜잭션을커밋하거나롤백한후에 READ ONLY 명령이완료되고테이블스페이스는읽기전용모드가됩니다. 이러한명령은데이터딕셔너리에만영향을주므로읽기전용테이블스페이스에서테이블및인덱스와같은항목을삭제할수있습니다. 이것이가능한이유는 DROP 명령이테이블스페이스를구성하는물리적파일이아닌데이터딕셔너리만갱신하기때문입니다. 지역적으로관리되는테이블스페이스의경우삭제된세그먼트는임시세그먼트로변경되어비트맵이갱신되는것을방지합니다. 읽기전용테이블스페이스를기록할수있게하려면테이블스페이스의모든데이터파일은온라인이되어야합니다. 테이블스페이스를읽기전용으로설정하면테이블스페이스의데이터파일에체크포인트가발생합니다. Oracle9i Database Administration Fundamentals I 8-22

259 ( ) 테이블스페이스를읽기전용으로설정하면테이블스페이스의데이터파일에더이상기록할수없게되므로데이터파일은 CD-ROM 또는 WORM(1회기록 ) 드라이브와같은읽기전용매체에상주할수있습니다. 테이블스페이스를읽기전용으로설정하면대용량정적데이터베이스를백업할필요가없게됩니다. 1회기록 (WORM) 읽기전용장치에읽기전용테이블스페이스를생성하는방법은다음과같습니다. 1. ALTER TABLESPACE...READ ONLY 2. 운영체제명령을사용하여테이블스페이스의데이터파일을읽기전용장치로이동합니다. 3. ALTER TABLESPACE...RENAME DATAFILE Oracle9i Database Administration Fundamentals I 8-23

260 ( ) Oracle Enterprise Manager를사용하여읽기전용테이블스페이스설정 OEM Console에서다음작업을수행합니다. 1. Databases > Storage > Tablespaces로이동합니다. 2. 테이블스페이스를선택합니다. 3. General 탭의 Status 영역에있는 Read Only 확인란을선택합니다. 4. Apply를누릅니다. Oracle9i Database Administration Fundamentals I 8-24

261 ñ ñ. SYSTEM ñ ñ. ALTER TABLESPACE userdata OFFLINE; ñ ñ. ALTER TABLESPACE userdata ONLINE; 8-25 Copyright Oracle Corporation, All rights reserved. 테이블스페이스는대개온라인이어서데이터베이스사용자가여기에포함된데이터를사용할수있으나데이터베이스관리자는다음과같은경우테이블스페이스를오프라인으로설정할수도있습니다. 일부데이터베이스를사용할수없게하고나머지데이터베이스는정상적으로액세스할수있도록하는경우 온라인이고사용중인테이블스페이스를백업할수있더라도오프라인테이블스페이스백업을수행할경우 데이터베이스가열려있을때테이블스페이스또는데이터파일을복구할경우 데이터베이스가열려있을때데이터파일을이동할경우테이블스페이스오프라인상태테이블스페이스를오프라인으로설정하면이후의 SQL 문은이테이블스페이스에포함된객체를참조할수없습니다. 오프라인상태인테이블스페이스의객체를액세스하려면오류가발생합니다. 테이블스페이스가오프라인으로설정되거나온라인상태로돌아갈때이벤트가데이터딕셔너리와제어파일에기록됩니다. 데이터베이스를종료할때테이블스페이스가오프라인이면이후에데이터베이스가마운트되고다시열릴때테이블스페이스는오프라인상태이고검사되지않습니다. Oracle9i Database Administration Fundamentals I 8-25

262 ( ) 데이터베이스기록자프로세스 DBWn가테이블스페이스의데이터파일에기록하려는시도를여러번실패하는경우와같은오류가발생하면 Oracle 인스턴스는자동으로테이블스페이스를온라인에서오프라인으로전환합니다. 기타오류상황에대한자세한내용은 Oracle9i Database Administration Fundamentals II( 한글판 ) 과정에서설명합니다. 테이블스페이스오프라인설정데이터베이스가열려있을때데이터베이스관리자는 SYSTEM 테이블스페이스또는활성실행취소세그먼트나임시세그먼트를가진테이블스페이스를제외한테이블스페이스를오프라인으로설정할수있습니다. 테이블스페이스를오프라인으로설정할때 Oracle 서버는연관된모든데이터파일을오프라인으로설정합니다. ALTER TABLESPACE tablespace {ONLINE OFFLINE [NORMAL TEMPORARY IMMEDIATE FOR RECOVER]} 설명 : NORMAL: 테이블스페이스에있는모든데이터파일의모든블록을 SGA에서비웁니다. ( 기본값이며, 테이블스페이스를온라인으로되돌리기전에이테이블스페이스에대해매체복구를수행할필요가없습니다. 가능할때마다 NORMAL 절을사용하십시오.) TEMPORARY: 일부파일에기록할수없더라도테이블스페이스의모든온라인데이터파일에대해체크포인트를수행합니다. 모든오프라인파일에매체복구가필요할수있습니다. IMMEDIATE: 테이블스페이스파일이사용가능한지확인하지않고체크포인트를수행하지않습니다. 테이블스페이스를온라인으로되돌리기전에이테이블스페이스에대한매체복구를수행해야합니다. FOR RECOVER: 테이블스페이스를적시에복구할수있도록오프라인으로설정합니다. Oracle9i Database Administration Fundamentals I 8-26

263 ( ) Oracle Enterprise Manager를사용하여테이블스페이스오프라인설정 OEM Console에서다음작업을수행합니다. 1. Databases > Storage > Tablespaces로이동합니다. 2. 테이블스페이스를선택합니다. 3. General 탭의 Status 영역에서 Offline을선택합니다. 4. 드롭다운메뉴에서 Mode를선택합니다. 5. Apply를누릅니다. Oracle9i Database Administration Fundamentals I 8-27

264 ALTER TABLESPACE ñ. ALTER TABLESPACE userdata MINIMUM EXTENT 2M; ALTER TABLESPACE userdata DEFAULT STORAGE (INITIAL 2M NEXT 2M MAXEXTENTS 999); þ ñ ñ Copyright Oracle Corporation, All rights reserved. ALTER TABLESPACE 명령을사용하여테이블스페이스의기본저장영역정의를변경합니다. ALTER TABLESPACE tablespace [MINIMUM EXTENT integer[k M] DEFAULT storage_clause ] Oracle9i Database Administration Fundamentals I 8-28

265 ( ) Oracle Enterprise Manager를사용하여저장영역설정변경 OEM Console에서다음작업을수행합니다. 1. Databases > Storage > Tablespaces로이동합니다. 2. 테이블스페이스를마우스오른쪽버튼으로누르고메뉴에서 View/Edit Details를선택합니다. 3. Storage 탭을누른다음필요한사항을변경합니다. 4. Apply를누릅니다. Oracle9i Database Administration Fundamentals I 8-29

266 ñ ñ. AUTOEXTEND ú ALTER TABLESPACE ú ALTER TABLESPACE 8-30 Copyright Oracle Corporation, All rights reserved. 다음두가지방법으로테이블스페이스를확장할수있습니다. 데이터파일크기를자동이나수동으로변경합니다. 테이블스페이스에데이터파일을추가합니다. Oracle9i Database Administration Fundamentals I 8-30

267 ú ñ ú ñ. CREATE DATABASE CREATE TABLESPACE ALTER TABLESPACE ADD DATAFILE : CREATE TABLESPACE user_data DATAFILE '/u01/oradata/userdata01.dbf' SIZE 200M AUTOEXTEND ON NEXT 10M MAXSIZE 500M; DBA_DATA_FILES AUTOEXTEND þ ñ Copyright Oracle Corporation, All rights reserved. ú 새데이터파일에 AUTOEXTEND 지정 AUTOEXTEND 절은데이터파일의자동확장을활성화하거나비활성화합니다. 파일은정해진최대크기까지지정된증분단위로증가됩니다. AUTOEXTEND 절을사용하면다음이점이있습니다. 테이블스페이스에공간이부족할때즉시중재의필요성이줄어듭니다. 확장영역할당오류로인해응용프로그램이중지되는것을방지합니다. 데이터파일이생성될때다음 SQL 명령으로데이터파일의자동확장을활성화할수있습니다. CREATE DATABASE CREATE TABLESPACE... DATAFILE ALTER TABLESPACE... ADD DATAFILE Oracle9i Database Administration Fundamentals I 8-31

268 ú ( ) 새데이터파일에 AUTOEXTEND 지정 ( 계속 ) ALTER DATABASE 명령을사용하여데이터파일을수정하고자동확장을활성화합니다. ALTER DATABASE DATAFILE filespec [autoextend_clause] autoextend_clause:== [ AUTOEXTEND { OFF ON[NEXT integer[k M]] [MAXSIZE UNLIMITED integer[k M]] } ] 설명 : AUTOEXTEND OFF: 데이터파일의자동확장을비활성화합니다. AUTOEXTEND ON: 데이터파일의자동확장을활성화합니다. NEXT: 추가확장영역이필요할때데이터파일에할당할디스크공간을지정합니다. MAXSIZE: 데이터파일에할당할수있는최대디스크공간을지정합니다. UNLIMITED: 데이터파일에무제한의디스크공간할당을설정합니다. 기존데이터파일에 AUTOEXTEND 지정 SQL 명령인 ALTER DATABASE를사용하여기존데이터파일에자동파일확장을활성화하거나비활성화합니다. ALTER DATABASE [database] DATAFILE 'filename'[, 'filename']... autoextend_clause AUTOEXTEND가활성화되었는지또는비활성화되었는지확인 DBA_DATA_FILES 뷰를질의하여 AUTOEXTEND가활성화되었는지여부를확인하고 AUTOEXTENSIBLE 열을검사합니다. SQL> select tablespace_name, file_name, autoextensible 2 from dba_data_files; TABLESPACE_NAME FILE_NAME AUTOEXTENSIBLE SYSTEM /home/dba01/oradata/u01/system01.dbf YES DATA01 /home/dba01/oradata/u04/data01.dbf NO USERS /home/dba01/oradata/u03/users01.dbf NO INDX /home/dba01/oradata/u06/indx01.dbf NO SAMPLE /home/dba01/oradata/u02/sample01.dbf YES DATA02 /home/dba01/oradata/u03/data02.dbf NO INDEX01 /home/dba01/oradata/u06/index01.dbf YES UNDO2 /home/dba01/oradata/u01/undo2.dbf NO 8 rows selected. Oracle9i Database Administration Fundamentals I 8-32

269 AUTOEXTEND ( ) Oracle Enterprise Manager를사용하여자동크기조정활성화 OEM Console에서다음작업을수행합니다. 1. Databases > Storage > Datafiles로이동합니다. 2. 데이터파일을선택합니다. 3. Storage 탭에서 Automatically extend datafile when full 확인란을선택합니다. 4. Increment 및 Maximum Size에값을설정합니다. 5. Apply를누릅니다. Oracle9i Database Administration Fundamentals I 8-33

270 ú ALTER DATABASE ú ñ. ñ. ú þ ñ. : ALTER DATABASE DATAFILE '/u03/oradata/userdata02.dbf' RESIZE 200M; 8-34 Copyright Oracle Corporation, All rights reserved. ú 데이터파일을추가하여데이터베이스에공간을추가하지않고도 DBA는데이터파일크기를변경할수있습니다. ALTER DATABASE 명령을사용하여데이터파일크기를수동으로늘리거나줄입니다. ALTER DATABASE [database] DATAFILE filename [, filename ]... RESIZE integer[k M] 설명 : Integer: 결과데이터파일의절대크기로바이트단위입니다. 특정크기이상으로저장된데이터베이스객체가있는경우데이터파일크기는데이터파일에있는마지막객체의마지막블록까지만감소됩니다. Oracle9i Database Administration Fundamentals I 8-34

271 òÿ ñ ñ. ADD DATAFILE ÿ ñ. : ALTER TABLESPACE user_data ADD DATAFILE '/u01/oradata/userdata03.dbf' SIZE 200M; 8-35 Copyright Oracle Corporation, All rights reserved. ALTER TABLESPACE ADD DATAFILE 명령으로테이블스페이스에데이터파일을추가하여테이블스페이스에할당된디스크공간의전체용량을늘릴수있습니다. ALTER TABLESPACE tablespace ADD DATAFILE filespec [autoextend_clause] Oracle9i Database Administration Fundamentals I 8-35

272 ( ) Oracle Enterprise Manager를사용하여데이터파일추가 OEM Console에서다음작업을수행합니다. 1. Databases > Storage > Tablespaces로이동합니다. 2. 테이블스페이스를선택합니다. 3. Add Datafile을선택합니다. 4. General 탭에서파일정보를입력합니다. 5. Create를누릅니다. Oracle9i Database Administration Fundamentals I 8-36

273 ú ALTER TABLESPACE ñ. ó ñ. ALTER TABLESPACE userdata RENAME DATAFILE '/u01/oradata/userdata01.dbf' TO '/u02/oradata/userdata01.dbf'; ñ ñ ñ ñ. ñ. OS ú ú ñ. ALTER TABLESPACE RENAME DATAFILE ñ. ñ. OS ñ ñ Copyright Oracle Corporation, All rights reserved. ú 테이블스페이스의유형에따라데이터베이스관리자는다음두가지방식중하나를사용하여데이터파일을이동할수있습니다. ALTER TABLESPACE 명령다음 ALTER TABLESPACE 명령은활성롤백또는임시세그먼트를포함하지않는비SYSTEM 테이블스페이스의데이터파일에만적용됩니다. ALTER TABESPACE tablespace RENAME DATAFILE 'filename'[, 'filename']... TO 'filename'[, 'filename']... 원본파일이름은제어파일에저장된이름과일치해야합니다. Oracle9i Database Administration Fundamentals I 8-37

274 ú ALTER DATABASE þ ñ. ó ñ. ALTER DATABASE RENAME FILE '/u01/oradata/system01.dbf' TO '/u03/oradata/system01.dbf'; 8-38 Copyright Oracle Corporation, All rights reserved. ú ( ) ALTER DATABASE 명령 ALTER DATABASE 명령을사용하여모든유형의데이터파일을이동할수있습니다. ALTER DATABASE [database] RENAME FILE 'filename'[, 'filename']... TO 'filename'[, 'filename']... SYSTEM 테이블스페이스는오프라인으로설정할수없으므로이방식을사용하여 SYSTEM 테이블스페이스에있는데이터파일을이동해야합니다. 다음프로세스를사용하여오프라인으로설정할수없는테이블스페이스에있는파일이름을바꿉니다. 1. 데이터베이스를종료합니다. 2. 운영체제명령을사용하여파일을이동합니다. 3. 데이터베이스를마운트합니다. 4. ALTER DATABASE RENAME FILE 명령을실행합니다. 5. 데이터베이스를엽니다. Oracle9i Database Administration Fundamentals I 8-38

275 ú ( ) Oracle Enterprise Manager를사용하여데이터파일이동 OEM Console에서다음작업을수행합니다. 1. Databases > Storage > Tablespaces로이동합니다. 2. 이동할데이터파일이있는테이블스페이스를선택합니다. 3. General 페이지에서 Offline을선택합니다. 4. Apply를선택합니다. 5. 테이블스페이스가오프라인으로설정되면 General페이지에서 File Directory 정보를갱신합니다. 6. Apply를누릅니다. 주 : 이러한명령은파일이새위치에존재하는지여부를확인하며파일을생성하거나이동하지는않습니다. 이전데이터파일과새데이터파일을식별하려면항상경로를포함한전체파일이름을제공하십시오. Oracle9i Database Administration Fundamentals I 8-39

276 ñ ñ. SYSTEM INCLUDING CONTENTS ñ. INCLUDING CONTENTS AND DATAFILES ñ. CASCADE CONSTRAINTS ñ. DROP TABLESPACE userdata INCLUDING CONTENTS AND DATAFILES; 8-40 Copyright Oracle Corporation, All rights reserved. 테이블스페이스와그내용이더이상필요하지않으면다음 DROP TABLESPACE SQL 명령으로데이터베이스에서테이블스페이스를제거할수있습니다. DROP TABLESPACE tablespace [INCLUDING CONTENTS [AND DATAFILES] [CASCADE CONSTRAINTS]] 설명 : tablespace: 삭제할테이블스페이스이름을지정합니다. INCLUDING CONTENTS: 테이블스페이스에서모든세그먼트를삭제합니다. AND DATAFILES: 연관된운영체제파일을삭제합니다. CASCADE CONSTRAINTS: 삭제된테이블스페이스에있는테이블의기본키및고유키를참조하는테이블스페이스밖의테이블에서참조무결성제약조건을삭제합니다. Oracle9i Database Administration Fundamentals I 8-40

277 ( ) 지침 : 데이터를계속포함하고있는테이블스페이스는 INCLUDING CONTENTS 옵션을사용해야삭제할수있습니다. 이옵션은테이블스페이스에여러객체가포함된경우많은실행취소를생성합니다. 테이블스페이스를삭제하면테이블스페이스의데이터는데이터베이스에더이상존재하지않습니다. 테이블스페이스가삭제될때연관된데이터베이스의제어파일에있는파일포인터만삭제됩니다. 운영체제파일은여전히존재하므로 AND DATAFILES 절이사용되거나데이터파일이 OMF인경우가아니면적합한운영체제명령을사용하여명시적으로삭제되어야합니다. 테이블스페이스를읽기전용으로전환해도포함된세그먼트와함께삭제될수있습니다. 테이블스페이스를삭제하기전에오프라인으로설정하여트랜잭션이테이블스페이스에있는세그먼트를액세스할수없도록하는것이바람직합니다. Oracle9i Database Administration Fundamentals I 8-41

278 ( ) Oracle Enterprise Manager를사용하여테이블스페이스삭제 OEM Console에서다음작업을수행합니다. 1. Databases > Storage > Tablespaces로이동합니다. 2. 테이블스페이스를선택합니다. 3. 마우스오른쪽버튼을눌러 Remove를선택합니다. 4. Yes를눌러삭제를확인합니다. Oracle9i Database Administration Fundamentals I 8-42

279 OMF ñ DB_CREATE_FILE_DEST ñ. ALTER SYSTEM ú ñ. ALTER SYSTEM SET db_create_file_dest = '/u01/oradata/dba01'; ñ ñ. ú þ DB_CREATE_FILE_DEST ÿ ñ. 100MBñ ñ. AUTOEXTEND UNLIMITED ÿ ñ Copyright Oracle Corporation, All rights reserved. OMF 테이블스페이스를생성하도록 OMF를구성할때단일초기화매개변수 DB_CREATE_FILE_DEST가지정되며 DATAFILE 절은필요하지않습니다. 모든데이터파일은 DB_CREATE_FILE_DEST가정의한위치에자동으로생성됩니다. 데이터파일이름은 Oracle 서버에서 ora_tbs1_2ixfh90q.dbf로자동으로생성됩니다. Oracle9i Database Administration Fundamentals I 8-43

280 OMF OMF CREATE TABLESPACE text_data DATAFILE SIZE 20M; OMF ALTER TABLESPACE text_data ADD DATAFILE; ú ALTER SYSTEM SET db_create_file_dest = '/u01/oradata/dba01'; OS 8-44 Copyright Oracle Corporation, All rights reserved. OMF OMF 테이블스페이스생성 OMF를사용하여테이블스페이스를생성할때는 DATAFILE 절이필요하지않습니다. DATAFILE 절없이생성된테이블스페이스는기본 100MB 데이터파일을무제한 MAXSIZE의 AUTOEXTEND로설정합니다. 선택적으로파일크기를지정할수도있습니다. CREATE TABLESPACE tablespace [ DATAFILE [ filename ] [ SIZE integer [K M] ] ]; OMF 테이블스페이스에데이터파일추가데이터파일은기존테이블스페이스에추가할수있습니다. ADD DATAFILE 명령에서더이상파일을지정할필요가없습니다. 동적으로기본파일위치변경 DB_CREATE_ONLINE_LOG_DEST_n은로그파일과제어파일이데이터파일과함께위치하지않도록설정해야합니다. ALTER SYSTEM SET 명령을사용하여대상을동적으로변경할수있습니다. OMF 테이블스페이스삭제 OMF에서생성한테이블스페이스의데이터파일은연관된테이블스페이스가삭제될때 OS 레벨에서삭제됩니다. Oracle9i Database Administration Fundamentals I 8-44

281 ñ ñ ñ. DBA_TABLESPACES V$TABLESPACE DBA_DATA_FILES V$DATAFILE DBA_TEMP_FILES V$TEMPFILE 8-45 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 8-45

282 ñ ñ ó ñ. ñ OMF 8-46 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 8-46

283 8 ñ ññ. OMF 8-47 Copyright Oracle Corporation, All rights reserved. 8 주 : SQL*Plus 또는 Oracle Enterprise Manager와 SQL*Plus Worksheet를사용하여연습을수행할수있습니다. Oracle9i Database Administration Fundamentals I 8-47

284 8: 1 다음이름및저장영역이지정되는영구테이블스페이스를생성하십시오. a 데이터딕셔너리에서관리되는 DATA01 b 동일한확장영역크기를가진지역적으로관리되는 DATA02. 테이블스페이스 에서사용되는모든확장크기는 100KB의배수입니다. c 4K의동일한확장영역크기를가진지역적으로관리되는 INDEX01. 최대크 기는 2MB로확장영역이더필요할때 500KB의자동확장을활성화합니다. d 기본저장영역을가진읽기전용테이블용 RONLY. 이번에는테이블스페이스 를읽기전용으로설정하지마십시오. e 데이터딕셔너리에서정보를표시하십시오. 힌트 : 테이블스페이스에대한정보는다음질의중하나를사용하여볼수있 습니다. - DBA_TABLESPACES - V$TABLESPACE - V$DATAFILE 2 DATA02 테이블스페이스에 500KB 디스크공간을추가로할당하고결과를확인하 십시오. 3 INDEX01 테이블스페이스를재배치하여서브디렉토리 u06으로이동하십시오. INDEX01의재배치와상태를확인합니다. 힌트 : - INDEX01 테이블스페이스를오프라인으로설정합니다. - V$DATAFILE을사용하여상태를확인합니다. - 운영체제이동명령을사용하여테이블스페이스를 u06으로이동합니다. - ALTER TABLESPACE를사용하여테이블스페이스를재배치합니다. - INDEX01 테이블스페이스를온라인으로설정합니다. - V$DATAFILE을사용하여상태를확인합니다. 4 a RONLY 테이블스페이스에테이블을생성한후 RONLY 테이블스페이스를읽기전용으로설정합니다. 질의를실행하여확인하십시오. b TABLE2 테이블을추가로생성해보십시오. 첫번째생성된 TABLE1 테이블을삭제합니다. 결과는? 5 RONLY 테이블스페이스및연관된데이터파일을삭제하고결과를확인하십시오. 6 메모리에서만 DB_CREATE_FILE_DEST를 $HOME/ORADATA/u05로설정합니다. 5MB 크기의 DATA03 테이블스페이스를생성하고파일위치는지정하지않습니 다. 데이터파일이생성되었는지확인하십시오. Oracle9i Database Administration Fundamentals I 8-48

285 Copyright Oracle Corporation, All rights reserved.

286 ñ ñ ñ. ß 9-2 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 9-2

287 Database TABLESPACES DATAFILES DISK1/SYS1.dbf D.D. Table Data Seg D.D. Index Index Seg DISK2/ USER1.dbf PROD SYSTEM USER_DATA RBS TEMP SEGMENTS EXTENTS S_DEPT RB Data Seg Seg S_EMP Data Seg FREE Oracle DATA BLOCKS S_DEPT (cont'd) Data Seg DISK3/ USER2.dbf S_EMP FIRST_N AME Index Index Seg DISK1/ ROLL1.dbf RBS1 RB Seg RBS2 RB Seg RBS1 (cont'd) RB Seg RBS2 (cont'd) RB Seg DISK1/ TEMP.dbf Temp Temp Seg 9-3 Copyright Oracle Corporation, All rights reserved. 이전단원에서는데이터베이스의저장영역구조, 테이블스페이스및데이터파일에대해설명하였으며이단원에서는세그먼트, 확장영역및데이터블록을검토하여데이터베이스저장영역에대해계속설명합니다. Oracle9i Database Administration Fundamentals I 9-3

288 9-4 Copyright Oracle Corporation, All rights reserved. 세그먼트는데이터베이스에서공간을차지하는객체를말하며데이터베이스의데이터파일에있는공간을사용합니다. 이부분에서는다양한유형의세그먼트를설명합니다. 테이블 : 테이블은데이터베이스내에데이터를저장하는가장일반적인수단입니다. 테이블세그먼트는클러스터화되거나분할되지않은테이블에대한데이터를저장합니다. 테이블세그먼트내의데이터는특정순서로저장되지않고데이터베이스관리자 (DBA) 는테이블에있는블록내의행위치에대해거의제어할수없습니다. 테이블세그먼트의모든데이터는하나의테이블스페이스에저장되어야합니다. 테이블분할 : 동시사용량이많은데이터베이스의테이블이있을경우확장성과가용성은중요관심사입니다. 그러한경우에는테이블내의데이터가각각다른테이블스페이스에상주하는여러분할영역에저장됩니다. Oracle 서버에서는현재키값범위, 해싱알고리즘및값목록에의한분할을지원하고있습니다. 테이블이분할된경우각분할영역은세그먼트고이것을독립적으로제어하도록저장영역매개변수를지정할수있습니다. 이러한유형의세그먼트를사용하려면 Oracle9i Enterprise Edition의분할옵션이필요합니다. Oracle9i Database Administration Fundamentals I 9-4

289 ( ) 클러스터 : 테이블처럼클러스터는데이터세그먼트의유형이며클러스터의행은키열값을기반으로저장됩니다. 클러스터에는하나이상의테이블이포함됩니다. 클러스터에있는테이블은동일한세그먼트에속하고동일한저장영역특성을공유합니다. 클러스화된테이블의행은인덱스나해싱알고리즘을사용하여액세스할수있습니다. 인덱스 : 특정인덱스에대한모든항목은하나의인덱스세그먼트내에저장됩니다. 테이블에인덱스가세개있을경우세개의인덱스세그먼트가사용됩니다. 이세그먼트의목적은지정된키를기반으로하는테이블에서행의위치를참조하는것입니다. Oracle9i Database Administration Fundamentals I 9-5

290 9-6 Copyright Oracle Corporation, All rights reserved. 인덱스구성테이블 : 인덱스구성테이블에서데이터는키값을기반으로한인덱스내에저장됩니다. 인덱스구성테이블은모든데이터를인덱스트리에서직접검색할수있으므로테이블조회가필요하지않습니다. 인덱스분할영역 : 인덱스를분할하여여러테이블스페이스에분산시킬수있습니다. 이경우인덱스의각분할영역은세그먼트에대응되고여러테이블스페이스로확장할수없습니다. 분할된인덱스를사용하는주된이유는인덱스 I/O( 입 / 출력 ) 를분산시켜경합을최소화하는데있습니다. 이러한유형의세그먼트를사용하려면 Oracle9i Enterprise Edition의분할옵션이필요합니다. 실행취소세그먼트 : 데이터베이스를변경중인트랜잭션은실행취소세그먼트를사용합니다. 데이터나인덱스블록을변경하기전에이전값이실행취소세그먼트에저장되어사용자는변경사항을실행취소할수있습니다. 임시세그먼트 : 사용자가 CREATE INDEX, SELECT DISTINCT 및 SELECT GROUP BY와같은명령을실행할때 Oracle 서버는메모리에서정렬을수행하려합니다. 정렬시메모리에서사용할수있는공간보다더많은공간이필요한경우중간결과가디스크에기록되며이러한중간결과를저장하기위해임시세그먼트가사용됩니다. Oracle9i Database Administration Fundamentals I 9-6

291 LOB 9-7 Copyright Oracle Corporation, All rights reserved. LOB 세그먼트 : 텍스트문서, 이미지또는비디오와같은 LOB( 대형객체 ) 를저장하기위해테이블에서한개이상의열이사용될수있습니다. 열이클경우Oracle 서버에서는이러한값을 LOB 세그먼트라고하는별도의세그먼트에저장하며테이블은해당 LOB 데이터위치에대한로케이터나포인터만포함합니다. 중첩테이블 : 테이블의열은주문항목의경우처럼사용자가정의한테이블로구성됩니다. 그러한경우에는중첩테이블이라고하는내부테이블이별도의세그먼트로써저장됩니다. 부트스트랩세그먼트 : 부트스트랩세그먼트는캐시세그먼트라고도하며데이터베이스생성시 sql.bsq 스크립트에의해생성됩니다. 이세그먼트는인스턴스가데이터베이스를열때데이터딕셔너리캐시를초기화하는데도움이됩니다. 부트스트랩세그먼트는질의나갱신이불가능하고데이터베이스관리자가유지관리할필요가없습니다. Oracle9i Database Administration Fundamentals I 9-7

292 Oracle 9-8 Copyright Oracle Corporation, All rights reserved. 저장영역절은세그먼트에확장영역을할당하는방법을제어하기위해세그먼트레벨에서지정할수있습니다. MINIMUM EXTENT 또는 UNIFORM SIZE 테이블스페이스매개변수를제외하고세그먼트레벨에서지정한모든저장영역매개변수는테이블스페이스레벨에서설정한옵션보다우선적용됩니다. 저장영역매개변수를세그먼트레벨에서명시적으로설정하지않은경우에는기본적으로테이블스페이스레벨에서설정한옵션을사용합니다. 저장영역매개변수를테이블스페이스레벨에서명시적으로설정하지않은경우에는 Oracle 서버시스템기본값을사용합니다. 기타고려사항 : 저장영역매개변수를변경하면아직할당되지않은확장영역에만새로운옵션이적용됩니다. 일부매개변수는테이블스페이스레벨에서지정할수없으며세그먼트레벨에서만지정해야합니다. 테이블스페이스에최소확장영역크기를지정하면이후부터는이크기가해당테이블스페이스의세그먼트에대해할당될모든확장영역에적용됩니다. Oracle9i Database Administration Fundamentals I 9-8

293 ò ò ò ñ. ñ ò ÿ ÿ ÿ ñ ò ÿ ÿ 9-9 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 9-9

294 ÿ ø ÿ 9-10 Copyright Oracle Corporation, All rights reserved. 테이블스페이스를생성할때테이블스페이스의데이터파일에는파일의첫째블록인헤더가포함됩니다. 세그먼트는생성시테이블스페이스의사용가능한확장영역에서공간을할당받습니다. 세그먼트에서사용하는연속공간은사용된확장영역이라고합니다. 세그먼트가공간할당을해제하면해제된확장영역은해당테이블스페이스에서사용가능한확장영역의풀에추가됩니다. Oracle9i Database Administration Fundamentals I 9-10

295 I/O ñ DB_BLOCK_SIZE 9-11 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 9-11

296 á ñ. 2KB 32KB 2 ÿñ ñ Copyright Oracle Corporation, All rights reserved. Oracle9i는여러블록크기를가진데이터베이스의생성을지원합니다. 이기능은다음경우에유용합니다. OLTP(On-line Transactional Processing) 데이터베이스에서기업데이터웨어하우스로테이블스페이스를이동하는경우. Oracle9i에서는서로다른블록크기를가진데이터베이스간에쉽게전송할수있습니다. I/O 성능을최대화하도록해당블록크기의테이블스페이스에서객체를찾는기능이필요할경우 SYSTEM 테이블스페이스의블록크기는표준블록크기를말하며데이터베이스생성시설정됩니다. Oracle9i에서는표준블록크기뿐아니라비표준블록크기를최대 4개까지지정할수있습니다. 초기화파일에서버퍼캐시내에이러한각블록크기에대한서브캐시를구성할수있으며서브캐시는인스턴스가실행중인동안에도구성할수있습니다. 이러한블록크기를가진테이블스페이스를생성할수있습니다. 표준블록크기는시스템테이블스페이스및대부분의기타테이블스페이스에사용됩니다. Oracle9i Database Administration Fundamentals I 9-12

297 DB_BLOCK_SIZE ñ. SYSTEM TEMPORARY ÿ ñ. DB_CACHE_SIZE ó DEFAULT ñ. = 1 (4MB 16MB) = 48MB 9-13 Copyright Oracle Corporation, All rights reserved. 초기화매개변수 DB_BLOCK_SIZE는데이터베이스의표준블록크기를지정합니다. 이블록크기는 SYSTEM 테이블스페이스와임시테이블스페이스에사용됩니다. 별도로지정하지않는한표준블록크기는테이블스페이스의기본블록크기로도사용됩니다. Oracle은추가비표준블록크기를최대 4개까지지원합니다. 가장일반적으로사용되는블록크기를표준블록크기로선택해야하며대부분이블록크기만지정하면됩니다. 일반적으로 DB_BLOCK_SIZE는 4KB 또는 8KB 중하나로설정됩니다. 지정하지않은경우기본데이터블록크기는운영체제에따라정해지며이크기는대부분의경우적합합니다. 데이터베이스를재생성하는경우를제외하고데이터베이스를생성한다음블록크기를변경할수없습니다. 초기화매개변수 DB_CACHE_SIZE는이전릴리스에서사용된초기화매개변수 DB_BLOCK_BUFFERS를대체한것입니다. DB_CACHE_SIZE 매개변수는표준블록크기버퍼의캐시크기를지정하는데표준블록크기는 DB_BLOCK_SIZE에서지정됩니다. 역호환성을위해 DB_BLOCK_BUFFERS 매개변수도사용할수있으나이매개변수는정적매개변수이며동적크기조정매개변수와함께사용할수없습니다. 주 : 그래뉼은연속적인가상메모리할당단위입니다. 그래뉼크기는예상되는전체 SGA 크기에따라다르며, 이크기는 SGA_MAX_SIZE 매개변수값에준하여계산됩니다. SGA_MAX_SIZE 매개변수는예상 SGA 크기가 128MB보다작은경우 4MB이며그렇지않은경우에는 16MB입니다. Oracle9i Database Administration Fundamentals I 9-13

298 ñ ú ñ. 2KB DB_2K_CACHE_SIZE 4KB DB_4K_CACHE_SIZE 8KB DB_8K_CACHE_SIZE 16KB DB_16K_CACHE_SIZE 32KB DB_32K_CACHE_SIZE nk DB_nK_CACHE_SIZE ñ ñ. 1 ñ ñ Copyright Oracle Corporation, All rights reserved. 데이터베이스버퍼캐시초기화매개변수는 SGA의데이터베이스버퍼캐시구성요소의크기를결정합니다. 이매개변수를사용하여데이터베이스가사용하는다양한블록크기에대한캐시크기를지정합니다. 데이터베이스에서여러블록크기를사용하려면 DB_CACHE_SIZE와하나이상의DB_nK_CACHE_SIZE 매개변수가설정되어야합니다. 각매개변수는해당블록크기에대한버퍼캐시크기를지정합니다. DB_nK_CACHE_SIZE 매개변수의기본값은 0입니다. n KB 블록크기의온라인테이블스페이스가있을경우이매개변수를 0으로설정하지마십시오. 플랫폼특정블록크기제한사항이적용됩니다. 예를들어, 플랫폼의최대블록크기가 32KB보다작을경우 DB_32K_CACHE_SIZE를설정할수없습니다. 또한최소블록크기가 2KB보다클경우DB_2K_CACHE_SIZE를설정할수없습니다. 주 : 이러한매개변수는표준블록크기에대한캐시크기를조정하는데사용할수없습니다. 예를들어, DB_BLOCK_SIZE 값이 2KB 인경우 DB_2K_CACHE_SIZE 를설정할수없습니다. 표준블록크기에대한캐시크기는항상 DB_CACHE_SIZE 값에따라결정됩니다. 그래뉼은연속적인가상메모리할당단위입니다. 그래뉼크기는예상되는전체 SGA 크기에따라다르며이크기는 SGA_MAX_SIZE 매개변수값에준하여계산됩니다. Oracle9i Database Administration Fundamentals I 9-14

299 Oracle Enterprise Manager를사용하여추가캐시구성 OEM Console에서다음작업을수행합니다. 1. Databases > Configuration으로이동합니다. 2. All Initialization Parameters를선택합니다. 3. 다음매개변수를알맞게변경합니다. DB_2K_CACHE_SIZE DB_4K_CACHE_SIZE DB_8K_CACHE_SIZE DB_16K_CACHE_SIZE DB_32K_CACHE_SIZE 4. OK를누릅니다. Oracle9i Database Administration Fundamentals I 9-15

300 CREATE TABLESPACE tbs_1 DATAFILE 'tbs_1.dbf' SIZE 10M BLOCKSIZE 4K; DESCRIBE dba_tablespaces Name Null? Type TABLESPACE_NAME NOT NULL VARCHAR2(30) BLOCK_SIZE NOT NULL NUMBER Copyright Oracle Corporation, All rights reserved. BLOCKSIZE 절을사용하여테이블스페이스의비표준블록크기를지정합니다. 바이트단위또는K 접미어를사용하여 KB 단위의크기를지정할수있습니다. 이절을지정하려면 DB_CACHE_SIZE 및하나이상의 DB_nK_CACHE_SIZE 매개변수가설정되어야하며이절에서지정한정수는한 DB_nK_CACHE_SIZE 매개변수설정에대응해야합니다. 제한사항 : 임시테이블스페이스 (TEMPORARY 지정 ) 의경우또는이테이블스페이스를임의의사용자에대한임시테이블스페이스로할당하려는경우에는비표준블록크기를지정할수없습니다. 위의첫명령문은블록크기가 4KB인 tbs_1.dbf 파일이있는 tbs_1이라는새테이블스페이스를생성합니다. 이명령문이성공적으로실행되려면현재버퍼캐시에 4KB 크기의버퍼가구성되어있어야합니다. 주 : 특정테이블스페이스에사용되는해당블록크기를반영하기위해새열이 *_TABLESPACES 딕셔너리뷰에추가되었습니다. Oracle9i Database Administration Fundamentals I 9-16

301 Oracle Enterprise Manager를사용하여비표준블록크기테이블스페이스생성 OEM Console에서다음작업을수행합니다. 1. Databases > Storage > Tablespaces로이동합니다. 2. 마우스오른쪽버튼을눌러 Create를선택합니다. 3. 테이블스페이스를생성하는동안블록크기를설정하려면 Storage 페이지를선택하고 Block Size 값을입력합니다. 4. Create를누릅니다. Oracle9i Database Administration Fundamentals I 9-17

302 ú ñ. þ ñ. LOB ñ ñ Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 9-18

303 ø 9-19 Copyright Oracle Corporation, All rights reserved. Oracle 데이터블록에는다음이포함됩니다. 블록헤더 : 헤더에는트랜잭션이블록행을변경할때사용하는트랜잭션슬롯, 데이터블록주소, 테이블디렉토리및행디렉토리가포함됩니다. 블록헤더는하향식으로만들어집니다. 데이터공간 : 행데이터는상향식으로블록에삽입됩니다. 사용가능영역 : 블록의사용가능영역이해당블록의중간에있으므로필요한경우헤더와행데이터공간이증가될수있습니다. 블록의사용가능영역은초기에는연속적이나삭제와갱신으로인해단편화됩니다. Oracle 서버에서는필요한경우블록의사용가능영역을병합합니다. Oracle9i Database Administration Fundamentals I 9-19

304 INITRANS MAXTRANS PCTFREE PCTUSED 9-20 Copyright Oracle Corporation, All rights reserved. 블록공간활용매개변수는데이터및인덱스세그먼트의공간사용제어에사용될수있습니다. 동시성제어매개변수 INITRANS 및 MAXTRANS: 인덱스나데이터블록에서생성되는트랜잭션슬롯의초기개수와최대개수를지정합니다. 트랜잭션슬롯은한시점에블록을변경하는트랜잭션에대한정보를저장하는데사용됩니다. 트랜잭션은둘이상의행이나인덱스항목을변경하더라도트랜잭션슬롯을하나만사용합니다. INITRANS: 최소레벨의동시성을보장하며기본값이데이터세그먼트인경우에는 1이고인덱스세그먼트인경우에는 2입니다. 예를들어, INITRANS를 3으로설정하면 INITRANS 는최소한세개의트랜잭션이동시에블록을변경할수있음을보장합니다. 필요한경우블록의사용가능영역에서추가트랜잭션슬롯을할당하여블록의행을수정하는여러동시트랜잭션을허용할수있습니다. MAXTRANS: 기본값이 255며데이터나인덱스블록을변경할수있는동시트랜잭션수의한계를설정할수있습니다. MAXTRANS를설정하면이값이트랜잭션슬롯에대한공간사용을제한하므로행이나인덱스데이터의사용을위해블록에충분한공간이있음을보장합니다. Oracle9i Database Administration Fundamentals I 9-20

305 ( ) 데이터공간사용제어매개변수 PCTFREE: 데이터세그먼트에대한이매개변수는각데이터블록에서해당블록의행갱신으로인한성장에대비해예약해둔공간의백분율을나타냅니다. PCTFREE의기본값은 10% 입니다. PCTUSED: 데이터세그먼트에대한 PCTUSED는 Oracle 서버가테이블의각데이터블록을유지하기위해사용한최소공간의백분율을나타냅니다. 블록은사용된공간이 PCTUSED 보다작으면다시사용가능영역목록에올려집니다. 세그먼트의사용가능영역목록은이후삽입작업에사용될후보블록목록입니다. 세그먼트는기본적으로하나의사용가능영역목록과함께생성됩니다. 저장영역절의 FREELISTS 매개변수를설정하여세그먼트는높은수의사용가능영역목록과함께생성될수있습니다. PCTUSED의기본값은 40% 입니다. PCTFREE와 PCTUSED는모두사용가능한데이터공간즉, 전체블록크기에서헤더공간을뺀나머지블록공간의백분율로계산됩니다. 주 : 인덱스에대해이매개변수를사용하는방법은 " 인덱스관리 " 단원에서자세히설명합니다. FREELISTS 지정에대한자세한내용은 Oracle9i: Performance Tuning ( 한글판 ) 과정에서설명합니다. Oracle9i Database Administration Fundamentals I 9-21

306 ñ ñ. ú ú 9-22 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 9-22

307 ú ñ. ó ÿ ÿ ñ. ñ ñ. ú INSERT : LOB ñ ñ Copyright Oracle Corporation, All rights reserved. ú 사용용이성 PCTUSED, FREELISTS 및 FREELIST GROUPS는자동으로관리됩니다. 공간활용률향상모든객체, 특히행크기가매우다른객체가공간을더효율적으로활용합니다. 동시처리향상다양한동시액세스에대한런타임조정기능이향상됩니다. Oracle9i Database Administration Fundamentals I 9-23

308 ú ÿ ñ. BMB(BitMapped Block) ÿ ñ. ñ. Ö ÿ ñ Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 9-24

309 ú þ ú ñ. CREATE TABLESPACE data02 DATAFILE /u01/oradata/data02.dbf SIZE 5M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64K SEGMENT SPACE MANAGEMENT AUTO; ÿ ÿ ñ Copyright Oracle Corporation, All rights reserved. ú 비트맵세그먼트는 CREATE TABLESPACE 명령의 SEGMENT SPACE MANGEMENT AUTO 절을통해지정되며나중에변경할수없습니다. 비트맵세그먼트가정의되면 PCTUSED, FREELIST 및 FREELIST GROUPS의사양은무시됩니다. 비트맵으로관리할수있는세그먼트에는일반테이블, 인덱스, Index Organized Tables(IOT) 및 LOB가있습니다. Oracle9i Database Administration Fundamentals I 9-25

310 ú ñ ú ñ. PCTFREE PCTUSED FREELIST Oracle ñ Copyright Oracle Corporation, All rights reserved. ú 수동데이터베이스블록관리를사용하여블록공간사용방법및블록이사용가능한시기를구성할수있습니다. 수동관리에는 PCTFREE, PCTUSED 및 FREELIST와같은매개변수가사용됩니다. 이전버전에서데이터블록관리에사용할수있는유일한방법이었습니다. 수동방법이기본값입니다. Oracle9i Database Administration Fundamentals I 9-26

311 PCTFREE=20 PCTUSED= % ( ) 2 80% ( 40% ) Copyright Oracle Corporation, All rights reserved. 다음단계는 PCTFREE=20 및 PCTUSED=40인데이터세그먼트에대해블록내의공간을관리하는방법을설명합니다. 1. 해당블록의사용가능영역이 20% 이하가될때까지행이해당블록으로삽입됩니다. 행이블록의사용가능한데이터공간중 80%(100 - PCTFREE) 이상을차지하면해당블록에더이상삽입될수없습니다. 2. 나머지 20% 는행크기가증가할때사용할수있습니다. 예를들어, 원래 NULL이었던열에값을지정하여갱신하면블록활용이 80% 를초과합니다. 3. 행이블록에서삭제되거나갱신결과행크기가감소되면블록활용이 80% 미만으로내려가지만블록은블록활용이 PCTUSED( 이예제에서는 40%) 미만으로내려가야삽입작업에사용됩니다. 4. 활용이 PCTUSED 미만일때해당블록을삽입에사용할수있습니다. 블록에행을삽입할때블록활용이증가하고주기가 1단계부터반복됩니다. 주 : PCTFREE 및 PCTUSED 의설정지침은테이블및인덱스에대한단원인 " 테이블관리 " 및 " 인덱스관리 " 에서각각설명합니다. Oracle9i Database Administration Fundamentals I 9-27

312 Oracle Enterprise Manger를사용하여 PCTFREE 및 PCTUSED 설정 OEM Console에서다음작업을수행합니다. 1. Databases > Schema > Table로이동합니다. 2. 마우스오른쪽버튼을눌러 Create를선택합니다. 3. 테이블생성시 PCTFREE 및 PCTUSED를설정하려면 Storage 페이지를선택한다음 Space Usage에대한항목을입력합니다. 4. Create를누릅니다. Oracle9i Database Administration Fundamentals I 9-28

313 ó ñ ñ. DBA_EXTENTS DBA_SEGMENTS DBA_TABLESPACES DBA_DATA_FILES DBA_FREE_SPACE 9-29 Copyright Oracle Corporation, All rights reserved. ß 데이터딕셔너리에질의하면테이블스페이스, 데이터파일, 세그먼트, 사용가능한확장영역및사용된확장영역간의관계를볼수있습니다. 하나이상의파일이있는테이블스페이스를생성할때 DBA_TABLESPACES에행이추가되며데이터베이스의각파일에대해 DBA_DATA_FILES에행이추가됩니다. 이단계에서파일헤더를제외한각데이터파일의공간은 DBA_FREE_SPACE에있는하나의사용가능한확장영역으로표시됩니다. 세그먼트생성시행이 DBA_SEGMENTS에표시됩니다. 이세그먼트의확장영역에할당된공간은 DBA_EXTENTS에서볼수있으며 DBA_FREE_SPACE는해당세그먼트에대해확장영역을생성한파일에서사용가능영역을낮게표시하도록조정됩니다. 헤더블록을제외한파일의모든공간은 DBA_FREE_SPACE나 DBA_EXTENTS 중하나여야합니다. Oracle9i Database Administration Fundamentals I 9-29

314 ß ( ) DBA_SEGMENTS 뷰 : DBA_SEGMENTS 뷰를질의하여세그먼트에할당된확장영역과블록수를봅니다. SQL> SELECT segment_name,tablespace_name,extents,blocks 2 FROM dba_segments 3 WHERE owner = 'HR'; SEGMENT_NAME TABLESPACE EXTENTS BLOCKS REGIONS SAMPLE 1 8 LOCATIONS SAMPLE 1 8 DEPARTMENTS SAMPLE 1 8 JOBS SAMPLE 1 8 EMPLOYEES SAMPLE 1 8 JOB_HISTORY SAMPLE rows selected. DBA_EXTENTS 뷰 : DBA_EXTENTS 뷰를사용하여주어진세그먼트에대한확장영역을검사합니다. SQL> SELECT extent_id,file_id,block_id,blocks 2 FROM dba_extents 3 WHERE owner='hr' 4 AND segment_name='employees'; EXTENT_ID FILE_ID BLOCK_ID BLOCKS rows selected. Oracle9i Database Administration Fundamentals I 9-30

315 ß ( ) DBA_FREE_SPACE 뷰 : DBA_FREE_SPACE 뷰를사용하여주어진세그먼트에대한확장영역을검사합니다. SQLPLUS> SELECT tablespace_name, count(*), 2> max(blocks), sum(blocks) 3> FROM dba_free_space 4> GROUP BY tablespace_name; TABLESPACE_NAMECOUNT(*) MAX(BLOCKS SUM(BLOCKS DATA RBS SORT SYSTEM TEMP rows selected. Oracle9i Database Administration Fundamentals I 9-31

316 ñ ñ ó ñ. ñ ñ. ò ÿ 9-32 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 9-32

317 9 ñ ññ. ñ ó ñ Copyright Oracle Corporation, All rights reserved. 9 주 : SQL*Plus 또는 Oracle Enterprise Manager와 SQL*Plus Worksheet를사용하여연습을수행할수있습니다. Oracle9i Database Administration Fundamentals I 9-33

318 9: 1 SYSTEM 사용자로연결하여테이블및인덱스를생성하는 lab09_01.sql 스크립트를실행하십시오. 2 데이터베이스에있는다른유형의세그먼트를식별하십시오. 3 질의를작성하여어떤세그먼트가최대확장영역보다작은다섯개의확장영역에있는지확인하고부트스트랩세그먼트는무시하십시오. 이질의는나중에데이터로드시오류를발생할수있는세그먼트식별에유용하게사용됩니다. 4 EMP 테이블을위해공간이할당되는파일은? 5 lab09_05.sql 스크립트를실행합니다. 6 테이블스페이스가사용가능한영역을나열하십시오. 질의에는각테이블스페이스에있는부분의개수, 총사용가능영역및사용가능한최대확장영역이표시되어야합니다. 7 추가확장영역을할당할때공간이부족하여오류를발생할수있는세그먼트를나열하십시오. Oracle9i Database Administration Fundamentals I 9-34

319 Copyright Oracle Corporation, All rights reserved.

320 ñ ñ ñ. ú ß 10-2 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 10-2

321 ñ ñ. ú ú ó ñ Copyright Oracle Corporation, All rights reserved. 자동실행취소관리 Oracle 서버는실행취소세그먼트의생성, 할당및튜닝을자동으로관리합니다. 수동실행취소관리실행취소세그먼트의생성, 할당및튜닝을사용자가수동으로관리합니다. 이방법은 Oracle9i 이전버전에서사용할수있는유일한방법이었습니다. 수동실행취소관리에대한내용은 " 부록 B: 수동으로실행취소데이터관리 " 를참조하십시오. Oracle9i Database Administration Fundamentals I 10-3

322 10-4 Copyright Oracle Corporation, All rights reserved. 실행취소세그먼트는프로세스가데이터베이스에있는데이터를변경할경우이전값 ( 실행취소데이터 ) 을저장하는데사용됩니다. 실행취소세그먼트는수정되기전의데이터자체및데이터위치를저장합니다. 실행취소세그먼트의헤더는실행취소세그먼트를사용하는현재트랜잭션에대한정보가저장된트랜잭션테이블을포함합니다. 순차적인트랜잭션은실행취소세그먼트를하나만사용하여모든실행취소데이터를저장합니다. 많은동시트랜잭션이실행취소세그먼트하나에기록될수있습니다. Oracle9i Database Administration Fundamentals I 10-4

323 : 10-5 Copyright Oracle Corporation, All rights reserved. : 트랜잭션롤백트랜잭션이테이블에서행을수정할때수정된열의이전이미지 ( 실행취소데이터 ) 는실행취소세그먼트에저장됩니다. 트랜잭션이롤백되는경우 Oracle 서버는실행취소세그먼트값을그행에기록하여원래값을복원합니다. 트랜잭션복구트랜잭션이진행되는동안인스턴스가실패한경우 Oracle 서버는데이터베이스가다시열릴때커밋되지않은변경사항을실행취소해야합니다. 이러한롤백은트랜잭션복구의일부입니다. 실행취소세그먼트의변경사항은리두로그파일로도보호되므로복구가가능합니다. 읽기일관성트랜잭션이진행되는동안데이터베이스의다른사용자는이트랜잭션에의해커밋되지않은변경사항을볼수없습니다. 또한명령문에서는해당명령문이실행을시작한후커밋된변경사항을볼수없습니다. 실행취소세그먼트에있는이전값 ( 실행취소데이터 ) 은주어진명령문에대한일관된이미지를제공하는데에도사용됩니다. Oracle9i Database Administration Fundamentals I 10-5

324 SELECT * FROM 10-6 Copyright Oracle Corporation, All rights reserved. 다른트랜잭션에서데이터를수정하더라도 Oracle 서버는명령문에서일관성있는시점에해당데이터를볼수있도록보장합니다. Oracle 서버에서는 SELECT 문을실행하기시작할때현재 SCN( 시스템변경번호 ) 을결정하고이 SCN 전에커밋되지않은변경사항을처리하지않도록합니다. 여러변경사항이발생하고있을때장기적으로실행하는질의가수행되는경우를생각해봅시다. 질의시작시행에커밋되지않은변경사항이있을경우 Oracle 서버는실행취소세그먼트에서변경사항의이전이미지를검색하고변경사항을메모리의행복사본에적용하여읽기일관성이있는행의이미지를구성합니다. 트랜잭션읽기일관성읽기일관성은 SQL 문에대해항상제공됩니다. 그러나트랜잭션시작시다음명령을실행하여읽기전용트랜잭션에대해읽기일관성을요구할수있습니다. SQL> SET TRANSACTION READ ONLY; 또는트랜잭션시작시다음명령을실행하여 DML을수행하는트랜잭션에대해읽기일관성을요구할수있습니다. SQL> SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; 두경우모두Oracle 서버에서는트랜잭션을시작할때부터읽기일관성이있는데이터를제공합니다. SERIALIZABLE을사용하면성능에부정적인영향을줄수있습니다. Oracle9i Database Administration Fundamentals I 10-6

325 SYSTEM: SYSTEM SYSTEM: ú : UNDO ñ. ú : : ñ : : OFFLINE IMMEDIATE, TEMPORARY FOR RECOVER ÿ ÿ ñ Copyright Oracle Corporation, All rights reserved. SYSTEM 실행취소세그먼트 SYSTEM 실행취소세그먼트는데이터베이스를생성할때 SYSTEM 테이블스페이스에서생성됩니다. 이실행취소세그먼트는 SYSTEM 테이블스페이스의객체에대한변경사항에만사용될수있습니다. SYSTEM 실행취소세그먼트는수동모드와자동모드모두에서동일하게존재하고작동합니다. 비SYSTEM 실행취소세그먼트여러테이블스페이스를가진데이터베이스에는수동모드의경우최소한하나의비 SYSTEM 실행취소세그먼트, 자동모드의경우하나의 UNDO 테이블스페이스가필요합니다. 수동모드수동모드에서는데이터베이스관리자가생성하는비SYSTEM 실행취소세그먼트를임의의비SYSTEM 테이블스페이스에있는객체의변경사항에대해사용할수있습니다. 비 SYSTEM 실행취소세그먼트에는두가지유형이있습니다. 전용전용실행취소세그먼트는매개변수파일에나열되어있으므로인스턴스가온라인으로설정한세그먼트입니다. 그러나전용롤백세그먼트는 ALTER ROLLBACK SEGMENT 명령을실행하여명시적으로온라인으로설정할수있습니다. Oracle9i Database Administration Fundamentals I 10-7

326 ( ) 공용공용실행취소세그먼트는데이터베이스에서사용할수있는실행취소세그먼트의풀을형성합니다. 공용실행취소세그먼트는대개 Oracle Real Application Cluster와함께사용되어 Real Application Cluster 인스턴스가사용할수있는실행취소세그먼트의풀을생성합니다. 주 : 공용실행취소세그먼트의사용에대해서는 Oracle9i Real Application Clusters and Administration 설명서에서설명합니다. 지연된실행취소세그먼트지연된실행취소세그먼트는테이블스페이스를오프라인으로설정할때생성되며테이블스페이스를온라인으로재설정할때트랜잭션을롤백하는데사용됩니다. 이세그먼트는더이상필요하지않을때자동으로삭제됩니다. 지연된실행취소세그먼트는 Oracle 서버에서유지관리되므로직접유지관리하지않아도됩니다. Oracle9i Database Administration Fundamentals I 10-8

327 ú : ä UNDO ÿ ñ. ñ UNDO òñ. Oracle ú UNDO ñ Copyright Oracle Corporation, All rights reserved. ú : ä 실행취소세그먼트는다음이름지정규칙으로생성됩니다. _SYSSMUn$ 예 : _SYSSMU1$ _SYSSMU2$ Oracle9i Database Administration Fundamentals I 10-9

328 ú : ñ. UNDO_MANAGEMENT UNDO_TABLESPACE UNDO ñ. undo1db01.dbf UNDO Copyright Oracle Corporation, All rights reserved. ú : 데이터베이스에 UNDO 테이블스페이스가하나만있고 UNDO_MANAGEMENT가 AUTO로설정된경우 UNDO_TABLESPACE 매개변수는선택적요소입니다. Oracle 서버는자동으로 UNDO 테이블스페이스를선택합니다. Oracle9i Database Administration Fundamentals I 10-10

329 ú = UNDO_MANAGEMENT: ú ú ñ. UNDO_TABLESPACE: UNDO ñ. UNDO_MANAGEMENT=AUTO UNDO_TABLESPACE=UNDOTBS Copyright Oracle Corporation, All rights reserved. ú : UNDO_MANAGEMENT 매개변수 UNDO_MANAGEMENT 매개변수는데이터베이스의실행취소모드를결정합니다. 이매개변수는 AUTO 또는 MANUAL 값중하나로설정할수있으며초기화매개변수파일에서설정해야합니다. 데이터베이스가시작된이후에는 UNDO_MANAGEMENT를동적으로변경할수없습니다. 자동모드는데이터베이스를자동실행취소관리모드로설정하며 UNDO 테이블스페이스가필요합니다. 기본값인수동모드에서는이전버전의 Oracle 서버에서처럼필요한경우데이터베이스내에실행취소세그먼트를생성하고관리할수있습니다. UNDO_TABLESPACE 매개변수사용할 UNDO 테이블스페이스를지정합니다. 이매개변수는초기화파일에서설정하거나 ALTER SYSTEM 명령을사용하여동적으로변경할수있습니다. SQL> ALTER SYSTEM SET undo_tablespace = UNDOTBS; Oracle9i Database Administration Fundamentals I 10-11

330 ú = UNDO CREATE DATABASE È UNDO ñ. CREATE DATABASE db01... UNDO TABLESPACE undo1 DATAFILE '/u01/oradata/undoldb01.dbf' SIZE 20M AUTOEXTEND ON CREATE UNDO TABLESPACE ñ. CREATE UNDO TABLESPACE undo1 DATAFILE '/u01/oradata/undo1db01.dbf' SIZE 20M; Copyright Oracle Corporation, All rights reserved. ú : UNDO 자동실행취소관리에는 UNDO 테이블스페이스가필요합니다. UNDO 테이블스페이스가데이터베이스에두개이상존재할수있지만하나만활성화될수있습니다. CREATE DATABASE 문에절을추가하여데이터베이스와함께 UNDO 테이블스페이스를생성할수있습니다. 데이터베이스를생성하는동안 UNDO_MANAGEMENT 매개변수를 AUTO로설정하고 CREATE DATABASE 문에서 UNDO 테이블스페이스절을생략하면 Oracle 서버는 SYS_UNDOTBS라는이름의 UNDO 테이블스페이스를생성합니다. 데이터파일테이블스페이스 SYS_UNDOTS에대한기본데이터파일은 'dbu1<oracle_sid>.dbf' 라는이름을갖습니다. 이파일은 $ORACLE_HOME/dbs에있으며크기는운영체제별로다릅니다. AUTOEXTEND는 ON으로설정됩니다. 데이터베이스가생성된후 CREATE UNDO TABLESPACE 명령을사용하여 UNDO 테이블스페이스를생성할수있습니다. Oracle9i Database Administration Fundamentals I 10-12

331 ú : UNDO ( ) Oracle Enterprise Manager를사용하여 UNDO 테이블스페이스생성 OEM Console에서다음을수행합니다. 1. Databases > Storage > Tablespace로이동합니다. 2. 마우스오른쪽버튼을눌러 Create를선택합니다. 3. General 탭에파일이름및파일크기를입력합니다. 4. Type 영역에서 Undo를선택합니다. 5. Create를누릅니다. Oracle9i Database Administration Fundamentals I 10-13

332 ú = UNDO ALTER TABLESPACE UNDO ñ. ñ ñ UNDO ñ. ALTER TABLESPACE undotbs ADD DATAFILE '/u01/oradata/undotbs2.dbf' SIZE 30M AUTOEXTEND ON; Copyright Oracle Corporation, All rights reserved. ú : UNDO 서버에서는 UNDO 테이블스페이스를변경할때다음절이지원됩니다. ADD DATAFILE RENAME DATAFILE [ONLINE OFFLINE] BEGIN BACKUP END BACKUP Oracle9i Database Administration Fundamentals I 10-14

333 ú : UNDO ( ) Oracle Enterprise Manager를사용하여 UNDO 테이블스페이스변경 OEM Console에서다음을수행합니다. 1. Databases > Storage로이동합니다. 2. Tablespace 폴더를선택하고마우스오른쪽버튼으로 UNDO 테이블스페이스를누릅니다. 3. Add a data file을선택합니다. Oracle9i Database Administration Fundamentals I 10-15

334 ú = UNDO UNDO ñ UNDO ñ. UNDO ò ñ. UNDO ÿ ñ. ALTER SYSTEM UNDO ú ñ. ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2; Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 10-16

335 Oracle Enterprise Manager UNDO Oracle Enterprise Manager를사용하여 UNDO 테이블스페이스전환 OEM Console에서다음을수행합니다. 1. Databases > Storage > Instance로이동합니다. 2. Configuration을누릅니다. 3. Undo 페이지의 Current Undo Tablespace 드롭다운목록에서 UNDO 테이블스페이스를선택합니다. 4. Apply를누릅니다. Oracle9i Database Administration Fundamentals I 10-17

336 ú = UNDO DROP TABLESPACE UNDO ñ. DROP TABLESPACE UNDOTBS2; UNDO þ ñ ñ. UNDO UNDO ñ. ÿ ñ Copyright Oracle Corporation, All rights reserved. ú : UNDO UNDO 테이블스페이스를삭제하면인스턴스에서사용할수없으며테이블스페이스내의모든트랜잭션이완료되어야합니다. UNDOTBS 테이블스페이스가데이터베이스의현재활성 UNDO 테이블스페이스인경우삭제하려면먼저새 UNDO 테이블스페이스를설정해야합니다. 우선 UNDO 테이블스페이스가없는경우하나를생성한다음 ALTER SYSTEM 명령을사용하여현재 UNDO 테이블스페이스를변경합니다. SQL> ALTER SYSTEM SET undo_tablespace = UNDOTBS2; 테이블스페이스내의모든트랜잭션이완료된이후에는 UNDOTBS 테이블스페이스를삭제할수있습니다. 활성트랜잭션이있는지여부를확인하려면다음질의를사용합니다. SQL> SELECT a.name,b.status 2 FROM v$rollname a, v$rollstat b 3 WHERE a.name IN ( SELECT segment_name 4 FROM dba_segments 5 WHERE tablespace_name = 'UNDOTBS ) 6 AND a.usn = b.usn; NAME STATUS _SYSSMU4$ PENDING OFFLINE Oracle9i Database Administration Fundamentals I 10-18

337 ú : UNDO ( ) PENDING OFFLINE 상태의실행취소세그먼트에는활성트랜잭션이아직포함되어있습니다. 질의에서행이반환되지않으면모든트랜잭션이완료되며다음명령으로테이블스페이스를삭제할수있습니다. SQL> DROP TABLESPACE UNDOTBS; Oracle 서버는다른 UNDO 테이블스페이스로전환한후 UNDOTBS 테이블스페이스를참조하여질의에대해일관성있는읽기를제공할수있습니다. UNDOTBS 테이블스페이스로더이상일관성있는읽기를제공할수없는경우해당테이블스페이스의정보를요청하는질의를수행하면 "ORA-1555 snapshot too old" 오류가발생합니다. Oracle9i Database Administration Fundamentals I 10-19

338 ú : UNDO ( ) Oracle Enterprise Manager를사용하여 UNDO 테이블스페이스삭제 OEM Console에서다음을수행합니다. 1. Databases > Storage로이동합니다. 2. Tablespace 폴더를선택합니다. 3. UNDO 테이블스페이스의이름을마우스오른쪽버튼으로누른다음메뉴에서 Remove를선택합니다. 4. 삭제를확인합니다. Oracle9i Database Administration Fundamentals I 10-20

339 ú = UNDO_SUPPRESS_ERRORS TRUE ñ. ú ú ñ. UNDO_RETENTION ñ Copyright Oracle Corporation, All rights reserved. ú : UNDO_SUPPRESS_ERRORS 매개변수 UNDO_SUPPRESS_ERRORS를사용하면자동실행취소관리모드에서수동실행취소관리모드작업 ( 예 : ALTER ROLLBACK SEGMENT ONLINE) 을수행할때발생하는오류를방지할수있습니다. 이매개변수를설정하면모든응용프로그램및스크립트가자동실행취소관리모드로변환되기전에실행취소테이블스페이스기능을사용할수있습니다. 예를들어, SET TRANSACTION USE ROLLBACK SEGMENT 문을사용하는응용프로그램에 ALTER SESSION SET UNDO_SUPPRESS_ERRORS = true 문을추가하여 ORA 오류를방지할수있습니다. ORA-30019: Illegal rollback segment operation in Automatic Undo mode UNDO_RETENTION 매개변수일관성있는읽기를위해제공되는실행취소데이터의보유기간을결정합니다. 실행취소데이터를보유하면질의를더길게수행할수있으며 UNDO 테이블스페이스에대해큰데이터파일이필요하게됩니다. 초단위로정의되는 UNDO_RETENTION 매개변수는초기화파일에서설정하거나 ALTER SYSTEM 명령을사용하여동적으로수정할수있습니다. SQL> ALTER SYSTEM SET UNDO_RETENTION=900; 값을 900으로설정하면실행취소데이터를 15분동안보유합니다. Oracle9i Database Administration Fundamentals I 10-21

340 ú : ( ) UNDO_RETENTION을설정한후에도 UNDO 테이블스페이스의크기가너무작으면지정한시간동안실행취소데이터가보유되지않습니다. Oracle 서버는 UNDO 테이블스페이스내에공간을할당하는알고리즘을사용하며새트랜잭션이실패하기전에활성트랜잭션없이만기되지않은공간을할당합니다. Oracle9i Database Administration Fundamentals I 10-22

341 SELECT end_time,begin_time,undoblks FROM v$undostat; END_TIME BEGIN_TIME UNDO JAN-01 13:44:18 22-JAN-01 13:43: JAN-01 13:43:04 22-JAN-01 13:33: JAN-01 13:33:04 22-JAN-01 13:23: JAN-01 13:23:04 22-JAN-01 13:13: JAN-01 13:13:04 22-JAN-01 13:03: JAN-01 13:03:04 22-JAN-01 12:53: JAN-01 12:53:04 22-JAN-01 12:43: JAN-01 12:43:04 22-JAN-01 12:33: JAN-01 12:33:04 22-JAN-01 12:23: Copyright Oracle Corporation, All rights reserved. V$UNDOSTAT 뷰 : 이뷰는데이터베이스의작동상태를보여주는통계데이터의히스토그램을표시합니다. 뷰의각행에는 10분간격으로인스턴스에서수집된통계가유지됩니다. 이뷰를사용하면현재작업로드에필요한실행취소공간의크기를예측할수있습니다. Oracle 서버는이뷰를사용하여시스템에서실행취소사용을튜닝할수있습니다. 이뷰는자동모드와수동모드에서모두사용할수있습니다. 시간간격은대개 10분이지만해당시간간격이시작되면최신행에는 10분미만의시간이반환됩니다. Oracle9i Database Administration Fundamentals I 10-23

342 ú = UNDO UNDO ñ ñ. (UR) UNDO_RETENTION( ) (UPS) ò þ (DBS) ò (db_block_size) UndoSpace = [UR * (UPS * DBS)] + (DBS * 24) Copyright Oracle Corporation, All rights reserved. ú : UNDO UNDO 테이블스페이스의크기를조정하려면세가지데이터가필요합니다. 두가지데이터는초기화파일에서얻을수있으며 UNDO_RETENTION과 DB_BLOCK_SIZE입니다. 공식의세번째부분에는데이터베이스에대한질의가필요합니다. 초당생성되는실행취소블록의수는 V$UNDOSTAT에서얻을수있습니다. 다음공식은생성되는전체블록의수를계산하여모니터되는시간 ( 초 ) 으로나눕니다. SQL> SELECT (SUM(undoblks) / SUM) ((end_time - begin_time) * 86400)FROM v$undostat; END_TIME 및 BEGIN_TIME 열의데이터유형은 DATE입니다. 데이터유형 DATE 간에뺄셈을수행하면결과가날짜로표시됩니다. 날짜를초로변환하려면하루를초로계산한 86400을곱합니다. 질의의결과로초당실행취소블록수가반환됩니다. 이값은DB_BLOCK_SIZE에정의된데이터베이스블록과같은크기인실행취소블록의크기로곱해야합니다. 다음질의는필요한바이트수를계산합니다. Oracle9i Database Administration Fundamentals I 10-24

343 ú : UNDO ( ) SQL> SELECT (UR * (UPS * DBS)) + (DBS * 24) AS "Bytes" 2 FROM (SELECT value AS UR 3 FROM v$parameter 4 WHERE name = 'undo_retention'), 5 (SELECT (SUM(undoblks)/SUM(((end_time - begin_time)*86400))) AS UPS 6 FROM v$undostat), 7 (SELECT value AS DBS 8 FROM v$parameter 9 WHERE name = 'db_block_size'); Bytes 바이트를 MB 로변환하려면 1,048,576 바이트로나눕니다. 이데이터베이스에대한결과는 18.22MB 입니다. 최상의결과를얻으려면데이터베이스의작업로드가가장많은낮동안에계산해야합니다. Oracle9i Database Administration Fundamentals I 10-25

344 ú = Undo Quota ÿ ñ. undo quota ó ò ñ. Resource Manager UNDO_POOL ÿ ñ. ÿ þ ñþ ÿ ñ Copyright Oracle Corporation, All rights reserved. ú : Undo Quota 자원계획을사용하여사용자를그룹화하고그룹에서사용할수있는자원의양을제한할수있습니다. 그룹에서생성되는실행취소데이터의양은 UNDO_POOL의값을설정하여제한할수있으며기본값은제한이없습니다. 그룹이지정된제한을초과하면오류가발생되고현재트랜잭션이완료되거나중단될때까지그룹에대해새트랜잭션을수행할수없습니다. ORA-30027: "Undo quota violation - failed to get %s (bytes)" Cause: The amount of undo assigned to the consumer group of this session has been exceeded. Action: Ask DBA to increase undo quota, or wait until other transactions commit before proceeding. 주 : 자원관리는 " 암호보안및자원관리 " 단원에서자세하게다룹니다. Oracle9i Database Administration Fundamentals I 10-26

345 ó ñ ñ. DBA_ROLLBACK_SEGS ú V$ROLLNAME V$ROLLSTAT V$UNDOSTAT V$SESSION V$TRANSACTION Copyright Oracle Corporation, All rights reserved. 데이터베이스의모든실행취소세그먼트에대한정보를얻으려면 DBA_ROLLBACK_SEGS 뷰를질의합니다. SQL> SELECT segment_name,owner,tablespace_name,status 2 FROM dba_rollback_segs; SEGMENT_NA OWNER TABLESPACE STATUS SYSTEM SYS SYSTEM ONLINE _SYSSMU1$ PUBLIC UNDO1 ONLINE _SYSSMU2$ PUBLIC UNDO1 ONLINE _SYSSMU3$ PUBLIC UNDO1 ONLINE _SYSSMU4$ PUBLIC UNDO1 ONLINE 오프라인상태의실행취소세그먼트에대한정보는 DBA_ROLLBACK_SEGS에서만볼수 있습니다. 동적성능뷰에는온라인상태의실행취소세그먼트만나타납니다. OWNER 열에서실행취소세그먼트의유형을지정합니다. SYS: 전용실행취소세그먼트를말합니다. PUBLIC: 공용실행취소세그먼트를말합니다. Oracle9i Database Administration Fundamentals I 10-27

346 ( ) V$ROLLSTAT 및 V$ROLLNAME 뷰 : V$ROLLSTAT 뷰와 V$ROLLNAME 뷰를조인하여현재인스턴스가사용하는실행취소세그먼트의통계를얻습니다. 예 : SQL> SELECT n.name, s.extents, s.rssize,s.hwmsize, 2 s.xacts, s.status 3 FROM v$rollname n, v$rollstat s 4 WHERE n.usn = s.usn; NAME EXTENTS RSSIZE HWMSIZE XACTS STATUS SYSTEM ONLINE _SYSSMU1$ ONLINE _SYSSMU2$ ONLINE _SYSSMU3$ ONLINE _SYSSMU4$ ONLINE V$TRANSACTION 및 V$SESSION 뷰 : 현재활성트랜잭션의실행취소세그먼트사용을확인하려면 V$TRANSACTION 및 V$SESSION 뷰를조인합니다. 예 : SQL> SELECT s.username, t.xidusn, t.ubafil, 2 t.ubablk, t.used_ublk 3 FROM v$session s, v$transaction t 4 WHERE s.saddr = t.ses_addr; USERNAME XIDUSN UBAFIL UBABLK USED_UBLK HR Oracle9i Database Administration Fundamentals I 10-28

347 ñ ñ ó ñ. ú UNDO UNDO Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 10-29

348 10 ñ ññ. UNDO UNDO UNDO Copyright Oracle Corporation, All rights reserved. 10 주 : SQL*Plus 또는 Oracle Enterprise Manager와 SQL*Plus Worksheet를사용하여연습을수행할수있습니다. Oracle9i Database Administration Fundamentals I 10-30

349 10: 1 SYSTEM/MANAGER 사용자로연결하고 UNDOTBS 테이블스페이스에실행취소세그먼트를나열하십시오. 2 $HOME/oradata/u03에서실행취소테이블스페이스 UNDO2를생성하고 15MB로크기를조정하십시오. UNDO2 테이블스페이스에있는롤백세그먼트를나열하십시오. 3 새로운텔넷세션에서 SQL*Plus를시작하고 HR 사용자로접속한다음 lab10_03.sql을실행하여 DEPARTMENTS 테이블에행을삽입하십시오. 세션을커밋하거나롤백하거나종료하지마십시오. 4 SYS로접속되어있는세션에서 ALTER SYSTEM 명령을사용하여해당인스턴스에대해 UNDO 테이블스페이스를 UNDOTBS에서 UNDO2로전환하십시오. 5 SYS 사용자로 UNDOTBS 테이블스페이스를삭제하십시오. 결과는? 6 UNDOTBS 테이블스페이스에실행취소세그먼트와해당상태를나열하십시오. 이목록을단계1의목록과비교해보십시오. 7 HR 사용자로접속된세션에서트랜잭션을롤백한후세션을종료하십시오. 8 SYS 사용자로접속된세션에서 UNDOTBS 테이블스페이스를삭제하십시오. 결과는? 9 SYS 사용자로다음명령을실행하십시오. ALTER SYSTEM SET undo_retention=0 SCOPE=memory; 이제 UNDOTBS 테이블스페이스를삭제하십시오. 결과는? 주 : 테이블스페이스가삭제되기전에지연될수도있습니다. Oracle9i Database Administration Fundamentals I 10-31

350 Oracle9i Database Administration Fundamentals I 10-32

351 Copyright Oracle Corporation, All rights reserved.

352 ñ ñ ñ7 ñ Oracle ó ÿ ROWID ÿ ROWID, 11-2 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 11-2

353 11-3 Copyright Oracle Corporation, All rights reserved. 오라클데이터베이스에서는여러가지방법으로사용자데이터를저장할수있습니다. 일반테이블 분할테이블 인덱스구성테이블 클러스터화된테이블 주 : 분할테이블, 인덱스구성테이블, 클러스터화된테이블은다른과정에서설명합니다. 일반테이블대개 " 테이블 " 이라고하는일반테이블은사용자데이터를저장하는데가장일반적으로사용되는폼이며기본테이블이고이단원에서주로설명됩니다. 데이터베이스관리자는테이블의행분산에대해매우제한된제어를수행합니다. 행은테이블의작업에따라임의의순서로저장됩니다. Oracle9i Database Administration Fundamentals I 11-3

354 ( ) 분할테이블분할테이블에서는크기를조정할수있는응용프로그램을구축할수있습니다. 분할테이블은다음특성을가집니다. 분할테이블에는하나이상의분할영역이있으며각분할영역은범위분할, 해시분할, 조합분할또는목록분할을사용하여분할된행을저장합니다. 분할테이블의각분할영역은세그먼트며다른테이블스페이스에있을수있습니다. 분할영역은여러프로세스를동시에사용하여질의하거나조작할수있는대형테이블에유용합니다. 테이블내의분할영역관리에특수명령을사용할수있습니다. 인덱스구성테이블인덱스구성테이블은하나이상의열에기본키인덱스를가진힙테이블과유사하지만테이블과 B 트리인덱스에대해별도의저장영역두개를유지관리하는대신테이블의기본키와기타열값을포함한단일 B 트리만을유지관리합니다. PCTTHRESHOLD 값이설정되고오버플로우영역이필요한더긴길이의행때문에오버플로우세그먼트가존재할수있습니다. 인덱스구성테이블에서는정확한일치및범위검색을포함한질의에대해빠른키기반의테이블데이터액세스를제공합니다. 또한키열이테이블과인덱스에서중복되지않으므로필요한저장영역이감소됩니다. 나머지비키열은인덱스항목이매우크지않으면인덱스에저장되며매우크면 Oracle 서버에서는이문제를처리하기위해 OVERFLOW 절을제공합니다. Oracle9i Database Administration Fundamentals I 11-4

355 ( ) 클러스터화된테이블클러스터화된테이블에서는테이블데이터를저장하기위해선택적인방식을제공합니다. 클러스터는동일한데이터블록을공유하는테이블또는테이블그룹으로구성되며이테이블은공통열을공유하고자주함께사용되므로함께그룹화됩니다. 클러스터는다음특성을가집니다. 클러스터는함께저장되어야하는행을식별하는데사용되는클러스터키를가집니다. 클러스터키는하나이상의열로구성할수있습니다. 클러스터의테이블은클러스터키에대응하는열을가집니다. 클러스터화는테이블을사용하는응용프로그램에그대로적용되는방식이며클러스터화된테이블의데이터는일반테이블에저장된데이터처럼조작할수있습니다. 클러스터키의열하나를갱신하면행이이전될수있습니다. 클러스터키는기본키에대해독립적입니다. 클러스터의테이블은기본키를가질수있으며이기본키는클러스터키또는다른열집합입니다. 클러스터는대개성능향상을위해생성합니다. 클러스터화된데이터에대한임의의액세스속도는향상되지만클러스터화된테이블에서의전체테이블스캔은대개속도가느려집니다. 클러스터는논리적구조에영향을주지않고테이블의물리적저장영역을다시정규화합니다. Oracle9i Database Administration Fundamentals I 11-5

356 Oracle CHAR(N), NCHAR(N) VARCHAR2(N), NVARCHAR2(N) NUMBER(P,S) DATE TIMESTAMP RAW(N) BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID, UROWID VARRAY TABLE REF 11-6 Copyright Oracle Corporation, All rights reserved. Oracle Oracle 서버에서는스칼라데이터, 모음및관계를저장하는여러내장데이터유형을제공합니다. 스칼라데이터유형문자데이터 : 데이터베이스에고정길이문자열이나가변길이문자열로문자데이터를저장할수있습니다. CHAR나 NCHAR와같은고정길이문자데이터유형은공백채움을사용하여저장됩니다. NCHAR는고정너비또는가변너비문자집합의저장을가능하게하는 Globalization Support 데이터유형입니다. 최대크기는한문자를저장하는데필요한바이트수에따라결정되며행당최대한계는 2,000바이트입니다. 기본값은문자집합에따라한문자또는한바이트입니다. 가변길이문자데이터유형은실제열값을저장하는데필요한바이트수만을사용하고각행에대해크기가다를수있으며최대 4,000바이트까지가능합니다. VARCHAR2와 NVARCHAR2는가변길이문자데이터유형의예입니다. Oracle9i Database Administration Fundamentals I 11-6

357 Oracle ( ) 스칼라데이터유형 ( 계속 ) 숫자데이터유형 : 오라클데이터베이스에서숫자는항상가변길이데이터로저장되며최대 38자리까지저장할수있습니다. 숫자데이터유형에는다음이필요합니다. 지수용으로한바이트 가수에서두자리마다한바이트 자릿수가 38바이트미만인경우음수용으로한바이트 DATE 데이터유형 : Oracle 서버에서는날짜를일곱바이트의고정길이필드에저장하며 Oracle DATE에는항상시간이포함됩니다. TIMESTAMP 데이터유형 : 이데이터유형에는날짜와소수점아홉자리까지표시되는초를포함한시간이저장됩니다. TIMESTAMP WITH TIME ZONE 및 TIMESTAMP WITH LOCAL TIME ZONE은일광절약시간과같은항목을요소화하기위해시간영역을사용할수있습니다. TIMESTAMP 및 TIMESTAMP WITH LOCAL TIME ZONE은기본키에서사용할수있지만 TIMESTAMP WITH TIME ZONE은사용할수없습니다. RAW 데이터유형 : 이데이터유형은작은이진데이터를저장할수있습니다. RAW 데이터가네트워크에서시스템간에전송되거나 Oracle 유틸리티를사용하여한데이터베이스에서다른데이터베이스로이동될경우 Oracle 서버는문자집합변환을수행하지않습니다. 실제열값을저장하는데필요한바이트수는각행마다크기가다르며최대 2,000바이트까지가능합니다. LONG, LONG RAW 및 LOB(Large Object) 데이터유형 Oracle에서는 LOB을저장하기위해다음여섯가지의데이터유형을제공합니다. 대형고정너비문자데이터를저장하기위한 CLOB 및 LONG 대형고정너비국가별문자집합데이터를저장하기위한 NCLOB 구조화되지않은데이터를저장하기위한 BLOB 및 LONG RAW 구조화되지않은데이터를운영체제파일에저장하기위한 BFILE LONG 및 LONG RAW 데이터유형은이전에는이진이미지, 문서또는지리정보와같은구조화되지않은데이터에사용되었고주로역호환성을위해제공됩니다. 이러한데이터유형은 LOB 데이터유형으로교체되었습니다. LOB 데이터유형은 LONG 및 LONG RAW와구분되고교환할수없습니다. LOB은 LONG API( 응용프로그램프로그래밍인터페이스 ) 를지원하지않으며그반대의경우도마찬가지입니다. Oracle9i Database Administration Fundamentals I 11-7

358 Oracle ( ) LONG, LONG RAW 및 LOB(Large Object) 데이터유형 ( 계속 ) 이전유형 (LONG 및 LONG RAW) 과비교하면서 LOB 기능을설명하는것이도움이됩니다. 이후부터 LONG은 LONG과 LONG RAW를, LOB은모든LOB 데이터유형을가리킵니다. LONG, LONG RAW ò ñ ó 2GB ó ÿ þ LOB ò ó 4GB ó ÿ 크기가 VARCHAR2 데이터유형에대해최대크기 (4,000바이트) 보다작지않으면 LOB에서는테이블에위치자를테이블외의다른위치에데이터를저장하지만 LONG에서는모든데이터를순서대로저장합니다. 또한 LOB에서는데이터를별도의세그먼트및테이블스페이스또는호스트파일에저장할수있습니다. LOB에서는 NCLOB을제외하고객체유형속성과복제를지원하지만 LONG에서는지원하지않습니다. LONG은기본적으로다른블록에저장된다음행조각을가리키는다른블록의행조각과함께체인화된행조각으로저장됩니다. 따라서 LONG은순차적으로액세스되어야합니다. 반면 LOB에서는파일형식인터페이스를통해데이터에대한임의의조각방식액세스를지원합니다. ROWID 및 UROWID 데이터유형 ROWID는테이블의다른열과함께질의할수있는데이터유형이며다음특성을가집니다. ROWID 는데이터베이스에있는각행에대한고유식별자입니다. ROWID 는명시적으로열값으로서저장되지않습니다. ROWID 는행의물리적주소를직접부여하지는않지만행위치를지정하는데사용될수있습니다. ROWID 를사용하면가장빨리테이블의행을액세스할수있습니다. ROWID는주어진키값의집합을가진행을지정하기위해인덱스에저장됩니다. Oracle8.1에서 Oracle 서버는범용 ROWID 또는 UROWID라고하는단일데이터유형을제공하여 Oracle 테이블이아닌외래테이블의 ROWID를지원하고모든종류의 ROWID를저장할수있습니다. 예를들어, UROWID 데이터유형은 IOT( 인덱스구성테이블 ) 에저장된행에대해ROWID를저장하는데필요합니다. UROWID를사용하려면 COMPATIBLE 매개변수의값을Oracle8.1 이상으로설정해야합니다. Oracle9i Database Administration Fundamentals I 11-8

359 Oracle ( ) 모음데이터유형테이블의주어진행에대해반복적인데이터를저장할수있는두가지모음데이터유형이있습니다. Oracle8i 전의 Oracle 버전에서는모음을정의하고사용하려면 Object 옵션이필요했습니다. 이러한유형에대한간략한설명은다음과같습니다. VARRAY( 가변배열 ): 가변배열은고객전화번호와같은작은수의요소를포함하고있는목록을저장하는데유용합니다. VARRAY에는다음특성이있습니다. 배열은순서를지정한데이터요소집합입니다. 주어진배열의모든요소는동일한데이터유형입니다. 각요소에는인덱스가있으며이인덱스는배열요소의위치에대응하는번호입니다. 배열요소의수는배열의크기를결정합니다. Oracle 서버에서는배열이가변크기가될수있으므로 VARRAY라고하지만최대크기는배열유형선언시지정되어야합니다. 중첩테이블 : 중첩데이블을사용하면테이블을테이블내의한열로정의할수있습니다. 중첩테이블은주문의여러항목처럼많은레코드를가진집합을저장하는데사용될수있습니다. 중첩테이블에는대개다음특성이있습니다. 중첩테이블은순서를지정하지않은레코드나행의집합입니다. 중첩테이블의행은동일한구조를갖습니다. 중첩테이블의행은상위테이블에있는해당행의포인터와함께상위테이블과는별도로저장됩니다. 중첩테이블의저장영역특성은데이터베이스관리자가정의할수있습니다. 중첩테이블에대해미리정의된최대크기는없습니다. REF( 관계데이터유형 ) 관계유형은데이터베이스내에서포인터로사용되며이러한유형을사용하려면 Object 옵션이필요합니다. 예를들어, 주문된각항목은제품코드를저장하지않고도 PRODUCTS 테이블의행을가리키거나참조할수있습니다. Oracle 사용자정의데이터유형 : Oracle 서버에서는사용자가추상데이터유형을정의하여응용프로그램내에서사용할수있습니다. Oracle9i Database Administration Fundamentals I 11-9

360 ROWID ÿ ROWID OOOOOO FFF BBBBBB RRR ó ÿ ROWID BBBBBBBB. RRRR. FFFF Copyright Oracle Corporation, All rights reserved. ROWID 확장된 ROWID는디스크에10 바이트의저장영역이필요하며 18문자를사용하여표시됩니다. ROWID는다음요소로구성됩니다. 데이터객체번호 : 테이블이나인덱스와같은각데이터객체가생성될때지정되고데이터베이스내에서고유합니다. 상대파일번호 : 테이블스페이스내의각파일에서고유합니다. 블록번호 : 파일내의행을포함하는블록의위치를나타냅니다. 행번호 : 블록헤더에있는행디렉토리슬롯의위치를식별합니다. 내부적으로데이터객체번호에는 32비트, 상대파일번호에는 10비트, 블록번호에는 22비트, 행번호에는 16비트가필요하며모두합하여총 80비트또는 10바이트입니다. 확장된 ROWID는데이터객체번호에여섯자리, 상대파일번호에세자리, 블록번호에여섯자리, 행번호에세자리를사용하는기본 64 암호화체계를사용하여표시됩니다. 기본 64 암호화체계는아래의예에서처럼 A-Z, a-z, 0-9, / 등총64문자를사용합니다. Oracle9i Database Administration Fundamentals I 11-10

361 ROWID ( ) SQL> SELECT department_id, rowid FROM hr.departments; DEPARTMENT_ID ROWID AAABQMAAFAAAAA6AAA 20 AAABQMAAFAAAAA6AAB 30 AAABQMAAFAAAAA6AAC 40 AAABQMAAFAAAAA6AAD 50 AAABQMAAFAAAAA6AAE 60 AAABQMAAFAAAAA6AAF 이예에대한설명은다음과같습니다. AAABQM는데이터객체번호입니다. AAF는상대파일번호입니다. AAAAA6는블록번호입니다. AAA는 ID=10인부서에대한행번호입니다. Oracle7과그이전버전의제한된 ROWID Oracle8 이전의오라클데이터베이스버전에서는제한된 ROWID 형식을사용했습니다. 제한된 ROWID는내부적으로여섯바이트만을사용했고데이터객체번호를포함하지않았습니다. 이러한형식은파일번호가데이터베이스내에서고유하므로 Oracle7 이전버전에서승인되었습니다. 따라서이전버전에서는 1,022개를넘는데이터파일을허용하지않았지만이번버전에서는테이블스페이스에대한제한입니다. Oracle8에서는테이블스페이스상대파일번호를사용하여이러한제한을제거했지만제한된 ROWID는모든인덱스항목이동일한세그먼트내의행을참조하는분할되지않은테이블의분할되지않은인덱스와같은객체에서여전히사용됩니다. ROWID를사용한행위치지정세그먼트는데이터객체번호를사용하여테이블스페이스하나에만상주할수있으므로 Oracle 서버에서는행을포함한테이블스페이스를결정할수있습니다. 테이블스페이스내의상대파일번호는파일의위치, 블록번호는행을포함한블록의위치, 행번호는행에대한행디렉토리항목의위치를지정하는데사용됩니다. 행디렉토리항목은행의시작위치를지정하는데사용될수있습니다. 따라서 ROWID는데이터베이스내의행위치를지정하는데사용될수있습니다. Oracle9i Database Administration Fundamentals I 11-11

362 ø ø Copyright Oracle Corporation, All rights reserved. 행데이터는가변길이레코드로데이터베이스블록에저장됩니다. 행에대한열은대개정의된순서대로저장되며후행 NULL 열은저장되지않습니다. 주 : 후행 NULL 열이아닌열의열길이는단일바이트여야합니다. 테이블의각행에는다음항목이포함되어있습니다. 행헤더 : 행의열개수, 체인정보, 행잠금상태를저장하는데사용됩니다. 행데이터 : Oracle 서버에서는각열에대해열길이와값을저장합니다. 열에 250바이트를초과하는저장영역이필요한경우열길이를저장하는데에는한바이트가필요합니다. 이때세바이트가열길이를위해사용됩니다. 열값은열길이바이트바로다음에저장됩니다. 인접한행간에는공백이필요하지않습니다. 블록의각행에는행디렉토리에슬롯이있으며디렉토리슬롯은행의처음을가리킵니다. Oracle9i Database Administration Fundamentals I 11-12

363 CREATE TABLE hr.employees( employee_id NUMBER(6), first_name VARCHAR2(20), last_name VARCHAR2(25), VARCHAR2(25), phone_number VARCHAR2(20), hire_date DATE DEFAULT SYSDATE, job_id VARCHAR2(10), salary NUMBER(8,2), commission_pct NUMBER (2,2), manager_id NUMBER(6), department_id NUMBER(4) ); Copyright Oracle Corporation, All rights reserved. CREATE TABLE 명령은관계형테이블또는객체테이블을생성하는데사용됩니다. 관계형테이블 : 이테이블은사용자데이터를유지하는기본구조입니다. 객체테이블 : 열정의에객체유형을사용하는테이블입니다. 객체테이블은특정유형의객체인스턴스를저장하기위해명시적으로정의되는테이블입니다. 주 : 객체테이블은이단원에서다루지않습니다. 테이블생성지침 테이블을별도의테이블스페이스에둡니다. 단편화를방지하려면지역적으로관리되는테이블스페이스를사용합니다. 주 : CREATE TABLE 명령을사용하여정의할수있는여러가지절과매개변수에대한자세한내용은 Oracle9i SQL Reference 설명서를참조하십시오. 사용자스키마에서관계형테이블을생성하려면 CREATE TABLE 시스템권한이있어야하며다른사용자의스키마에서테이블을생성하려면 CREATE ANY TABLE 권한이있어야합니다. 주 : 권한부여에대한자세한내용은 " 권한관리 " 단원을참조하십시오. Oracle9i Database Administration Fundamentals I 11-13

364 ( ) 다음예제는데이터딕셔너리관리테이블스페이스에서 DEPARTMENTS 테이블을생성합니다. SQL> CREATE TABLE hr.departments( 2 department_id NUMBER(4), 3 department_name VARCHAR2(30), 4 manager_id NUMBER(6), 5 location_id NUMBER(4)) 6 STORAGE(INITIAL 200K NEXT 200K 7 PCTINCREASE 0 MINEXTENTS 1 MAXEXTENTS 5) 8 TABLESPACE data; 위구문은 CREATE TABLE 절의일부입니다. STORAGE 절 STORAGE 절은테이블에대해저장영역특성을지정합니다. 첫번째확장영역에할당된저장영역은 200KB입니다. 두번째확장영역이필요한경우 NEXT 값으로정의된 200KB의저장영역이생성됩니다. 세번째확장영역이필요한경우에는 PCTINCREASE가 0으로설정되었으므로 200KB의저장영역이생성됩니다. 사용가능한확장영역수의최대값은 5이고최소값은 1로설정됩니다. MINEXTENTS: 할당되는확장영역의최소개수입니다. MAXEXTENTS: 할당되는확장영역의최대개수입니다. MINEXTENTS가 1보다큰값으로지정되고테이블스페이스에데이터파일이두개이상포함되면확장영역이다른데이터파일로분산됩니다. PCTINCREASE: NEXT 확장영역이후확장영역크기의증가율입니다. Oracle9i Database Administration Fundamentals I 11-14

365 ( ) 테이블에대해 physical_attributes_clause에서블록활용매개변수를지정할수도있습니다. PCTFREE: 테이블의각데이터블록에있는공간의비율을지정합니다. PCTFREE의값은 0에서 99까지설정할수있습니다. 0으로설정하면전체블록이새행을삽입하여채워질수있다는것을의미합니다. 기본값인 10으로설정하면기존행을갱신하기위해각블록의10% 를예약하고새행을삽입하여각블록을최대 90% 까지채울수있습니다. PCTUSED: 테이블의각데이터블록을유지관리하기위해사용되는공간의최소비율을지정합니다. 사용된공간이 PCTUSED보다작아지면행삽입을위해블록이사용됩니다. PCTUSED는 0에서 99까지정수로지정되며기본값은 40입니다. PCTFREE와 PCTUSED를함께사용하여새행이기존데이터블록에삽입될지새블록에삽입될지여부를결정합니다. 이두값의합은100이하가되어야합니다. 이러한매개변수는테이블의공간을보다효과적으로활용하는데사용됩니다. 주 : Oracle9i의자동세그먼트공간관리기능은 PCTUSED, FREELISTS 및 FREELIST GROUPS보다우선적으로사용됩니다. 이기능에대한자세한내용은 " 저장영역구조및관계 " 를참조하십시오. INITRANS: 테이블에할당된각데이터블록내의초기할당트랜잭션항목수를지정합니다. 이값은1에서 255까지이며기본값은 1입니다. 최소개수의동시트랜잭션으로블록을갱신할수있어야합니다. 일반적으로기본값을변경하지말아야합니다. MAXTRANS: 테이블에할당된데이터블록을갱신할수있는동시트랜잭션의최대개수를지정합니다. 이제한은질의에는적용되지않습니다. 이값은1에서 255까지이며기본값은데이터블록크기에따라달라집니다. TABLESPACE 절 TABLESPACE 절은테이블이생성되는테이블스페이스를지정합니다. 예제에있는테이블은데이터테이블스페이스내에상주합니다. TABLESPACE를생략한경우Oracle은테이블을포함하는스키마소유자의기본테이블스페이스에객체를생성합니다. 주 : 테이블스페이스에대한자세한내용은 " 테이블스페이스관리 " 단원을참조하십시오. Oracle9i Database Administration Fundamentals I 11-15

366 Oracle Enterprise Manager를사용하여테이블생성 OEM Console에서다음작업을수행합니다. 주 : OEM은테이블생성을위한여러가지옵션을제공합니다. 1. Databases > Schema > Table로이동합니다. 2. 마우스오른쪽버튼을눌러 Create를선택합니다. 3. 테이블이름, 테이블스페이스, 소유자, 열및데이터유형과크기와같은테이블정보를입력합니다. 4. Create를누릅니다. 마법사를사용한테이블생성 : 1. Databases > Schema > Table로이동합니다. 2. Object > Create Using Wizard를선택합니다. 3. 테이블이름, 테이블스페이스, 소유자, 열, 데이터유형및크기와같은테이블정 보를입력합니다. 4. Finish를누릅니다. Oracle9i Database Administration Fundamentals I 11-16

367 : ñ. ñ þ ñ. ñ ó Copyright Oracle Corporation, All rights reserved. : 실행취소세그먼트, 임시세그먼트및인덱스를포함하는테이블스페이스가아닌별도의테이블스페이스에테이블을둡니다. 단편화를방지하려면지역적으로관리되는테이블스페이스에테이블을넣으십시오. Oracle9i Database Administration Fundamentals I 11-17

368 GLOBAL TEMPORARY ñ. CREATE GLOBAL TEMPORARY TABLE hr.employees_temp AS SELECT * FROM hr.employees; ú ñ. DML þ ñ., ñ Copyright Oracle Corporation, All rights reserved. 임시테이블을생성하여트랜잭션또는세션동안에만존재하는세션전용데이터를보유할수있습니다. CREATE GLOBAL TEMPORARY TABLE 명령은트랜잭션별또는세션별로임시테이블을생성합니다. 세션별임시테이블의경우에는데이터가해당세션동안에존재하지만트랜잭션별임시테이블의경우에는데이터가트랜잭션동안에존재합니다. 세션의데이터는세션전용이며각세션은자체데이터만을보고수정할수있습니다. DML 잠금은임시테이블의데이터에는적용되지않습니다. 행의기간을제어하는절은다음과같습니다. ON COMMIT DELETE ROWS: 트랜잭션내에서만행을볼수있도록지정합니다. ON COMMIT PRESERVE ROWS: 전체세션에서행을볼수있도록지정합니다. 임시테이블에인덱스, 뷰및트리거를생성하고또한 Export 유틸리티와 Import 유틸리티를사용하여임시테이블정의를엑스포트하고임포트할수있습니다. 그러나 ROWS 옵션을사용하더라도데이터는엑스포트되지않습니다. 임시테이블의정의는모든세션에서볼수있습니다. Oracle9i Database Administration Fundamentals I 11-18

369 PCTFREE PCTUSED PCTFREE PCTUSED ( - ) * PCTFREE - * Copyright Oracle Corporation, All rights reserved. PCTFREE PCTUSED PCTFREE 설정 PCTFREE가높을수록데이터베이스블록내에갱신할수있는여유공간이많아집니다. 테이블에다음이포함되어있을경우높은값을설정합니다. 처음에는 NULL이고이후에값을가진열로갱신되는열 갱신결과크기가증가할가능성이있는열 PCTFREE가높을수록블록밀도가낮아져서각블록은적은행을수용할수있습니다. 위에서지정한공식은행성장에대비하여블록에사용가능영역이충분한지확인합니다. PCTUSED 설정 PCTUSED를설정하여평균행을수용할만큼충분한공간이있을때만사용가능영역목록에블록을반환함을확인합니다. 사용가능영역목록의블록에행을삽입하기위한충분한공간이없을경우 Oracle 서버에서는사용가능영역목록의다음블록을조회합니다. 이러한선형스캔은공간이충분한블록을찾을때까지또는목록의끝에도달할때까지계속됩니다. 주어진공식을사용하면필수의사용가능영역이있는블록을찾을가능성이높아져스캔시간이줄어듭니다. 주 : 평균행크기의값은 ANALYZE TABLE 명령을사용하여예측할수있습니다. Oracle9i Database Administration Fundamentals I 11-19

370 11-20 Copyright Oracle Corporation, All rights reserved. 행이전 PCTFREE를낮은값으로설정하면블록에는갱신으로인해커진행을수용할공간이충분하지않습니다. 이러한경우 Oracle 서버에서는전체행을새블록으로이동하고포인터를원래블록에서새위치를가리키도록둡니다. 이러한프로세스를행이전이라고합니다. 행이이전될때 Oracle 서버에서는데이터를검색하기위해두개의데이터블록을스캔해야하므로이행과연관된 I/O( 입 / 출력 ) 성능이감소됩니다. 행체인화행이너무커서블록에맞지않을경우행체인화가발생합니다. 행에너무긴열이포함되어있을때도발생할수있으며이경우Oracle 서버에서는행조각이라고하는작은조각으로행을나눕니다. 각행조각은전체행을검색하고어셈블하기위해필요한포인터와함께블록에저장됩니다. 가능하면테이블을열개수가적은여러테이블로분할하거나큰블록크기를선택하면행체인화를최소화할수있습니다. 주 : 행이전및행체인화는Oracle9i Database Performance Tuning( 한글판 ) 과정에서자세하게다룹니다. Oracle9i Database Administration Fundamentals I 11-20

371 ALTER TABLE hr.employees PCTFREE 30 PCTUSED 50 STORAGE(NEXT 500K MINEXTENTS 2 MAXEXTENTS 100); Copyright Oracle Corporation, All rights reserved. 일부저장영역매개변수와임의의블록활용매개변수는 ALTER TABLE 명령을사용하여수정할수있습니다. 구문 : ALTER TABLE [schema.]table {[ storage-clause ] [ INITRANS integer ] [ MAXTRANS integer]} 저장영역매개변수변경결과수정가능한매개변수와수정의함의는다음과같습니다. NEXT: Oracle 서버에서테이블에대해다른확장영역을할당할때새값이사용됩니다. 이후의확장영역크기는 PCTINCREASE 만큼증가합니다. Oracle9i Database Administration Fundamentals I 11-21

372 ( ) 저장영역매개변수변경결과 ( 계속 ) PCTINCREASE: PCTINCREASE 의변경사항은데이터딕셔너리에등록되며 Oracle 서버에서다음확장영역을할당할때 NEXT 를재계산하는데사용됩니다. 두개의확장영역을가진테이블에서 NEXT=10K 및 PCTINCREASE=0 인경우를가정해볼때 PCTINCREASE 를 100 으로변경하면할당되는세번째확장영역은 10KB 이고네번째확장영역은 20KB 이며다섯번째확장영역은 40KB 입니다. MINEXTENTS: MINEXTENTS 의값은테이블의현재확장영역수이하인값으로바꿀수있으며테이블에즉시영향을주지는않지만테이블이잘릴경우사용됩니다. MAXEXTENTS: MAXEXTENTS의값은테이블의현재확장영역수이상인값으로설정할수있으며 UNLIMITED로도설정할수있습니다. 제한사항 : 테이블에대해 INITIAL의값은수정될수없습니다. 지정한 NEXT의값은지정한값이상인블록크기의배수값으로반올림됩니다. Oracle9i Database Administration Fundamentals I 11-22

373 Oracle Enterprise Manager Oracle Enterprise Manager를사용하여저장영역매개변수변경 OEM Console에서다음작업을수행합니다. 1. Databases > Schema > Table로이동합니다. 2. 스키마이름을확장합니다. 3. 테이블을선택합니다. 4. Storage 페이지에있는값을수정합니다. 최소확장영역및초기트랜잭션수는이방식으로수정할수없습니다. 5. Apply를누릅니다. Oracle9i Database Administration Fundamentals I 11-23

374 ú ò ALTER TABLE hr.employees ALLOCATE EXTENT(SIZE 500K DATAFILE /DISK3/DATA01.DBF ); Copyright Oracle Corporation, All rights reserved. ú ò 다음의경우확장영역을수동으로할당해야합니다. 파일전체에테이블의확장영역이분산되는것을제어하려는경우 테이블의동적확장을방지하기위해데이터를대량으로로드하기전에구문다음명령을사용하여테이블에확장영역을할당합니다. ALTER TABLE [schema.]table ALLOCATE EXTENT [ ([SIZE integer [K M]] [ DATAFILE filename ]) ] SIZE를생략하면 Oracle 서버에서는 DBA_TABLES의 NEXT_EXTENT 크기를사용하여확장영역을할당합니다. DATAFILE 절에지정된파일은테이블을포함한테이블스페이스에포함되어야하며그렇지않으면명령문에서오류가발생합니다. DATAFILE 절을사용하지않으면 Oracle 서버에서는테이블을포함하고있는테이블스페이스의파일중하나에확장영역을할당합니다. 주 : 수동확장영역할당은 DBA_TABLES 의 NEXT_EXTENT 값에영향을주지않습니다. 이명령이실행될때 Oracle 서버에서는다음확장영역의크기를재계산하지않습니다. Oracle9i Database Administration Fundamentals I 11-24

375 þ ALTER TABLE hr.employees MOVE TABLESPACE data1; þ þ þ ñ. ñ ú ÿ Copyright Oracle Corporation, All rights reserved. þ 분할되지않은테이블은 Export 유틸리티나 Import 유틸리티를실행하지않고도이동할수있으며저장영역매개변수를변경할수있습니다. 이것은다음과같은경우에유용합니다. 한테이블스페이스에서다른테이블스페이스로테이블을이동할경우 행이전을제거하기위해테이블을재구성할경우테이블이동후다음오류를방지하기위해인덱스를재구축해야합니다. SQL> SELECT * FROM employees WHERE id=23; select * from employees where id=23 * ERROR at line 1: ORA-01502: index HR.EMPLOYEES_ID_PK' or partition of such index is in unusable state Oracle9i Database Administration Fundamentals I 11-25

376 TRUNCATE TABLE hr.employees; þ ÿ ÿ ñ. ò ñ Copyright Oracle Corporation, All rights reserved. 구문 TRUNCATE TABLE [schema.] table [{DROP REUSE} STORAGE] 이명령을사용한결과는다음과같습니다. 테이블의모든행이삭제됩니다. TRUNCATE TABLE은 DDL 명령이므로실행취소데이터가생성되지않고명령이암시적으로커밋됩니다. 해당인덱스도잘립니다. 외래키가참조중인테이블은자를수없습니다. 이명령을사용할때는삭제트리거가실행되지않습니다. Oracle9i Database Administration Fundamentals I 11-26

377 DROP TABLE hr.department CASCADE CONSTRAINTS; Copyright Oracle Corporation, All rights reserved. 테이블이더이상필요하지않거나재구성될경우테이블을삭제합니다. 구문다음명령을사용하여테이블을삭제합니다. DROP TABLE [schema.] table [CASCADE CONSTRAINTS] 테이블을삭제할때테이블에서사용하는확장영역이해제됩니다. 확장영역이연속적인경우이후단계에서자동또는수동으로확장영역을병합할수도있습니다. 테이블이외래키관계에서부모테이블인경우 CASCADE CONSTRAINTS 옵션이필요합니다. 주 : CASCADE CONSTRAINTS 에대한자세한내용은 " 데이터무결성유지관리 " 단원을참조하십시오. Oracle9i Database Administration Fundamentals I 11-27

378 Oracle Enterprise Manager를사용하여테이블삭제 OEM Console에서다음작업을수행합니다. 1. Databases > Schema > Table로이동합니다. 2. 삭제할테이블이포함된스키마를확장합니다. 3. 스키마이름을확장합니다. 4. 테이블을선택합니다. 5. 마우스오른쪽버튼을눌러 Remove를선택합니다. 6. Yes를선택하여삭제를확인합니다. Oracle9i Database Administration Fundamentals I 11-28

379 ñ. ALTER TABLE hr.employees DROP COLUMN comments CASCADE CONSTRAINTS CHECKPOINT 1000; ñ. ó ò ÿ ñ Copyright Oracle Corporation, All rights reserved. Oracle 서버는테이블의행에서열을삭제할수있습니다. 열을삭제하면데이터를엑스포트나임포트하지않고인덱스와제약조건을재생성하지않은채사용되지않은열과잠재적으로공간을요구하는열을지웁니다. 열을삭제하면열에대한모든데이터가테이블에서삭제되므로상당한시간이걸릴수있습니다. Oracle8i 이전버전에서는테이블에서열을삭제할수없었습니다. 열삭제시체크포인트사용열을삭제하는작업은시간이많이걸리며많은양의실행취소공간이필요할수있습니다. 대형테이블에서열을삭제하는동안실행취소공간의사용을최소화하기위해체크포인트를지정할수있습니다. 슬라이드의예제에서는체크포인트가 1,000행마다발생합니다. 작업이끝날때까지테이블은 INVALID로표시됩니다. 작업중에인스턴스가실패하면시동시테이블은 INVALID로남아있으므로작업을완료해야합니다. 다음명령문을사용하여인터럽트된삭제작업을재개합니다. SQL> ALTER TABLE hr.employees DROP COLUMNS CONTINUE; 테이블이 VALID 상태일경우에이명령문을사용하면오류가발생됩니다. Oracle9i Database Administration Fundamentals I 11-29

380 Oracle Enterprise Manager를사용하여열삭제 OEM Console에서다음작업을수행합니다. 1. Databases > Schema > Table로이동합니다. 2. 삭제할테이블이포함된스키마를확장합니다. 3. 스키마이름을확장합니다. 4. 테이블을선택합니다. 5. 마우스오른쪽버튼을눌러 Edit/View Details를선택합니다. 6. 삭제할열을선택합니다. 7. 마우스오른쪽버튼을눌러 Drop Column을선택합니다. Oracle9i Database Administration Fundamentals I 11-30

381 UNUSED þ : ALTER TABLE hr.employees SET UNUSED COLUMN comments CASCADE CONSTRAINTS; þ : ALTER TABLE hr.employees DROP UNUSED COLUMNS CHECKPOINT 1000; : ALTER TABLE hr.employees DROP COLUMNS CONTINUE CHECKPOINT 1000; Copyright Oracle Corporation, All rights reserved. UNUSED 테이블에서열을제거하는대신열을사용되지않은열로표시한다음나중에제거할수있습니다. 이렇게하면데이터가제거되지않아서디스크공간을회수하지않으므로비교적빠르다는이점이있으며사용되지않은열로표시된열은나중에시스템에작업이적을때제거할수있습니다. 사용되지않은열은테이블의일부가아닌것처럼동작합니다. 질의에서사용되지않은열의데이터는볼수없습니다. 또한 DESCRIBE 명령실행시이러한열의이름과데이터유형은표시되지않습니다. 사용되지않은열과이름이동일한새열을추가할수있습니다. 열을삭제하기전에사용되지않은열로설정하는예로는동일한테이블에서두열을삭제하려는경우를들수있습니다. 두열을삭제할때테이블의모든행은두번갱신되며열을사용되지않은열로설정한다음삭제하면행은한번만갱신됩니다. Oracle9i Database Administration Fundamentals I 11-31

382 UNUSED ( ) 사용되지않은열을가진테이블식별사용되지않은열을가진테이블을식별하려면 DBA_UNUSED_COL_TABS 뷰를질의합니다. 이뷰를질의하면사용되지않은열을가진테이블의이름과이테이블안에서사용되지않는열로표시된열의수가나타납니다. 다음질의는 HR이소유한 EMPLOYEES 테이블에사용되지않은열이하나있음을보여줍니다. SQL > SELECT * FROM dba_unused_col_tabs; OWNER TABLE_NAME COUNT HR EMPLOYEES 1 부분적으로완료된 DROP COLUMN 작업이있는테이블을식별하려면 DBA_PARTIAL_DROP_TABS 뷰를질의합니다. SQL > SELECT * FROM dba_partial_drop_tabs; OWNER TABLE_NAME COUNT no rows selected 열삭제시제한사항다음작업은수행할수없습니다. 객체유형테이블에서열삭제 중첩테이블에서열삭제 테이블의모든열삭제 분할키열삭제 SYS가소유한테이블에서열삭제 열이기본키일경우인덱스구성테이블에서열삭제 사용되지는않지만삭제되지않은 LONG 또는 LONG RAW 열이있으면테이블에 LONG 또는 LONG RAW 열을추가할수없습니다. 이는테이블 describe 명령에 LONG 또는 LONG RAW 열이없다고나타나는경우에도적용됩니다. Oracle9i Database Administration Fundamentals I 11-32

383 ó ñ ñ DBA_TABLES DBA_OBJECTS Copyright Oracle Corporation, All rights reserved. 테이블에대한정보는데이터딕셔너리에서얻을수있습니다. HR에서소유한모든테이블에대한테이블헤더의위치및데이터객체번호를알려면다음질의를사용합니다. SQL > SELECT table_name FROM dba_tables WHERE owner = 'HR'; TABLE_NAME COUNTRIES DEPARTMENTS DEPARTMENTS_HIST EMPLOYEES EMPLOYEES_HIST JOBS JOB_HISTORY LOCATIONS REGIONS Oracle9i Database Administration Fundamentals I 11-33

384 ( ) SQL> SELECT object_name, created 2 FROM DBA_OBJECTS 3 WHERE object_name like 'EMPLOYEES' 4 AND owner = 'HR'; OBJECT_NAME CREATED EMPLOYEES 16-APR-01 Oracle9i Database Administration Fundamentals I 11-34

385 ñ ñ ó ñ. ÿ ROWID ÿ ROWID, Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 11-35

386 11 ñ ññ., þ ú ò Copyright Oracle Corporation, All rights reserved. 11 주 : SQL*Plus 또는 Oracle Enterprise Manager와 SQL*Plus Worksheet를사용하여연습을수행할수있습니다. Oracle9i Database Administration Fundamentals I 11-36

387 11: 1 지금구현하려는주문입력시스템을위하여 SYSTEM 사용자로다음테이블을생성하십시오. 테이블과열은아래와같이표시됩니다. Table CUSTOMERS ORDERS Column CUST_CODE NAME REGION ORD_ID ORD_DATE CUST_CODE DATE_OF_DELY Data type and size VARCHAR2(3) VARCHAR2(50) VARCHAR2(5) NUMBER(3) DATE VARCHAR2(3) DATE 주 : OEM을사용할때 DATE vofvvdely를 NULL로설정해야합니다. ORDERS 테이블에서 DATE OFVvDELY 값없이행이삽입되며주문이이행될때이행이갱신됨을알수있습니다. USERS 테이블스페이스를사용하면기본저장영역설정을사용할수있습니다. 2 lab11v02.sql 스크립트를실행하여테이블에행을삽입하십시오. 3 주문테이블의행을포함하는파일및블록을찾으십시오. 힌트 : 데이터딕셔너리뷰 DBAVvEXTENTS를질의합니다. 4 ORDERS 테이블에서사용하는확장영역의수를확인하십시오. 5 ORDERS 테이블에대한기본크기의확장영역을직접할당한후확장영역이지정한대로추가되었는지확인하십시오. 6 USERS 테이블스페이스에서 ORDERS 테이블을복사하여 MINEXTENTS가 10인테이블 ORDERS2를생성하고지정한수의확장영역이있는테이블이생성되었는지확인하십시오. 7 공간을해제하지않은채 ORDERS 테이블을잘라낸후확장영역의수를검사하여할당이해제되는확장영역이없는지확인하십시오. 8 ORDERS2 테이블을잘라내영역을해제하십시오. 테이블에있는확장영역의수는몇개입니까? 9 lab11_09.sql 스크립트를실행하여 ORDERS2 테이블에행을일부삽입하십시오. 10 ORDERS2 테이블의열을본다음 DATE_OF_DELY 열을 UNUSED로표시하십시오. ORDERS2 테이블의열을다시봅니다. 결과는? 11 사용되지않은열 DATE_OF_DELY를삭제하십시오. 12 ORDERS2 테이블을삭제하십시오. Oracle9i Database Administration Fundamentals I 11-37

388 Oracle9i Database Administration Fundamentals I 11-38

389 Copyright Oracle Corporation, All rights reserved.

390 ñ ñ ñ. ñ 12-2 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 12-2

391 ñ ÿ ÿ þ B 12-3 Copyright Oracle Corporation, All rights reserved. 인덱스는테이블에있는행을직접액세스할수있는트리구조로서논리적설계또는물리적구현에근거하여분류할수있습니다. 논리적분류는인덱스를응용프로그램관점에서나눈것이고물리적분류는인덱스저장방법에따라나눈것입니다. 단일열인덱스및연결된인덱스 단일열인덱스는해당인덱스키에열이하나만있는데예를들면, 사원테이블의사원번호열에대한인덱스가여기에해당됩니다. 연결된인덱스는조합인덱스라고도하며테이블의여러열에대해생성되는데이열은테이블의열과순서가동일하거나인접할필요가없습니다. 예를들어, 사원테이블의부서열과직위열에대한인덱스가여기에해당됩니다. 조합키인덱스의최대열수는 32개지만모든열을합친크기가데이터블록에있는사용가능한데이터공간의 2분의 1에서일부오버헤드를뺀값을넘지않아야합니다. Oracle9i Database Administration Fundamentals I 12-3

392 ( ) 고유및비고유인덱스인덱스는고유또는비고유인덱스일수있습니다. 고유인덱스는테이블의두행값이키열또는열에서중복되지않도록합니다. 그러나비고유인덱스에서는열값에이러한제한을두지않습니다. 함수기반인덱스함수기반인덱스는인덱스화된테이블의열을하나이상포함하는함수또는표현식을사용할때생성되며함수또는표현식의값을미리계산한다음인덱스에저장합니다. 함수기반인덱스는 B 트리인덱스또는비트맵인덱스로생성할수있습니다. 도메인인덱스도메인인덱스는인덱스유형에따라제공되는루틴에의해생성, 관리, 액세스되는응용프로그램별 ( 텍스트, 공간 ) 인덱스입니다. 이인덱스는응용프로그램별도메인에서데이터를인덱스화하므로도메인인덱스라고합니다. 단일열도메인인덱스만지원됩니다. 데이터유형이스칼라, 객체또는 LOB인열에단일열도메인인덱스를생성할수있습니다. 분할된인덱스및분할되지않은인덱스분할된인덱스는큰테이블에서하나의인덱스에해당하는인덱스항목을여러세그먼트에저장하는데사용하며이렇게분할하면하나의인덱스를여러테이블스페이스에분산시켜인덱스조회경합을줄이고관리를용이하게할수있습니다. 분할된인덱스는대개확장성및관리용이성을향상시키기위해분할된테이블과함께사용하는데각테이블분할영역마다하나씩인덱스분할영역을생성할수있습니다. 이단원은분할되지않은 B 트리인덱스및비트맵인덱스의생성및유지관리방법을설명합니다. Oracle9i Database Administration Fundamentals I 12-4

393 B ø ROWID 12-5 Copyright Oracle Corporation, All rights reserved. B 모든인덱스가 B 트리구조를사용하고있지만 B 트리인덱스라는용어는대개각키에대한 ROWIDS 목록을저장하는인덱스와연관됩니다. B 트리인덱스구조인덱스의맨위에는루트가있으며루트는인덱스의다음레벨을가리키는항목을포함하고다음레벨에는분기블록이있으며이블록은인덱스의다음레벨에있는블록을차례로가리키며마지막으로최하위레벨에는최하위노드가있고이노드는테이블의행을가리키는인덱스항목을포함합니다. 키값의내림차순뿐만아니라오름차순으로도인덱스를쉽게스캔할수있게최하위블록은이중으로연결합니다. 인덱스최하위항목형식인덱스항목은다음구성요소로이루어집니다. 항목헤더는열수및잠금정보를저장합니다. 키열의길이및값쌍은키열의크기및열의값을정의합니다. ( 이러한쌍의수는인덱스에있는최대열수와동일합니다.) 행의 ROWID는키값을포함합니다. Oracle9i Database Administration Fundamentals I 12-5

394 B ( ) 인덱스최하위항목특성분할되지않은테이블의 B 트리인덱스 : 인덱스가압축되지않은경우여러행이동일한키값을갖고있을때는키값이반복됩니다. 모든키열의값이NULL인행에해당하는인덱스항목은없습니다. 따라서 NULL 을지정하는 WHERE 절은항상전체테이블스캔을수행합니다. 모든행이동일한세그먼트에속해있기때문에제한된 ROWID를사용하여테이블의행을가리킵니다. 인덱스에대한 DML 작업효과 : 테이블에서 DML 작업을수행할경우에는 Oracle 서버가모든인덱스를유지관리하며다음은인덱스에대한 DML 명령효과에관한설명입니다. 삽입작업을수행하면하나의인덱스항목이해당블록에삽입됩니다. 행을삭제하면해당인덱스항목이논리적으로만삭제되며삭제된행에서사용하던공간은해당블록의모든항목을삭제할때까지새항목용으로사용할수없습니다. 키열을갱신하면논리적으로삭제되고인덱스에삽입되는데 PCTFREE 설정은생성시를제외하고는인덱스에영향을미치지않으므로 PCTFREE에서지정한것보다공간이적더라도새항목을인덱스블록에추가할수있습니다. Oracle9i Database Administration Fundamentals I 12-6

395 ROWID Û ROWID <Blue, , , > <Green, , , > <Red, , , > <Yellow, , , > 12-7 Copyright Oracle Corporation, All rights reserved. 다음상황에서는비트맵인덱스가 B 트리인덱스보다유리합니다. 테이블에수백만개의행이있고키열에낮은기수가있을때, 즉해당열의구분값이극소수일경우. 예를들어, 여권레코드를포함하는테이블의성별및결혼여부열에서는 B 트리인덱스보다비트맵인덱스를선호할수있습니다. 질의가 OR 연산자를포함하는여러 WHERE 조건을조합하여사용할경우 읽기전용또는키열에대한갱신작업이저조할경우비트맵인덱스구조비트맵인덱스도 B 트리와같이구성하지만최하위노드는 ROWIDS 목록대신각키값에대한비트맵을저장합니다. 비트맵내의각비트는가능한 ROWID와대응하며비트가설정되어있으면해당 ROWID가있는행이키값을포함하고있음을의미합니다. 도표와같이비트맵인덱스의최하위노드는다음내용을포함합니다. 항목헤더, 열수및잠금정보를포함합니다. 각키열의길이및값쌍으로이루어진키값 ( 예제에서키는단하나의열로구성되어있고첫째항목의키값은 Blue입니다.) Oracle9i Database Administration Fundamentals I 12-7

396 ( ) 비트맵인덱스구조 ( 계속 ) 시작 ROWID, 예제에서는파일번호 3, 블록번호 10, 행번호0 등을포함하고있습니다. 끝 ROWID, 예제에서는블록번호 12 및행번호8을포함합니다. 비트문자열로이루어진비트맵세그먼트 ( 비트는해당행이키값을포함하고있을때설정하고해당행이키값을포함하고있지않을때는설정을해제하며 Oracle 서버는고유압축기술을사용하여비트맵세그먼트를저장합니다.) 시작 ROWID는비트맵의비트맵세그먼트가가리키는첫번째행의 ROWID이며비트맵의첫번째비트는첫번째 ROWID에해당하고비트맵의두번째비트는블록의다음행에해당하며마지막 ROWID는비트맵세그먼트에포함된테이블의마지막행에대한포인터입니다. 비트맵인덱스는제한된 ROWID를사용합니다. 비트맵인덱스사용 B 트리는주어진키값의비트맵세그먼트를포함하는최하위노드를찾는데사용하며시작 ROWID 및비트맵세그먼트를사용하여사용키값을포함하는행을찾습니다. 테이블의키열을변경하면비트맵을수정해야하며관련비트맵세그먼트는잠급니다. 전체비트맵세그먼트를잠가야하므로첫번째트랜잭션이끝날때까지는해당비트맵에포함된행을다른트랜잭션에서갱신할수없습니다. Oracle9i Database Administration Fundamentals I 12-8

397 B B ó OR OLTP OR 12-9 Copyright Oracle Corporation, All rights reserved. B 낮은기수열과함께사용할때는비트맵인덱스가 B 트리인덱스보다크기가작습니다. 비트맵인덱스는비트맵세그먼트수준의잠금을사용하기때문에비트맵인덱스의키열을갱신하면더많은비용이들지만 B 트리인덱스에서는테이블의각행에해당하는항목을잠급니다. 비트맵인덱스는비트맵부울같은연산을수행하는데사용할수있으며 Oracle 서버는두비트맵세그먼트를사용하여비트방식부울연산을수행하고결과비트맵을얻을수있으며부울술어를사용하는질의에서비트맵을효과적으로사용할수있습니다. 요약하면동적테이블을인덱스하기위한 OLTP 환경에서는 B 트리인덱스가더적합하고대형정적테이블에서복합질의를사용하는데이터웨어하우스환경에서는비트맵인덱스가더적합합니다. Oracle9i Database Administration Fundamentals I 12-9

398 B CREATE INDEX hr.employees_last_name_idx ON hr.employees(last_name) PCTFREE 30 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50) TABLESPACE indx; Copyright Oracle Corporation, All rights reserved. B 인덱스는해당테이블을소유하는사용자의계정또는다른계정에서생성할수있으며일반적으로테이블과동일한계정에서생성합니다. 위의명령문은 LAST_NAME 열을사용하여 EMPLOYEES 테이블에인덱스를생성합니다. Oracle9i Database Administration Fundamentals I 12-10

399 B ( ) 구문옵션 UNIQUE: 고유인덱스지정에사용합니다 기본값은 Nonunique입니다.) Schema: 인덱스 / 테이블소유자입니다. Index: 인덱스이름입니다. Table: 테이블이름입니다 Column: 열이름입니다. ASC/DESC: 인덱스가오름차순으로생성되는지내림차순으로생성되는지여부를나타냅니다. TABLESPACE: 인덱스를생성할테이블스페이스를식별합니다. PCTFREE: 새로운인덱스항목을수용하기위해생성시각블록에예약되는공간의양 ( 전체공간에서블록헤더를뺀백분율 ) 입니다. INITRANS: 각블록에서미리할당하는트랜잭션항목의수를나타냅니다 기본값과최소값은 2입니다.) MAXTRANS: 각블록에할당될수있는트랜잭션항목의수를제한합니다. ( 기본값은 255입니다.) STORAGE 절 : 인덱스에확장영역할당하는방법을결정하는저장영역절을식별합니다. LOGGING: 인덱스의생성및인덱스에대한이후작업을리두로그파일에기록함을나타냅니다. ( 기본값입니다.) NOLOGGING: 생성및특정유형의데이터로드를리두로그파일에기록하지않음을나타냅니다. NOSORT: 데이터베이스에행이오름차순으로저장되므로인덱스생성시 Oracle 서버가행을정렬하지않아도됨을나타냅니다. 테이블스페이스에대한 MINIMUM EXTENT를정의한경우해당인덱스의확장영역크기가다음으로높은 MINIMUM EXTENT 배수값으로반올림합니다. [NO] LOGGING 절을생략하면인덱스의로그속성은해당인덱스가상주하는테이블스페이스의로그속성을기본값으로갖습니다. PCTUSED는인덱스에지정할수없습니다. 인덱스항목을올바른순서로저장해야하므로인덱스블록이언제삽입에사용될지사용자가제어할수없기때문입니다. 데이터를키기준으로정렬하지않은상태에서 NOSORT 키워드를사용하면오류가발생하므로해당명령문은종료됩니다. 따라서테이블에대한 DML 작업이여러개수행되는경우이옵션은실패할가능성이있습니다. Oracle 서버는가능한경우기존인덱스를사용하여새인덱스를생성하는데이러한작업은새인덱스에대한키가기존인덱스키의선행부분과대응할때발생합니다. Oracle9i Database Administration Fundamentals I 12-11

400 B Oracle Enterprise Manager를사용하여인덱스생성 OEM Console에서다음작업을수행합니다. 1. Databases > Schema folder > Index로이동합니다. 2. 마우스오른쪽버튼을눌러 Create를선택합니다. 3. General, Partitions, Storage 및 Options 페이지에해당정보를입력합니다. 4. Create를누릅니다. Oracle9i Database Administration Fundamentals I 12-12

401 : DML : ó ñ MINIMUM EXTENT NOLOGGING INITRANS ò ñ ø Copyright Oracle Corporation, All rights reserved. : 인덱스생성시다음사항을고려합니다. 인덱스를사용하면질의성능속도는빨라지지만 DML 작업속도는느려지며휘발성테이블에필요한인덱스수는항상최소화합니다. 실행취소세그먼트, 임시세그먼트및테이블을포함하는테이블스페이스가아닌별도의테이블스페이스에인덱스를둡니다. 큰인덱스의경우리두생성을방지하면성능을상당히향상시킬수있으므로큰인덱스를생성할경우에는 NOLOGGING 절을사용하는것이좋습니다. 인덱스항목은자신이인덱스하는행보다작기때문에인덱스블록은블록마다많은항목을포함하며일반적으로해당테이블보다인덱스에대한 INITRANS가더높아야합니다. 인덱스및 PCTFREE: 인덱스에대한 PCTFREE 매개변수는테이블의 PCTFREE 매개변수와다릅니다. 즉, 이매개변수는동일한인덱스블록에삽입할인덱스항목의공간을예약하기위해인덱스생성시에만사용합니다. 인덱스항목은갱신되지않으며키열이갱신될때인덱스항목의논리적삭제및삽입이발생합니다. Oracle9i Database Administration Fundamentals I 12-13

402 : ( ) 인덱스및 PCTFREE( 계속 ) 시스템이생성한송장번호와같이차례대로증가하는열의인덱스에는낮은 PCTFREE를사용합니다. 이러한경우에는항상새로운인덱스를기존인덱스뒤에추가하므로새항목을기존의두인덱스항목사이에삽입할필요가없습니다. 삽입하는행의인덱스화된열값이임의의값, 즉현재값의범위에포함되는값일수있는경우에는높은 PCTFREE를제공해야합니다. 높은 PCTFREE를필요로하는인덱스의예로송장테이블의고객코드열에대한인덱스를들수있는데이러한경우에는다음공식에서구한값으로 PCTFREE의값을지정하는것이좋습니다. Maximum number of rows Initial number of rows x 100 Maximum number of rows 최대값은 1 년과같은특정기간을참조할수있습니다. Oracle9i Database Administration Fundamentals I 12-14

403 CREATE BITMAP INDEX orders_region_id_idx ON orders(region_id) PCTFREE 30 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50) TABLESPACE indx; Copyright Oracle Corporation, All rights reserved. 구문다음명령을사용하여비트맵인덱스를생성합니다. CREATE BITMAP INDEX [schema.] index ON [schema.] table (column [ ASC DESC ] [, column [ASC DESC ] ]...) [ TABLESPACE tablespace ] [ PCTFREE integer ] [ INITRANS integer ] [ MAXTRANS integer ] [ storage-clause ] [ LOGGING NOLOGGING ] [ NOSORT ] 비트맵인덱스는고유할수없습니다. Oracle9i Database Administration Fundamentals I 12-15

404 ( ) CREATE_BITMAP_AREA_SIZE 매개변수초기화매개변수인 CREATE_BITMAP_AREA_SIZE는비트맵세그먼트를메모리에저장하는데사용하는공간의양을결정하며기본값은 8MB입니다. 값이클수록인덱스를빨리생성할수있고기수가아주작은경우에는이값을작은값으로설정할수있습니다. 예를들어, 기수가겨우 2이면값을 MB가아닌KB 순서로나열하며일반적으로기수가높은경우에는메모리가충분해야최적의성능을낼수있습니다. Oracle9i Database Administration Fundamentals I 12-16

405 Oracle Enterprise Manager를사용하여비트맵인덱스생성 OEM Console에서다음작업을수행합니다. 1. Databases > Schema > Index로이동합니다. 2. 마우스오른쪽버튼을눌러 Create를선택합니다. 3. General, Partitions, Storage 및 Options 페이지에해당정보를입력합니다. 4. General 페이지에서 Bitmap을선택합니다. 5. Create를누릅니다. Oracle9i Database Administration Fundamentals I 12-17

406 ALTER INDEX employees_last_name_idx STORAGE(NEXT 400K MAXEXTENTS 100); Copyright Oracle Corporation, All rights reserved. 일부저장영역매개변수및블록활용매개변수는 ALTER INDEX 명령을사용하여수정합니다. 구문 ALTER INDEX [schema.]index [ storage-clause ] [ INITRANS integer ] [ MAXTRANS integer ] 인덱스저장영역매개변수를변경한결과는테이블저장영역매개변수를변경한결과와동일하며이러한변경은주로인덱스의 MAXEXTENTS를늘리는데사용합니다. 인덱스블록의동시성레벨을높이기위해블록활용매개변수를변경하는경우도있습니다. Oracle9i Database Administration Fundamentals I 12-18

407 Oracle Enterprise Manager를사용하여인덱스의저장영역매개변수변경 OEM Console에서다음작업을수행합니다. 1. Databases > Schema > Index로이동합니다. 2. 인덱스가속한스키마이름을확장합니다. 3. 인덱스를선택합니다. 4. Storage 페이지에서값을수정합니다. 5. Apply를누릅니다. Oracle9i Database Administration Fundamentals I 12-19

408 ò ò ò ALTER INDEX orders_region_id_idx ALLOCATE EXTENT (SIZE 200K DATAFILE /DISK6/indx01.dbf ); ALTER INDEX orders_id_idx DEALLOCATE UNUSED; Copyright Oracle Corporation, All rights reserved. ò ò ò 인덱스에수동으로공간할당 : 테이블에대한대량의삽입작업기간전에인덱스에확장영역을추가해야할수있으며확장영역을추가하면인덱스가동적으로확장되어성능저하를방지할수있습니다. 인덱스에서수동으로공간할당해제 ALTER INDEX 명령의 DEALLOCATE 절을사용하여인덱스에서고수위이상의사용되지않은공간을해제합니다. 구문다음명령을사용하여인덱스공간을할당하거나할당을해제합니다. ALTER INDEX [schema.]index {ALLOCATE EXTENT ([SIZE integer [K M]] [ DATAFILE filename ]) DEALLOCATE UNUSED [KEEP integer [ K M ] ] } 수동의인덱스공간할당작업및수동의할당해제작업은테이블에서이명령을사용할경우와동일한규칙을따릅니다. 주 : 인덱스공간은해당인덱스를구축한테이블을잘라버릴때할당을해제하며테이블을잘라버리면관련인덱스도잘립니다. Oracle9i Database Administration Fundamentals I 12-20

409 ALTER INDEX ñ ñ. ñ ú ÿ ALTER INDEX orders_region_id_idx REBUILD TABLESPACE indx02; Copyright Oracle Corporation, All rights reserved. 인덱스재구축에는다음특성이있습니다. 기존인덱스를데이터소스로사용하여새인덱스를구축합니다. 기존인덱스를사용하여인덱스를구축할경우에는정렬이필요하지않으므로성능이향상됩니다. 새인덱스를구축하고나면이전인덱스는삭제되며재구축중에는이전인덱스및새인덱스를각테이블스페이스에모두수용할수있는충분한공간이필요합니다. 결과인덱스는삭제한항목을포함하지않으므로이인덱스는공간을더효율적으로사용합니다. 새인덱스를구축하는동안에는질의에서기존인덱스를계속사용할수있습니다. 재구축이필요한상황다음상황일때인덱스를재구축합니다. 기존인덱스를다른테이블스페이스로이동해야할경우로인덱스가테이블과동일한테이블스페이스에있거나객체를디스크에재분배해야할경우에는이작업이필요할수있습니다. Oracle9i Database Administration Fundamentals I 12-21

410 ( ) 재구축이필요한상황 ( 계속 ) 인덱스에삭제한항목이많이포함되어있는경우로이러한현상은완료된주문은삭제하고새로운주문을높은번호로테이블에추가하는주문테이블의주문번호인덱스와같이변하는인덱스에서나타나는일반적인문제입니다. 오래된소수의주문을아직처리하지않은경우항목일부만삭제한인덱스최하위블록이몇개있을수도있습니다. 기존의일반인덱스를역방향키인덱스로변환해야할경우로이전릴리스의 Oracle 서버에서응용프로그램을이전할경우재구축할수있습니다. 인덱스의테이블을 ALTER TABLE... MOVE TABLESPACE 명령을사용하여다른테이블스페이스로이동한경우구문다음명령을사용하여인덱스를재구축합니다. ALTER INDEX [schema.] index REBUILD [ TABLESPACE tablespace ] [ PCTFREE integer ] [ INITRANS integer ] [ MAXTRANS integer ] [ storage-clause ] [ LOGGING NOLOGGING ] [ REVERSE NOREVERSE ] ALTER INDEX... REBUILD 명령은비트맵인덱스를 B 트리인덱스로바꾸거나또는그반대인경우사용할수없으며 REVERSE 키워드또는 NOREVERSE 키워드는 B 트리인덱스에만지정할수있습니다. Oracle9i Database Administration Fundamentals I 12-22

411 ÿ ñ. ALTER INDEX orders_id_idx REBUILD ONLINE; ÿ ñ Copyright Oracle Corporation, All rights reserved. 인덱스구축또는재구축작업은테이블이아주큰경우시간이많이걸리는작업이며 Oracle8i 이전에는인덱스를생성또는재구축할경우테이블을잠궈야했고동시 DML 작업을할수없었습니다. Oracle9i는인덱스를생성또는재생성하면서기본테이블에대한동시작업을수행할수있지만이러한절차중에는큰 DML 작업을수행하지않는것이좋습니다. 주 : 계속해서 DML 문이잠겨있으면온라인인덱스구축중에다른 DDL 작업을수행할수없음을의미합니다. 제한사항 임시테이블의인덱스는재구축할수없습니다. 분할된인덱스전체는재구축할수없으므로분할영역또는서브분할영역을각각재구축해야합니다. 사용되지않은공간은할당을해제할수없습니다. 해당인덱스에대한 PCTFREE 매개변수의값을전체적으로변경할수없습니다. Oracle9i Database Administration Fundamentals I 12-23

412 ALTER INDEX orders_id_idx COALESCE; Copyright Oracle Corporation, All rights reserved. 인덱스단편화가있는경우해당인덱스를재구축또는병합할수있으며이러한작업을수행하기전에먼저각옵션의비용및이익을고려하여자신의상황에가장적합한작업을선택해야합니다. 인덱스병합은온라인에서수행되는블록재구축입니다. 재사용을위해공간을늘릴수있는 B 트리인덱스최하위블록이있는상황에서는다음 SQL 문을사용하여이최하위블록을병합할수있습니다. SQL> ALTER INDEX hr.employees_idx COALESCE; 위그림은 hr.employees_idx 인덱스에대한 ALTER INDEX COALESCE의영향을보여주고있습니다. COALESCE 작업을수행하기전첫번째두개의최하위블록은 50% 가채워진상태입니다. 이것은인덱스가단편화되었으므로병합되어첫번째블록을모두채울수있고단편화를줄일수있다는의미입니다. Oracle9i Database Administration Fundamentals I 12-24

413 ANALYZE INDEX orders_region_id_idx VALIDATE STRUCTURE; INDEX_STATS Copyright Oracle Corporation, All rights reserved. 인덱스를분석하여다음을수행합니다. 모든인덱스블록에대해손상된블록이있는지확인합니다. 이명령을수행해도인덱스항목이테이블의데이터에대응되는지여부는확인되지않습니다. INDEX_STATS 뷰를인덱스정보로채웁니다. 구문 ANALYZE INDEX [ schema.]index VALIDATE STRUCTURE 이명령을실행한후다음예제에나타난대로 INDEX_STATS를질의하여인덱스정보를얻습니다. Oracle9i Database Administration Fundamentals I 12-25

414 ( ) SQL> SELECT blocks, pct_used, distinct_keys 2 lf_rows, del_lf_rows 3 FROM index_stats; BLOCKS PCT_USED LF_ROWS DEL_LF_ROWS row selected. 인덱스에삭제된행의비율이높은경우해당인덱스를재구성합니다. 예를들어, DEL_LF_ROWS와 LF_ROWS의비율이 30% 를초과하는경우가이에해당합니다. Oracle9i Database Administration Fundamentals I 12-26

415 ó ñ. ñ ñ. ñ. DROP INDEX hr.deptartments_name_idx; Copyright Oracle Corporation, All rights reserved. 다음시나리오에서는인덱스를삭제해야할필요가있습니다. 응용프로그램에서더이상사용하지않는인덱스는삭제할수있습니다. 대량로드를수행하기전에인덱스를삭제할수있으며데이터를대량으로로드하기전에인덱스를삭제하고로드한다음다시생성하면다음결과를얻을수있습니다. 로드성능이향상됩니다. 인덱스공간을더효율적으로사용할수있습니다. 주기적으로만사용하는인덱스가특히휘발성테이블에기반을두고있을경우에는불필요하게유지관리하지않아도되며대개연말또는분기말의검토회의에사용할정보를모으기위해임시질의를생성하는 OLTP 시스템의경우에는불필요하게유지관리하지않아도됩니다. 로드작업같은특정유형의작업중에인스턴스실패가발생하는경우에는인덱스를 INVALID로표시하는데이러한경우에는인덱스를삭제하고다시생성해야합니다. 인덱스가훼손된경우제약조건에필요한인덱스는삭제할수없으므로종속된제약조건을비활성화하거나삭제해야합니다. Oracle9i Database Administration Fundamentals I 12-27

416 Oracle Enterprise Manager 를사용하여인덱스삭제 OEM Console에서다음작업을수행합니다. 1. Databases > Schema > Index로이동합니다. 2. 인덱스가속한스키마의이름을확장합니다. 3. 인덱스가속한스키마의이름을선택합니다. 4. 인덱스를선택합니다. 5. 마우스오른쪽버튼을눌러 Remove를선택합니다. 6. 삭제를확인합니다. 주 : 활성화된무결성제약조건을구현하기위해인덱스를사용하는경우에는인덱스를삭제할수없습니다. 제약조건은 " 데이터무결성유지관리 " 단원에서설명합니다. Oracle9i Database Administration Fundamentals I 12-28

417 þ ó : ALTER INDEX hr.dept_id_idx MONITORING USAGE ó : ALTER INDEX hr.dept_id_idx NOMONITORING USAGE Copyright Oracle Corporation, All rights reserved. þ Oracle9i부터는인덱스사용에대한통계를수집하여 V$OBJECT_USAGE에표시할수있습니다. 수집된정보를통해인덱스가사용되지않았다는것이확인되면해당인덱스를삭제할수있습니다. 또한사용되지않은인덱스를제거하면 Oracle 서버가 DML에대해수행해야하는오버헤드를방지할수있으므로성능이향상됩니다. MONITORING USAGE 절이지정될때마다 V$OBJECT_USAGE가지정된인덱스에대해재설정됩니다. 이전정보는지워지거나재설정되고새로운시작시간이기록됩니다. V$OBJECT_USAGE 열 INDEX_NAME: 인덱스이름입니다. TABLE_NAME: 해당테이블입니다. MONITORING: 모니터를 ON으로설정할지 OFF로설정할지여부를나타냅니다. USED: 모니터하는동안인덱스가사용되었는지여부를 YES 또는 NO로나타냅니다. START_MONITORING: 인덱스에대한모니터의시작시간을나타냅니다. END_MONITORING: 인덱스에대한모니터의중지시간을나타냅니다. Oracle9i Database Administration Fundamentals I 12-29

418 ñ ñ ñ. DBA_INDEXES: DBA_IND_COLUMNS: ÿ V$OBJECT_USAGE: ó Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 12-30

419 ñ ñ ó ñ. ñ ß ó Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 12-31

420 12 ñ ññ. ñ ú Copyright Oracle Corporation, All rights reserved. 12 주 : SQL*Plus 또는 Oracle Enterprise Manager와 SQL*Plus Worksheet를사용하여연습을수행할수있습니다. Oracle9i Database Administration Fundamentals I 12-32

421 12: 1 CUSTOMERS 테이블의 NAME 및 REGION 열에대한인덱스를생성하려는경우두열에적합한인덱스유형은? 각각 CUST_NAME_IDX 및 CUST_REGION_IDX라는이름을지정하여 INDX01 테이블스페이스에두개의인덱스를생성하십시오. 힌트 : B 트리인덱스는구분값이많은열에적당하고비트맵인덱스는구분값이적은열에적당합니다. CUSTOMERS 테이블은 SYSTEM 스키마에있습니다. 2 CUST_REGION_IDX 인덱스를다른테이블스페이스로이동하십시오. 힌트 : 다른테이블스페이스를지정하여인덱스를재구축할수있습니다. 3 CUST_REGION_IDX 인덱스로확장영역에사용되는파일및블록을기록하십시오. 힌트 : DBA_EXTENTS 뷰를사용하여이정보를얻을수있습니다. 4 CUST_REGION_IDX 인덱스를삭제및재생성하지않은상태에서이인덱스를재생성하고이전과동일한테이블스페이스에두십시오. 새인덱스가이전에사용한것과동일한블록을사용합니까? 힌트 : 인덱스를재구축합니다. 주 : 새인덱스는재구축후확장영역의위치에서보이는것과같이동일한영역을 재사용하지는않는데그이유는 Oracle 서버는임시인덱스를구축한후이전것은 삭제하고임시인덱스의이름을변경하기때문입니다. 5 a SYSTEM 사용자로 lab12_05a.sql 스크립트를실행하여 NUMBERS 테이블을생성하고채우십시오. b c NUMBERS 테이블을질의하여테이블에있는두열의구분값수를찾으십시오. 4KB의동일한확장영역크기로 NUMBERS 테이블의 ODD_EVEN 및 NO 열에 NUMB_OE_IDX 및 NUMB_NO_IDX의 B 트리인덱스를각각생성한후 INDX01 테이블스페이스에넣으십시오. 인덱스의전체크기를확인하여아래상자에블록의개수를기록하십시오. 힌트 : PCTINCREASE=0을사용하여동일한크기의확장영역을생성합니다. DBA_SEGMENTS에서확장영역에할당되는총블록을확인합니다. 인덱스 NUMB_OE_IDX NUMB_NO_IDX 열 ODD_EVEN NO 블록 Oracle9i Database Administration Fundamentals I 12-33

422 Oracle9i Database Administration Fundamentals I 12-34

423 Copyright Oracle Corporation, All rights reserved.

424 ñ ñ ñ. ß 13-2 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 13-2

425 13-3 Copyright Oracle Corporation, All rights reserved. 데이터무결성은데이터베이스의데이터가업무규칙을준수함을보장하며데이터무결성을유지관리할수있는기본적인방법으로는다음세가지가있습니다. 응용프로그램코드 데이터베이스트리거 선언적무결성제약조건설계시세개의방식중하나를사용하여업무규칙을매핑하며데이터베이스관리자는주로설계자가선택한방식을구현하고무결성요구사항에대한성능상요구의균형을맞춥니다. 응용프로그램코드는데이터베이스내의내장프로시저또는클라이언트에서실행중인응용프로그램으로구현할수있습니다. 이단원은무결성제약조건을중점적으로설명합니다. Oracle9i Database Administration Fundamentals I 13-3

426 ( ) 데이터베이스트리거데이터베이스트리거는열삽입또는열갱신같은특정이벤트가테이블에발생할때실행되는 PL/SQL 프로그램으로활성화하거나비활성화할수있습니다. 즉, 이벤트발생시실행되도록설정하거나정의했더라도실행되지않도록설정할수있습니다. 데이터베이스트리거는대개하나의무결성제약조건으로정의할수없는복잡한업무규칙을강제로시행할경우에만작성합니다. 주 : 데이터베이스트리거는다른 Oracle 과정에서설명합니다. 무결성제약조건업무규칙을시행할때무결성제약조건방식을선호하는이유는다음과같습니다. 향상된성능을제공합니다. 방대한코딩작업이필요하지않으므로선언및수정이용이합니다. 규칙을집중시킵니다. 유연성 ( 활성화또는비활성화가능 ) 이있습니다. 데이터딕셔너리에완전히문서화됩니다. 다음부분은무결성제약조건의기능을설명하고 Oracle 서버가구현하는방법에대해다룹니다. Oracle9i Database Administration Fundamentals I 13-4

427 NOT NULL à ñ. UNIQUE ñ. PRIMARY KEY FOREIGN KEY CHECK ñ. ñ. ñ Copyright Oracle Corporation, All rights reserved. 기본적으로테이블의모든열은널을허용합니다. 널은값이없음을의미합니다. NOT NULL 제약조건은테이블의열에값이포함되어야합니다. UNIQUE 키제약조건에서는하나의열또는여러열에있는값 ( 키 ) 이고유해야합니다. 테이블에있는어떤행도지정된열또는열집합에서중복된값을가질수없습니다. 데이터베이스의각테이블은 PRIMARY KEY 제약조건을하나까지만가질수있습니다. PRIMARY KEY 제약조건은다음두조건을모두만족시킵니다. 테이블에있는어떤행도지정된열에서중복된값을가질수없습니다. 기본키열은NULL 값을포함할수없습니다. 열또는열집합의CHECK 무결성제약조건은지정된조건이참이거나테이블의모든행에대해알수없음이어야합니다. NOT NULL 및 CHECK 제약조건에는 DBA의주의가직접적으로필요하지않지만 PRIMARY KEY, UNIQUE 및 FOREIGN KEY 제약조건은가용성을높이고수용가능한성능레벨을달성하기위해관리해야합니다. Oracle9i Database Administration Fundamentals I 13-5

428 DISABLE NOVALIDATE DISABLE VALIDATE ENABLE NOVALIDATE ENABLE VALIDATE = = 13-6 Copyright Oracle Corporation, All rights reserved. 무결성제약조건은활성화 (ENABLE) 되거나비활성화 (DISABLE) 될수있습니다. 제약조건이활성화되면데이터베이스에서데이터가입력또는갱신될때검사됩니다. 제약조건규칙을따르지않는데이터는입력할수없습니다. 제약조건이비활성화되면규칙을따르지않는데이터를데이터베이스에입력할수있습니다. 무결성제약조건은다음상태중하나일수있습니다. DISABLE NOVALIDATE DISABLE VALIDATE ENABLE NOVALIDATE ENABLE VALIDATE DISABLE NOVALIDATE: 이제약조건은검사하지않으며입력또는갱신한새로운데이터뿐만아니라테이블의데이터도해당제약조건에서정의한규칙을따르지않을수있습니다. DISABLE VALIDATE: 제약조건이이상태일경우에는제약조건이있는열을수정할수없으며제약조건에대한인덱스는삭제되고제약조건은비활성화됩니다. 주 : 제약조건이 Deferrable인경우에는인덱스가삭제되지않습니다. Oracle9i Database Administration Fundamentals I 13-6

429 ( ) ENABLE NOVALIDATE: 제약조건이이상태면제약조건을위반하는새데이터를입력할수없지만테이블에적합하지않은데이터즉, 제약조건을위반하는데이터를포함할수는있습니다. NOVALIDATE 상태의제약조건활성화는적합한 OLTP 데이터를업로드하는데이터웨어하우스구성에가장유용합니다. ENABLE VALIDATE: 제약조건이이상태면제약조건을위반하는행을테이블에삽입할수없지만제약조건이비활성화된동안에는삽입할수있습니다. 이러한행을제약조건의예외라고합니다. 제약조건이 ENABLE NOVALIDATE 상태가되면제약조건이비활성화된동안입력된데이터가위반상태가됩니다. 제약조건이검증된상태가되려면제약조건을위반하는행이갱신또는삭제되어야합니다. 제약조건을 Disabled 상태에서 ENABLE VALIDATE로변경하면테이블이잠기고테이블에있는모든데이터에대해일치성이검사되기때문에데이터로드같은 DML 작업이대기할수있으므로먼저 Disabled 상태에서 ENABLE NOVALIDATE로변경했다가다시 ENABLE VALIDATE로변경하는것이좋습니다. 이러한상태간의변환은다음규칙을따릅니다. NOVALIDATE 가지정되지않은경우 ENABLE 은 VALIDATE 를의미합니다. VALIDATE 가지정되지않은경우 DISABLE 은 NOVALIDATE 를의미합니다. VALIDATE 및 NOVALIDATE는기본적으로 ENABLE 및 DISABLE 상태를의미하지않습니다. 고유키및기본키가DISABLE 상태에서 ENABLE 상태로변경되고기존인덱스가없는경우고유인덱스가자동으로생성됩니다. 인덱스가 Deferrable 상태인경우에는예외가있습니다. 마찬가지로고유키및기본키가ENABLE 상태에서 DISABLE 상태로변경되고고유인덱스로활성화된경우에는해당고유인덱스가삭제됩니다. 제약조건이 NOVALIDATE 상태에서 VALIDATE 상태로변경될때는모든데이터가검사되어야하지만 VALIDATE에서 NOVALIDATE로변경될경우데이터가이미검사되었다는사실이인식되지않습니다. 단일제약조건을 ENABLE NOVALIDATE 상태에서 ENABLE VALIDATE 상태로변경한경우에도읽기, 쓰기또는기타 DDL 문을차단하지않습니다. Oracle9i Database Administration Fundamentals I 13-7

430 DML nondeferred COMMIT Deferred 13-8 Copyright Oracle Corporation, All rights reserved. 트랜잭션이끝날때까지제약조건의유효성검사를지연할수있습니다. Nondeferred 또는 immediate 제약조건 Nondeferred 제약조건은 Immediate 제약조건이라고도하며모든 DML 문종료시시행하는데제약조건을위반하면명령문이롤백됩니다. 즉, 제약조건으로인해 DELETE CASCADE 같은작업이수행되면이작업은원인을제공한명령문의일부로수행됩니다. Nondeferrable로정의한제약조건은트랜잭션종료시시행하도록수정할수없습니다. Deferred 제약조건 Deferred 제약조건은트랜잭션커밋시에만검사되는제약조건으로서커밋시제약조건위반이감지되면전체트랜잭션이롤백됩니다. 이러한제약조건은주문및주문항목을동시에입력하는주문입력시스템의경우와같이외래키관계에서상위및하위행을동시에입력할때가장유용합니다. Deferrable로정의하는제약조건은다음중하나로지정할수있습니다. Initially immediate는명시적으로다르게설정하지않는한기본적으로 Immediate 제약조건으로서수행함을나타냅니다. Initially deferred는기본적으로트랜잭션종료시에만제약조건을시행해야함을나타냅니다. Oracle9i Database Administration Fundamentals I 13-8

431 Immediate Deferred SET CONSTRAINTS DEFERRED IMMEDIATE ALTER SESSION SET CONSTRAINTS DEFERRED IMMEDIATE 13-9 Copyright Oracle Corporation, All rights reserved. Immediate Deferred SET CONSTRAINTS 문은특정트랜잭션에대한제약조건을 DEFERRED 또는 IMMEDIATE로설정합니다. 이문을사용하여제약조건이름목록또는제약조건의모드를설정할수있습니다. SET CONSTRAINTS 모드는트랜잭션동안또는다른 SET CONSTRAINTS 문이모드를재설정할때까지유지됩니다. 트리거내에서는 SET CONSTRAINTS 문을사용할수없습니다. ALTER SESSION 문의 SET CONSTRAINTS 절을사용하여 DEFERRED 또는 IMMEDIATE로설정할수도있습니다. 이명령은 ALL Deferrable 제약조건설정을의미하며제약조건이름목록은지정할수없습니다. ALTER SESSION SET CONSTRAINTS 문은현재세션에만적용됩니다. ALTER SESSION SET CONSTRAINT[S] = {IMMEDIATE DEFERRED DEFAULT} SET CONSTRAINT CONSTRAINTS {constraint ALL } {IMMEDIATE DEFERRED} Oracle9i Database Administration Fundamentals I 13-9

432 ? ÿ? Deferrable?? Deferrable? / Copyright Oracle Corporation, All rights reserved. 기본및고유키는인덱스를사용하여시행하며이제약조건을시행하는데사용하는인덱스의위치및유형을제어할수있습니다. Oracle 서버는다음프로시저를사용하여고유및기본키제약조건을구현합니다. 제약조건을비활성화하면인덱스가필요하지않습니다. 제약조건을활성화하고제약조건의열이인덱스의선행부분을형성하면인덱스가고유인덱스인지비고유인덱스인지여부에상관없이해당인덱스가제약조건을시행합니다. 제약조건을활성화하고제약조건열을인덱스의선행부분으로사용하는인덱스가없을경우에는다음규칙을사용하여제약조건과동일한이름을가진인덱스가생성됩니다. 키가 deferrable인경우에는키열에대한비고유인덱스가생성됩니다. 키가 nondeferrable인경우에는고유인덱스가생성됩니다. 인덱스를사용할수있고제약조건이 nondeferrable이면기존인덱스를사용합니다. 또한제약조건이 deferrable이고인덱스가비고유인경우에도기존인덱스를사용합니다. Oracle9i Database Administration Fundamentals I 13-10

433 ñ DML CASCADE CONSTRAINTS Copyright Oracle Corporation, All rights reserved. 외래키관계에있는테이블을유지관리할경우몇가지요인을고려해야합니다. 상위테이블관련 DDL 상위테이블을삭제하기전에외래키를삭제해야하며다음명령을사용하여명령문하나로작업두가지를모두수행합니다. DROP TABLE table CASCADE CONSTRAINTS 외래키를삭제또는비활성화하지않으면상위테이블을절단할수없습니다. 상위테이블을포함하고있는테이블스페이스를삭제하기전에외래키를삭제해야하는데이를수행하려면다음명령을사용합니다. DROP TABLESPACE tablespace INCLUDING CONTENTS CASCADE CONSTRAINTS Oracle9i Database Administration Fundamentals I 13-11

434 ( ) 상위테이블에서행을삭제할때 DELETE CASCADE 옵션을사용하지않을경우 Oracle 서버는하위테이블에해당외래키를가진행이없는지확인해야합니다. 마찬가지로이전키값을가진하위행이없을경우에만상위키를갱신할수있으며하위테이블의외래키에대한인덱스가없을경우 Oracle 서버는테이블을잠그고변경을금지시켜참조무결성을보장합니다. 그러나테이블에대한인덱스가있을경우에는인덱스항목을잠그고하위테이블은덜제한적으로잠그는방식으로참조무결성을유지관리하며다른트랜잭션에서두테이블을동시에갱신해야할경우에는외래키열에대한인덱스를생성합니다. 데이터를하위테이블에삽입하거나하위테이블에서외래키열을갱신할경우 Oracle 서버는참조키를시행할때사용하는상위테이블의인덱스를검사하므로인덱스를포함하고있는테이블스페이스가온라인일때만성공적으로작업할수있습니다. 그러나하위테이블에대한 DML 작업을수행할경우에는상위테이블을포함하고있는테이블스페이스가온라인일필요는없습니다. Oracle9i에서는기본키를갱신하거나삭제할때인덱스되지않은외래키의공유잠금이더이상필요하지않습니다. 테이블레벨의공유잠금을가져오지만이잠금은가져온즉시해제됩니다. 여러기본키가갱신되거나삭제될경우에는행단위로잠금을가져오고해제합니다. Oracle9i Database Administration Fundamentals I 13-12

435 CREATE TABLE hr.employee( id NUMBER(7) CONSTRAINT employee_id_pk PRIMARY KEY DEFERRABLE USING INDEX STORAGE(INITIAL 100K NEXT 100K) TABLESPACE indx, last_name VARCHAR2(25) CONSTRAINT employee_last_name_nn NOT NULL, dept_id NUMBER(7)) TABLESPACE users; Copyright Oracle Corporation, All rights reserved. 테이블을생성하거나변경할때제약조건을정의할수있습니다. CREATE TABLE 또는 ALTER TABLE 문의 constraint_clause 절을사용하여제약조건을정의합니다. 무결성제약조건을정의하려면필수권한이있어야하며참조무결성제약조건을생성하려면상위테이블이사용자스키마에있거나상위테이블에있는참조키열에대해 REFERENCES 권한이있어야합니다. Oracle9i Database Administration Fundamentals I 13-13

436 2 Column_constraint 구문은테이블정의의일부입니다. 테이블이생성될때다음구문을사용하여제약조건을정의할수있습니다. column datatype [CONSTRAINT constraint] {[NOT] NULL UNIQUE [USING INDEX index_clause] PRIMARY KEY [USING INDEX index_clause] REFERENCES [schema.]table [(column)] [ON DELETE CASCADE] CHECK (condition) } constraint_state :== [NOT DEFERRABLE DEFERRABLE [INITIALLY {IMMEDIATE DEFERRED}] ] [DISABLE ENABLE [VALIDATE NOVALIDATE]] 설명 : CONSTRAINT: 데이터딕셔너리에저장된 constraint 이름으로무결성제약조건을식별합니다. USING INDEX: index_clause에정의한매개변수를 Oracle 서버가사용하는인덱스에사용하여고유또는기본키제약조건을시행해야함을나타내며인덱스이름은제약조건이름과동일합니다. DEFERRABLE: SET CONSTRAINT 명령을사용하여트랜잭션이끝날때까지제약조건검사가지연될수있음을나타냅니다. NOT DEFERRABLE: 각 DML 문종료시이제약조건이검사됨을나타냅니다. ( 세션또는트랜잭션은 NOT DEFERRABLE 제약조건을지연시킬수없으며 NOT DEFERRABLE이기본값입니다.) INITIALLY IMMEDIATE: 모든트랜잭션시작시기본적으로모든 DML 문이끝날때마다이제약조건을검사함을나타냅니다. (INITIALLY 절을지정하지않으면기본값은 INITIALLY IMMEDIATE입니다.) INITIALLY DEFERRED: 이제약조건은DEFERRABLE임을의미하며기본적으로각트랜잭션종료시에만제약조건이검사됨을나타냅니다. DISABLE: 무결성제약조건을비활성화합니다 무결성제약조건을비활성화하면 Oracle 서버는이를시행하지않습니다.) Oracle9i Database Administration Fundamentals I 13-14

437 ( ) Oracle Enterprise Manager를사용하여제약조건정의 OEM Console에서다음작업을수행합니다. 1. Databases > Schema > Table로이동합니다. 2. 마우스오른쪽버튼을눌러 Create를선택합니다. 3. General 페이지에서해당정보를입력합니다. 4. Constraints 페이지를선택하여무결성제약조건을정의합니다. 5. Create를누릅니다. Oracle9i Database Administration Fundamentals I 13-15

438 ( ) 테이블제약조건테이블제약조건은테이블정의의일부입니다. 다음구문을사용하여 NOT NULL 제약조건을제외한임의의유형의제약조건을정의할수있습니다. [CONSTRAINT constraint] {PRIMARY KEY (column [, column ]... ) [USING INDEX index_clause] UNIQUE (column [, column ]... ) [USING INDEX index_clause] FOREIGN KEY (column [, column ]... ) REFERENCES [schema.]table [(column [, column ]... )] [ON DELETE CASCADE] CHECK (condition) } [constraint_state] 제약조건에표준이름지정규칙을적용하는것이좋습니다. 동일한제약조건을다른이름으로여러번생성할수있으므로특히 CHECK 제약조건에는표준이름지정규칙을적용하십시오. 다음경우테이블제약조건이필요합니다. 제약조건하나가열이름을두개이상지정하는경우 NOT NULL 제약조건외의제약조건을추가하기위해테이블을변경할경우 테이블생성후 NOT NULL 유형에제약조건을정의하는것은다음구문을통해서만가능합니다. ALTER TABLE table MODIFY column CONSTRAINT constraint NOT NULL; 테이블생성후제약조건정의 : 예제 SQL> ALTER TABLE hr.employee 2 ADD(CONSTRAINT employee_dept_id_fk FOREIGN KEY(dept_id) 3 REFERENCES hr.department(id) 4 DEFERRABLE INITIALLY DEFERRED); 주 : EXCEPTIONS 절을사용하여 ALTER TABLE 명령으로추가한제약조건위반행을식별할수있으며 EXCEPTIONS 절은이단원뒷부분의 " 제약조건활성화 " 에서설명합니다. Oracle9i Database Administration Fundamentals I 13-16

439 ó Copyright Oracle Corporation, All rights reserved. 제약조건을정의할경우다음지침을따릅니다. 기본키및고유제약조건시행에사용하는인덱스는테이블과다른테이블스페이스에두는데이렇게하려면 USING INDEX 절을지정하거나테이블및인덱스를생성하고테이블을변경하여제약조건을추가또는활성화합니다. 대량의데이터를테이블하나에자주로드하는경우에는제약조건을비활성화하고로드를수행한다음제약조건을다시활성화하는것이바람직하며기본키또는고유제약조건시행에고유인덱스를사용하는경우에는제약조건을비활성화할때인덱스를삭제해야합니다. 이러한상황에서비고유인덱스를사용하면성능을향상시킬수있는데이렇게하려면키를 deferrable로생성하거나키를정의또는활성화하기전에인덱스를생성합니다. 테이블에자체참조외래키가포함되어있는경우에는다음방식중하나를사용하여데이터를로드합니다. 초기로드후외래키를정의또는활성화합니다. 제약조건을 deferrable 제약조건으로정의합니다. 데이터를자주로드할경우에는두번째방식이유용합니다 Oracle9i Database Administration Fundamentals I 13-17

440 ENABLE NOVALIDATE ALTER TABLE hr.departments ENABLE NOVALIDATE CONSTRAINT dept_pk; Copyright Oracle Corporation, All rights reserved. 현재비활성화된제약조건은다음두가지방법, 즉 ENABLE NOVALIDATE 또는 ENABLE VALIDATE 중하나로활성화할수있습니다. Enable NOVALIDATE 기존인덱스가있는 PRIMARY KEY 및 UNIQUE 제약조건이 deferrable인경우에는기존데이터에대해제약조건위반여부를검사하지않으므로제약조건을 ENABLE NOVALIDATE 로지정하는것이 ENABLE VALIDATE로지정하는것보다빠르며이옵션을제약조건활성화에사용하면테이블을잠그지않아도됩니다. 이방식은 OLTP 환경의경우와같이테이블에대한 DML 작업이많은경우에적합합니다. 다음명령을사용하여제약조건을 ENABLE NOVALIDATE로지정할수있습니다. ALTER TABLE [ schema. ] table ENABLE NOVALIDATE {CONSTRAINT constraint PRIMARY KEY UNIQUE ( column [, column ]... ) } [ USING INDEX index_clause ] Oracle9i Database Administration Fundamentals I 13-18

441 ( ) 제한사항 USING INDEX 절은 deferrable로생성한기본키또는고유제약조건이면서다음중하나가참일경우에만적용할수있습니다. 제약조건을비활성화상태로생성하였습니다. 제약조건을비활성화하고인덱스를삭제하였습니다. 그러나이러한제약조건활성화방식을사용하여인덱스를생성해야하는경우 Oracle 서버가인덱스생성을위해테이블을잠그므로 ENABLE VALIDATE에대한이점이상당히없어집니다. 주 : 제약조건비활성화는 Introduction to Oracle: SQL* and PL/SQL 과정에서설명합니다. Oracle9i Database Administration Fundamentals I 13-19

442 ( ) Oracle Enterprise Manager를사용하여제약조건정의 OEM Console에서다음작업을수행합니다. 1. Databases > Schema > Table로이동합니다. 2. 수정할제약조건이있는테이블을선택합니다. 3. Constraints 탭을누른다음수정합니다. 4. Apply를누릅니다. Oracle9i Database Administration Fundamentals I 13-20

443 ENABLE VALIDATE ALTER TABLE hr.employees ENABLE VALIDATE CONSTRAINT emp_dept_fk; Copyright Oracle Corporation, All rights reserved. 제약조건을 VALIDATE로지정하면기존데이터에서제약조건위반여부가검사되며제약조건을활성화한상태에서는이것이기본값입니다. 제약조건을비활성화한경우이를실행하면다음결과를얻게됩니다. 테이블이잠기므로기존데이터의검증이끝날때까지테이블을변경할수없습니다. 인덱스열에인덱스가없을경우에는 Oracle 서버가인덱스를생성하는데 nondeferrable한기본키또는고유제약조건을활성화한경우에는고유인덱스를생성하고 deferrable한기본키또는고유제약조건인경우에는비고유인덱스를생성합니다. 제약조건시행시이명령을실행하면검증중에테이블을잠글필요가없습니다. 시행한제약조건은검증중에위반이없음을보장하며다음이점이있습니다. 모든제약조건이동시에활성화됩니다. 각제약조건은내부적으로병렬처리됩니다. 테이블에서동시작업을수행할수있습니다. Oracle9i Database Administration Fundamentals I 13-21

444 ( ) 다음명령은제약조건을 ENABLE VALIDATE로지정합니다. ALTER TABLE [ schema. ] table ENABLE [ VALIDATE ]{CONSTRAINT constraint PRIMARY KEY UNIQUE ( column [, column ]... ) } [ USING INDEX index_clause ] [ EXCEPTIONS INTO [ schema. ] table ] 주 : 비활성화된제약조건을활성화할경우에는 VALIDATE 옵션이기본값이므로지정할필요가없습니다. 테이블에있는데이터가제약조건을위반한경우에는명령문이롤백되고제약조건은비활성화된상태로남습니다. EXCEPTIONS 절의사용은다음부분에서설명합니다. Oracle9i Database Administration Fundamentals I 13-22

445 EXCEPTIONS utlexcpt1.sql EXCEPTIONS EXCEPTIONS ALTER TABLE EXCEPTIONS ALTER TABLE Copyright Oracle Corporation, All rights reserved. EXCEPTIONS 절은활성화된제약조건을위반하는행을식별하므로다음절차를사용하 여제약조건위반을검출하고고친다음다시제약조건을활성화합니다. 1. EXCEPTIONS를아직생성하지않은경우에는 utlexcpt1.sql 스크립트를실행합니 다. Statement processed. SQL> DESCRIBE exceptions Name Null? Type ROW_ID ROWID OWNER VARCHAR2(30) TABLE_NAME VARCHAR2(30) CONSTRAINT VARCHAR2(30) 주 : utlexcpt1.sql 스크립트의정확한이름과위치는운영체제마다다릅니다. 자세한내용은운영체제별 Oracle 설명서를참조하십시오. Oracle9i Database Administration Fundamentals I 13-23

446 ( ) 2. EXCEPTIONS 절을사용하여 ALTER TABLE 명령을실행합니다. SQL> ALTER TABLE hr.employee 2 ENABLE VALIDATE CONSTRAINT employee_dept_id_fk 3 EXCEPTIONS INTO system.exceptions; ALTER TABLE hr.employee * ORA-02298: cannot enable (HR.EMPLOYEE_DEPT_ID_FK) - parent keys not found EXCEPTIONS 테이블이소유자의이름으로명확하게지정되어있지않으면테이블을변경중인소유자의것으로간주됩니다. 행은 EXCEPTIONS 테이블에삽입되며명령을다시실행하는경우에는 EXCEPTIONS 테이블을잘라버려기존의모든행을삭제합니다. 3. EXCEPTIONS 테이블에서브쿼리를사용하여부적합한데이터를식별합니다. SQL> SELECT rowid, id, last_name, dept_id 2 FROM hr.employee 3 WHERE ROWID in (SELECT row_id 4 FROM exceptions) 5 FOR UPDATE; ROWID ID LAST_NAME DEPT_ID AAAAeyAADAAAAA1AAA 1003 Pirie 50 1 row selected. 4. 데이터의오류를수정합니다. SQL> UPDATE hr.employee 2 SET dept_id=10 3 WHERE rowid= AAAAeyAADAAAAA1AAA ; 1 row processed. SQL> COMMIT; Statement processed. Oracle9i Database Administration Fundamentals I 13-24

447 ( ) 5. EXCEPTIONS 테이블을잘라버리고제약조건을다시활성화합니다. SQL> TRUNCATE TABLE exceptions; Statement processed. SQL> ALTER TABLE hr.employee 2 ENABLE VALIDATE CONSTRAINT employee_dept_id_fk 3 EXCEPTIONS INTO system.exceptions; Statement processed. Oracle9i Database Administration Fundamentals I 13-25

448 ñ ó ñ. DBA_CONSTRAINTS DBA_CONS_COLUMNS Copyright Oracle Corporation, All rights reserved. 다음질의를사용하면 HR의 EMPLOYEES 테이블에있는모든제약조건의이름, 유형및 상태를알수있습니다. SQL> SELECT constraint_name, constraint_type, deferrable, 2 deferred, validated 3 FROM dba_constraints 4 WHERE owner='hr' 5 AND table_name='employees'; CONSTRAINT_NAME C DEFERRABLE DEFERRED VALIDATED EMPLOYEE_DEPT.. R DEFERRABLE DEFERRED VALIDATED EMPLOYEE_ID_PK P DEFERRABLE IMMEDIATE VALIDATED SYS_C00565 C NOT DEFERRABLE IMMEDIATE VALIDATED 3 rows selected. Oracle9i Database Administration Fundamentals I 13-26

449 ( ) 다음테이블은 DBA_CONSTRAINTS 뷰에서명확하지않은열을보여줍니다. 이름 CONSTRAINT_TYPE SEARCH_CONDITION R_OWNER R_CONSTRAINT_NAME GENERATED BAD RELY LAST_CHANGE 설명 제약조건의유형이기본키면 P, 고유키면 U, 외래키면 R, CHECK 제약조건일때는 C 며 NOT NULL 제약조건은 CHECK 제약조건으로저장합니다. CHECK 제약조건에지정된조건을보여줍니다. 외래키에대해참조되는제약조건의소유자및이름을정의합니다. 제약조건이름을시스템이생성했는지여부를나타냅니다. ( 적합한값은 USERNAME 및 GENERATED NAME 입니다.) Y2K 문제와같은상황을방지하기위해제약조건을다시생성해야함을나타냅니다. 설정하면이플래그는최적기에서사용됩니다. 제약조건을마지막으로활성화하거나비활성화한날짜를표시합니다. 제약조건열 HR의 EMPLOYEE 테이블에대한제약조건열을보려면다음질의를사용합니다. SQL> SELECT c.constraint_name, c.constraint_type, 2 cc.column_name 3 FROM dba_constraints c, dba_cons_columns cc 4 WHERE c.owner='hr' 5 AND c.table_name='employee' 6 AND c.owner = cc.owner 7 AND c.constraint_name = cc.constraint_name 8 ORDER BY cc.position; CONSTRAINT_NAME C COLUMN_NAME EMPLOYEE_DEPT... R DEPT_ID EMPLOYEE_ID_PK P ID SYS_C00565 C LAST_NAME 3 rows selected. Oracle9i Database Administration Fundamentals I 13-27

450 ( ) 기본키- 외래키관계찾기 HR의 EMPLOYEE 테이블에대한외래키및상위제약조건을찾으려면다음질의를사용합니다. SQL> SELECT c.constraint_name AS "Foreign Key", 2 p.constraint_name AS "Referenced Key", 3 p.constraint_type, 4 p.owner, 5 p.table_name 6 FROM dba_constraints c, dba_constraints p 7 WHERE c.owner='hr' 8 AND c.table_name='employee' 9 AND c.constraint_type='r' 10 AND c.r_owner=p.owner 11 AND c.r_constraint_name = p.constraint_name; Foreign Key Referenced Key C OWNER TABLE_NAME EMPLOYEES_DEPT.. DEPT_PK P HR DEPARTMENT 1 row selected. Oracle9i Database Administration Fundamentals I 13-28

451 ñ ñ ó ñ. ß Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 13-29

452 13 ñ ññ. EXCEPTIONS ñ Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 13-30

453 13: 1 lab13c01.sql 스크립트를검사하고이스크립트를실행하여제약조건을생성하 십시오. 2 데이터딕셔너리를질의하여다음을수행하십시오. a 제약조건이 deferrable인지여부와제약조건의상태를확인합니다. 힌트 : DBA_CONSTRAINTS 뷰를사용하여이정보를얻을수있습니다. b 제약조건을검증하기위해생성되는인덱스의이름및유형을확인합니다. 힌트 : 인덱스는기본키및고유제약조건에대해서만생성되고제약조건과동일한 이름을갖습니다. 3 SYSTEM 사용자로접속하여 lab13_03.sql 스크립트를실행하고두개의레코드를 PRODUCTS 테이블에삽입하십시오. 4 PRODUCT 테이블에서고유제약조건을활성화하십시오. 활성화되었습니까? 5 a 테이블에새로추가되는행이 PRODUCT 테이블의제약조건을위반하지않도록하십시오. 힌트 : NOVALIDATE 제약조건을사용하여이작업을수행할수있습니다. b 데이터딕셔너리를질의하여변경되는결과를확인하십시오. c 다음값을가진행을추가하여변경사항을위반하는삽입을제약조건이거부하 는지테스트하십시오. PRODUCT_ID PRODUCT_DESCRIPTION LIST_PRICE 4000 Monitor 필요한단계를수행하여 PRODUCTS 테이블에서기존제약조건위반을확인하고 필요한경우제품코드를수정한후모든기존데이터및새데이터가제약조건을 위반하지않도록하십시오. ( 테이블에는수천개의행이있고수동으로각행을확 인하기에는시간이너무많이소요된다고가정합니다.) 힌트 : 다음단계를수행합니다. a EXCEPTIONS 테이블을생성합니다. b 이명령을실행하여제약조건을활성화하고예외사항을트랩합니다. 6 c EXCEPTIONS 테이블의 ROWID를사용하여제약조건을위반하는 PRODUCTS 테이블의행을나열합니다. LOB(List Large Object) 열을나열하지마십시오. d 오류를수정합니다. e 제약조건을활성화합니다. 7 lab13_07.sql 스크립트를실행하여테이블에행을삽입하십시오. 삽입되었습니 까? 변경사항을롤백하십시오. Oracle9i Database Administration Fundamentals I 13-31

454 Oracle9i Database Administration Fundamentals I 13-32

455 Copyright Oracle Corporation, All rights reserved.

456 ñ ñ ñ., 14-2 Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 14-2

457 CREATE USER ALTER USER ò DEFAULT 14-3 Copyright Oracle Corporation, All rights reserved. 프로파일은다음암호및자원제한을명명한집합입니다. 암호만기일기능및암호만기 암호기록 암호복잡성확인 계정잠금 CPU 시간 I/O( 입출력 ) 작업 휴지시간 연결시간 메모리공간 ( 공유서버만을위한전용 SQL 영역 ) 동시세션프로파일을생성하면데이터베이스관리자가이를각사용자에게할당할수있으며자원제한을활성화하면 Oracle 서버는해당사용자에게정의한프로파일에따라데이터베이스사용및자원을제한합니다. Oracle9i Database Administration Fundamentals I 14-3

458 ( ) Oracle 서버는데이터베이스생성시 DEFAULT 프로파일을자동으로생성합니다. 특정프로파일에명시적으로할당되지않은사용자는 DEFAULT 프로파일의모든제한을따르는데처음에는모든 DEFAULT 프로파일에제한이없지만데이터베이스관리자는기본적으로모든사용자에게제한을적용하도록값을변경할수있습니다. 프로파일용도 자원을많이사용해야하는일부작업을사용자가수행할수없도록제한합니다. 사용자의세션이일정시간동안휴지상태면데이터베이스를로그오프하도록합니다. 유사한사용자에대한그룹자원제한을활성화합니다. 사용자에게자원제한을쉽게할당합니다. 대용량의복잡한다중사용자데이터베이스시스템에서자원사용을관리합니다. 암호사용을제어합니다. 프로파일특성 프로파일할당은현재세션에영향을주지않습니다. 프로파일은사용자에게만할당할수있고롤또는다른프로파일에는할당할수없습니다. 사용자생성시프로파일을할당하지않으면 DEFAULT 프로파일을자동으로할당합니다. Oracle9i Database Administration Fundamentals I 14-4

459 14-5 Copyright Oracle Corporation, All rights reserved. 데이터베이스보안을철저히관리하기위해데이터베이스관리자는프로파일을사용하여 Oracle 암호관리를제어합니다. 이단원에서는사용가능한암호관리기능에대해설명합니다. 계정잠금 : 사용자가지정한시도횟수내에시스템에로그인하지못하면계정을자동으로잠글수있습니다. 암호만기일기능및암호만기 : 암호에실행주기가있어암호가만료되면바꾸어야합니다. 암호기록 : 지정한기간또는암호변경횟수동안암호를재사용하지않았는지확인하기위해새암호를검사합니다. 암호복잡성확인 : 암호를추측하여시스템에침입하려고하는침입자를방지할수있을만큼암호가복잡한지확인하기위해암호의복잡성을검사합니다. Oracle9i Database Administration Fundamentals I 14-5

460 òñ. CREATE USER ALTER USER ñ. ÿ ñ. SYS utlpwdmg.sql ñ Copyright Oracle Corporation, All rights reserved. CREATE USER 또는 ALTER USER 명령을사용하여암호설정을제한할프로파일을생성한다음해당프로파일을사용자에게할당합니다. 프로파일내의암호제한설정은항상시행합니다. 암호관리를활성화한상태에서 CREATE USER 또는 ALTER USER 명령을사용하여사용자계정을잠그거나잠금을해제할수있습니다. 주 : CREATE USER 명령은 " 사용자관리 " 단원에서설명합니다. Oracle9i Database Administration Fundamentals I 14-6

461 FAILED_LOGIN_ATTEMPTS PASSWORD_LOCK_TIME ÿ 14-7 Copyright Oracle Corporation, All rights reserved. FAILED_LOGIN_ATTEMPTS 값에도달하면 Oracle 서버가자동으로계정을잠그며이계정은 PASSWORD_LOCK_TIME이정의한시간이지나면자동으로잠금을해제하거나또는데이터베이스관리자가 ALTER USER 명령을사용하여잠금을해제해야합니다. 데이터베이스계정은 ALTER USER 명령을사용하여명시적으로잠글수있으며이경우에는계정잠금을자동으로해제하지않습니다. 주 : ALTER USER 명령은이단원의뒷부분에서설명합니다. Oracle9i Database Administration Fundamentals I 14-7

462 PASSWORD_LIFE_TIME ó PASSWORD_GRACE_TIME þ 14-8 Copyright Oracle Corporation, All rights reserved. PASSWORD_LIFE_TIME 매개변수는암호를변경해야하는최대실행주기를설정합니다. 데이터베이스관리자는암호만기후처음으로해당데이터베이스에로그인할때부터시작되는유예기간 (PASSWORD_GRACE_TIME) 을지정할수있는데이유예기간이지날때까지는사용자가로그인하려고할때마다경고메시지를생성하므로유예기간안에암호를변경합니다. 암호를바꾸지않으면계정을사용할수없습니다. 명시적으로암호를만료한것으로설정하여사용자계정상태를 EXPIRED로변경합니다. Oracle9i Database Administration Fundamentals I 14-8

463 PASSWORD_REUSE_TIME PASSWORD_REUSE_MAX ú ó 14-9 Copyright Oracle Corporation, All rights reserved. 암호기록검사는사용자가지정한기간동안암호를재사용할수없음을확인하며이러한검사는다음중하나를사용하여수행합니다. PASSWORD_REUSE_TIME: 주어진일수동안암호를재사용할수없도록지정하려면 PASSWORD_REUSE_TIME을사용합니다. PASSWORD_REUSE_MAX: 사용자에게이전암호와다른암호를정의하도록하려면 PASSWORD_REUSE_MAX를사용합니다. 매개변수를 DEFAULT 또는 UNLIMITED 외의값으로설정한경우에는다른매개변수를 UNLIMITED로설정해야합니다. Oracle9i Database Administration Fundamentals I 14-9

464 PASSWORD_VERIFY_FUNCTION ò ò PL/SQL Copyright Oracle Corporation, All rights reserved. 사용자에게새암호를할당하기전에 PL/SQL 함수를호출하여해당암호의유효성을확인할수있습니다. Oracle 서버가기본확인루틴을제공하거나데이터베이스관리자가 PL/SQL 함수를작성할수있습니다. Oracle9i Database Administration Fundamentals I 14-10

465 SYS þ þ ñ ñ. function_name( userid_parameter IN VARCHAR2(30), password_parameter IN VARCHAR2(30), old_password_parameter IN VARCHAR2(30)) RETURN BOOLEAN Copyright Oracle Corporation, All rights reserved. 새암호확인함수를추가할경우데이터베이스관리자는다음제한사항을고려해야합니다. 프로시저는슬라이드에표시한사양을사용해야합니다. 프로시저는성공인경우 TRUE 값을, 실패인경우 FALSE 값을반환합니다. 암호함수에서예외사항이발생하면오류를반환하면서 ALTER USER 또는 CREATE USER 명령을종료합니다. 암호함수는 SYS 소유입니다. 암호함수가사용할수없게되면오류메시지가반환되며 ALTER USER 또는 CREATE USER 명령이종료됩니다. 주 : CREATE USER 명령은 " 사용자관리 " 단원에서설명합니다. Oracle9i Database Administration Fundamentals I 14-11

466 VERIFY_FUNCTION á ñ. ú ñ., þ ñ. ò ñ Copyright Oracle Corporation, All rights reserved. Oracle 서버는 utlpwdmg.sql 스크립트에의해 VERIFY_FUNCTION이라고하는기본 PL/SQL 함수형태로복잡성확인함수를제공하며이함수는 SYS 스키마에서실행합니다. utlpwdmg.sql 스크립트를실행하는동안 Oracle 서버는 VERIFY_FUNCTION을생성한후다음ALTER PROFILE 명령을사용하여 DEFAULT 프로파일을변경합니다. SQL> ALTER PROFILE DEFAULT LIMIT 2 PASSWORD_LIFE_TIME 60 3 PASSWORD_GRACE_TIME 10 4 PASSWORD_REUSE_TIME PASSWORD_REUSE_MAX UNLIMITED 6 FAILED_LOGIN_ATTEMPTS 3 7 PASSWORD_LOCK_TIME 1/ PASSWORD_VERIFY_FUNCTION verify_function; Oracle9i Database Administration Fundamentals I 14-12

467 : CREATE PROFILE grace_5 LIMIT FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME UNLIMITED PASSWORD_LIFE_TIME 30 PASSWORD_REUSE_TIME 30 PASSWORD_VERIFY_FUNCTION verify_function PASSWORD_GRACE_TIME 5; Copyright Oracle Corporation, All rights reserved. 다음 CREATE PROFILE 명령을사용하여암호를관리합니다. CREATE PROFILE profile LIMIT [FAILED_LOGIN_ATTEMPTS max_value] [PASSWORD_LIFE_TIME max_value] [ {PASSWORD_REUSE_TIME PASSWORD_REUSE_MAX} max_value] [PASSWORD_LOCK_TIME max_value] [PASSWORD_GRACE_TIME max_value] [PASSWORD_VERIFY_FUNCTION {function NULL DEFAULT} ] Oracle9i Database Administration Fundamentals I 14-13

468 ( ) 설명 PROFILE: 생성할프로파일이름입니다. FAILED_LOGIN_ATTEMPTS: 사용자계정을잠그기전에사용자계정으로로그인시도를실패할수있는횟수를지정합니다. PASSWORD_LIFE_TIME: 인증을위해동일한암호를사용할수있는일수를제한하는데이기간내에암호를바꾸지않으면암호가만료되어이후연결을거부합니다. PASSWORD_REUSE_TIME: 암호를재사용할수있게될때까지의일수를지정하는데 PASSWORD_REUSE_TIME을정수값으로설정한경우에는 PASSWORD_REUSE_MAX를 UNLIMITED로설정해야합니다. PASSWORD_REUSE_MAX: 현재암호를재사용할수있기전에필요한암호변경횟수를지정하는데 PASSWORD_REUSE_MAX를정수값으로설정한경우에는 PASSWORD_REUSE_TIME을 UNLIMITED로설정해야합니다. PASSWORD_LOCK_TIME: 지정된로그인연속실패횟수이후계정을잠그는일수를지정합니다. PASSWORD_GRACE_TIME: 경고는표시하지만로그인을허용하는유예기간일수를지정하는데유예기간동안암호를바꾸지않으면암호가만료됩니다. PASSWORD_VERIFY_FUNCTION: PL/SQL 암호복잡성확인함수를 CREATE PROFILE 문에인수로전달하도록합니다. Oracle9i Database Administration Fundamentals I 14-14

469 Oracle Enterprise Manager를사용하여프로파일생성 OEM Console에서다음작업을수행합니다. 1. Databases > Security > Profiles로이동합니다. 2. 마우스오른쪽버튼을눌러 Create를선택합니다. 3. Profile에이름을입력하고다른필드를입력하거나기본값을사용합니다. 4. Password 탭을선택한다음계정암호매개변수를입력합니다. 5. Create를누릅니다. Oracle9i Database Administration Fundamentals I 14-15

470 Oracle Enterprise Manager를사용하여프로파일생성 OEM Console에서다음작업을수행합니다. 1. Databases > Security > Profiles로이동합니다. 2. 마우스오른쪽버튼을눌러 Create를선택합니다. 3. 마우스오른쪽버튼을눌러 Object > Assign a Profile to User(s) 를선택합니다. 4. 사용자를선택합니다. 5. OK를누릅니다. Oracle9i Database Administration Fundamentals I 14-16

471 : ALTER PROFILE ñ. ALTER PROFILE default LIMIT FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LIFE_TIME 60 PASSWORD_GRACE_TIME 10; Copyright Oracle Corporation, All rights reserved. ALTER PROFILE 명령을사용하여프로파일에지정한암호제한을변경할수있습니다. ALTER PROFILE profile LIMIT [FAILED_LOGIN_ATTEMPTS max_value] [PASSWORD_LIFE_TIME max_value] [ {PASSWORD_REUSE_TIME PASSWORD_REUSE_MAX} max_value] [PASSWORD_LOCK_TIME max_value] [PASSWORD_GRACE_TIME max_value] [PASSWORD_VERIFY_FUNCTION {function NULL DEFAULT} ] 암호매개변수를하루미만으로설정하려는경우 : 1시간 : PASSWORD_LOCK_TIME = 1/24 10분 : PASSWORD_LOCK_TIME = 10/1400 5분 : PASSWORD_LOCK_TIME = 5/1440 Oracle9i Database Administration Fundamentals I 14-17

472 Oracle Enterprise Manager Oracle Enterprise Manager를사용하여프로파일변경 OEM Console에서다음작업을수행합니다. 1. Databases > Security > Profiles로이동합니다. 2. 마우스오른쪽버튼을눌러 Create를선택합니다. 3. 프로파일을선택합니다. 4. 마우스오른쪽버튼을눌러 View/Edit Details를선택합니다. 5. Password 페이지를선택하고프로파일을변경합니다. 6. Apply를누릅니다. Oracle9i Database Administration Fundamentals I 14-18

473 : DROP PROFILE ñ. DEFAULT ñ. CASCADE ò ñ. DROP PROFILE developer_prof; DROP PROFILE developer_prof CASCADE; Copyright Oracle Corporation, All rights reserved. : DROP PROFILE 명령을사용하여프로파일을삭제합니다. DROP PROFILE profile [CASCADE] 설명 : profile: 삭제할프로파일이름입니다. CASCADE: 프로파일을할당한사용자로부터프로파일을취소합니다. (Oracle 서버는이러한사용자에게 DEFAULT 프로파일을자동으로할당하며이옵션을지정하여사용자에게현재할당되어있는프로파일을삭제합니다.) 지침 DEFAULT 프로파일은삭제할수없습니다. 프로파일삭제시변경사항은나중에생성하는세션에만적용되고현재세션에는적용되지않습니다. Oracle9i Database Administration Fundamentals I 14-19

474 Oracle Enterprise Manager를사용하여프로파일삭제 OEM Console에서다음작업을수행합니다. 1. Databases > Security > Profiles로이동합니다. 2. 프로파일을선택합니다. 3. 마우스오른쪽버튼을눌러 Remove를선택합니다. 4. Yes를선택하여삭제를확인합니다. Oracle9i Database Administration Fundamentals I 14-20

475 , ñ. CREATE PROFILE ñ ñ. ñ ñ. RESOURCE_LIMIT ALTER SYSTEM Copyright Oracle Corporation, All rights reserved. 다음단계를사용하여프로파일로자원의사용을제어합니다. 1. CREATE PROFILE 명령으로프로파일을생성하여자원및암호제한을결정합니다. 2. CREATE USER 또는 ALTER USER 명령을사용하여프로파일을할당합니다. 3. ALTER SYSTEM 명령을사용하거나초기화매개변수파일을편집한다음인스턴스를정지하고재시작하여자원제한을시행합니다. 이러한단계는다음부분에서상세하게설명합니다. 주 : Oracle 암호관리를활성화하기위해자원제한을시행할필요는없습니다. Oracle9i Database Administration Fundamentals I 14-21

476 RESOURCE_LIMIT TRUE ALTER SYSTEM ALTER SYSTEM SET RESOURCE_LIMIT=TRUE; Copyright Oracle Corporation, All rights reserved. RESOURCE_LIMIT 초기화매개변수를변경하거나 ALTER SYSTEM 명령을사용하여자원제한시행을활성화또는비활성화합니다. RESOURCE_LIMIT 초기화매개변수 자원제한시행을활성화또는비활성화하려면초기화파일에서이매개변수를변경한다음인스턴스를재시작합니다. TRUE 값은시행을활성화합니다. FALSE 값은시행을비활성화합니다. ( 기본값 ) 이매개변수를사용하여강제시행구조를활성화합니다. Use this parameter to enable enforcement architecture. ALTER SYSTEM 명령 인스턴스에대한자원제한시행을활성화또는비활성화하려면 ALTER SYSTEM 명령을사용합니다. ALTER SYSTEM 명령을사용하여지정한설정은다시변경하거나해당데이터베이스를종료할때까지유효합니다. 데이터베이스를종료할수없을경우에는이명령을사용하여시행을활성화또는비활성화합니다. Oracle9i Database Administration Fundamentals I 14-22

477 CPU_PER_SESSION SESSIONS_PER_USER CONNECT_TIME IDLE_TIME LOGICAL_READS_PER _SESSION PRIVATE_SGA 1/100 ñ CPU þ ú ñ ñ ( ) ñ SGA ( ) Copyright Oracle Corporation, All rights reserved. 지침프로파일제한은세션레벨, 호출레벨또는두레벨모두에서시행할수있는데세션레벨제한은연결할때마다시행합니다. 세션레벨제한초과 다음과같은오류메시지를반환합니다. ORA-02391: exceeded simultaneous SESSION_PER_USER limit Oracle 서버는사용자연결을해제합니다. 지침 IDLE_TIME은서버프로세스만계산하고응용프로그램작업은고려하지않으며장시간실행하는질의및다른작업은 IDLE_TIME에영향을주지않습니다. LOGICAL_READS_PER_SESSION 은메모리및디스크에서의전체읽기횟수를제한하며 I/O 집중명령문이메모리를과도하게사용하거나디스크를독점하여사용할수없도록합니다. PRIVATE_SGA는공유서버구조를실행할때만적용하며 MB 또는 KB로지정할수있습니다. 주 : 공유서버구조에대한자세한내용은 Oracle9i Database Administration Fundamentals II ( 한글판 ) 과정에서설명합니다. Oracle9i Database Administration Fundamentals I 14-23

478 CPU_PER_CALL LOGICAL_READS_PER _CALL 1/100 ñ ò CPU ò Copyright Oracle Corporation, All rights reserved. 호출레벨제한은 SQL 문실행중에호출할때마다시행합니다. 호출레벨제한초과 명령문처리를중지합니다. 명령문을롤백합니다. 이전명령문은모두그대로남아있습니다. 사용자의세션은연결한상태로남아있습니다. Oracle9i Database Administration Fundamentals I 14-24

479 : CREATE PROFILE developer_prof LIMIT SESSIONS_PER_USER 2 CPU_PER_SESSION IDLE_TIME 60 CONNECT_TIME 480; Copyright Oracle Corporation, All rights reserved. : 다음 CREATE PROFILE 명령을사용하여프로파일을생성합니다. CREATE PROFILE profile LIMIT [SESSIONS_PER_USER max_value] [CPU_PER_SESSION max_value] [CPU_PER_CALL max_value] [CONNECT_TIME max_value] [IDLE_TIME max_value] [LOGICAL_READS_PER_SESSION max_value] [LOGICAL_READS_PER_CALL max_value] [COMPOSITE_LIMIT max_value] [PRIVATE_SGA max_bytes] 설명 : profile: 프로파일이름입니다. max_value: 정수로 UNLIMITED 또는 DEFAULT입니다. max_bytes: 선택적으로뒤에 KB 또는 MB가붙는정수로 UNLIMITED 또는 DEFAULT입니다. Oracle9i Database Administration Fundamentals I 14-25

480 : ( ) UNLIMITED: 이프로파일을할당받은사용자는이자원을무제한사용할수있음을나타냅니다. DEFAULT: DEFAULT 프로파일에서지정한대로이프로파일은이자원에대해제한함을나타냅니다. COMPOSITE_LIMIT: 서비스단위로표현한세션에대해전체자원비용을제한하며 Oracle은다음가중합계로서자원비용을계산합니다. CPU_PER_SESSION CONNECT_TIME LOGICAL_READS_PER_SESSION PRIVATE_SGA RESOURCE_COST 데이터딕셔너리뷰는다른자원에할당한자원제한을제공합니다. 주 : 각세션자원ALTER RESOURCE COST 명령의가중치지정방법은 Oracle9i SQL Reference 문서를참조하십시오. Oracle9i Database Administration Fundamentals I 14-26

481 : Oracle Enterprise Manager를사용하여자원제한설정 OEM Console에서다음작업을수행합니다. Security > Profiles로이동합니다. 마우스오른쪽버튼을눌러 Create를선택합니다. General 페이지에서자원매개변수를입력합니다. Create를누릅니다. Oracle9i Database Administration Fundamentals I 14-27

482 Database Resource Manager Oracle ø Database Resource Manager ò DBMS_RESOURCE_MANAGER ADMINISTER_RESOURCE_MANAGER Copyright Oracle Corporation, All rights reserved. Database Resource Manager Database Resource Manager의용도는 Oracle 서버에더강력한자원관리결정권한을제공하여비효율적인운영체제관리로인해발생되는문제를해결하도록하는것입니다. Database Resource Manager의요소자원소비자그룹 : 자원처리요구사항에따라그룹화된사용자그룹또는세션입니다. 자원계획 : 자원이자원소비자그룹에할당되는방법을지정하는지시어를포함합니다. 자원할당방식 : Database Resource Manager가특정자원을할당할때사용합니다. 자원계획지시어 : 관리자가자원소비자그룹을특정계획과연결하고자원소비자그룹간에자원을할당하는데사용합니다. Database Resource Manager 관리 Database Resource Manager(DBMS_RESOURCE_MANAGER) 를관리하려면 ADMINISTER_RESOURCE_MANAGER 시스템권한이있어야합니다. 일반적으로 DBA는 DBA 롤의일부로 ADMIN 옵션과함께이권한을갖습니다. Oracle9i Database Administration Fundamentals I 14-28

483 Database Resource Manager ñ. òþ ó ñ Copyright Oracle Corporation, All rights reserved. Oracle9i Database Administration Fundamentals I 14-29

484 Database Resource Manager Oracle Enterprise Manager를사용하여 Resource Manager 설정 OEM Console에서다음작업을수행합니다. Databases > Instance로이동합니다. Resource Consumer Groups를선택하여생성하거나수정합니다. Resource Plans를선택하여생성하거나수정합니다. Resource Plan Schedule을선택하여생성하거나수정합니다. Oracle9i Database Administration Fundamentals I 14-30

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

62

62 2 instance database physical storage 2 1 62 63 tablespace datafiles 2 2 64 1 2 logical view control files datafiles redo log files 65 2 3 9i OMF Oracle Managed Files, OMF 9i 9i / / OMF 9i 66 8 1MB 8 10MB

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

Tablespace On-Offline 테이블스페이스 온라인/오프라인

Tablespace On-Offline 테이블스페이스 온라인/오프라인 2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration

More information

목 차

목      차 Oracle 9i Admim 1. Oracle RDBMS 1.1 (System Global Area:SGA) 1.1.1 (Shared Pool) 1.1.2 (Database Buffer Cache) 1.1.3 (Redo Log Buffer) 1.1.4 Java Pool Large Pool 1.2 Program Global Area (PGA) 1.3 Oracle

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

세미나(장애와복구-수강생용).ppt

세미나(장애와복구-수강생용).ppt DB PLAN Consultant jina6678@yahoo.co.kr 011-864-1858 - - 1. 2. DB 3. - 4. - 5. 6. 1 INSTANCE MMAN RECO RFS MRP ORBn RBAL MMON Dnnn Snnn Data Buffer Cache SGA Stream Pool Shared pool Large Pool PGA Log

More information

Oracle Database 10g: Self-Managing Database DB TSC

Oracle Database 10g: Self-Managing Database DB TSC Oracle Database 10g: Self-Managing Database DB TSC Agenda Overview System Resource Application & SQL Storage Space Backup & Recovery ½ Cost ? 6% 12 % 6% 6% 55% : IOUG 2001 DBA Survey ? 6% & 12 % 6% 6%

More information

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA Spotlight on Oracle V10.x DELL SOFTWARE KOREA 2016-11-15 Spotlight on Oracle 목차 1. 시스템요구사항... 2 1.1 지원하는데이터베이스...2 1.2 사용자설치홖경...2 2. 프로그램설치... 3 2.1 설치프로그램실행...3 2.2 라이선스사용관련내용확인및사용동의...3 2.3 프로그램설치경로지정...4

More information

vRealize Automation용 VMware Remote Console - VMware

vRealize Automation용 VMware Remote Console - VMware vrealize Automation 용 VMware Remote Console VMware Remote Console 9.0 이문서는새버전으로교체되기전까지나열된각제품버전및모든이후버전을지원합니다. 이문서에대한최신버전을확인하려면 http://www.vmware.com/kr/support/pubs 를참조하십시오. KO-002230-00 vrealize Automation

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

Cloud Friendly System Architecture

Cloud Friendly System Architecture -Service Clients Administrator 1. -Service 구성도 : ( 좌측참고 ) LB(LoadBlancer) 2. -Service 개요 ucloud Virtual Router F/W Monitoring 개념 특징 적용가능분야 Server, WAS, DB 로구성되어 web service 를클라우드환경에서제공하기위한 service architecture

More information

OCP PL/SQL

OCP PL/SQL 5 장 managing Database Storage Structures 2 1-2 1. 오라클스토리지구조 오라클 데이터베이스 테이블스페이스 세그먼트 익스텐트 테이블스페이스 세그먼트 익스텐트 세그먼트 익스텐트 테이블스페이스 익스텐트 세그먼트 익스텐트 오브젝트 세그먼트테이블인덱스파티션파티션인덱스 뷰시퀀스동의어 시스템 데이터블록 운영체제블록 디스크 데이터파일 SQL>

More information

IRISCard Anywhere 5

IRISCard Anywhere 5 이 빠른 사용자 가이드는 IRISCard Anywhere 5 및 IRISCard Corporate 5 스캐너의 설치와 시작을 도와 드립니다. 이 스캐너와 함께 제공되는 소프트웨어는: - Cardiris Pro 5 및 Cardiris Corporate 5 for CRM (Windows 용) - Cardiris Pro 4 (Mac OS 용) Cardiris 의

More information

Chapter 1

Chapter 1 3 Oracle 설치 Objectives Download Oracle 11g Release 2 Install Oracle 11g Release 2 Download Oracle SQL Developer 4.0.3 Install Oracle SQL Developer 4.0.3 Create a database connection 2 Download Oracle 11g

More information

ThinkVantage Fingerprint Software

ThinkVantage Fingerprint Software ThinkVantage 지문 인식 소프트웨어 First Edition (August 2005) Copyright Lenovo 2005. Portions Copyright International Business Machines Corporation 2005. All rights reserved. U.S. GOVERNMENT USERS RESTRICTED RIGHTS:

More information

슬라이드 제목 없음

슬라이드 제목 없음 MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS 로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS 보다가격이매우저렴한편이고,

More information

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault 사용자매뉴얼 JetFlash Vault 100 ( 버전 1.0) 1 목차 1. 시스템요구사항... 3 2. 암호및힌트설정 ( 윈도우 )... 3 3. JetFlash Vault 시작하기 ( 윈도우 )... 7 4. JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault 찾아보기... 10 JetFlash

More information

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아 LG U+ SMS/MMS 통합클라이언트 LG U+ SMS/MMS Client Simple Install Manual LG U+ SMS/MMS 통합클라이언트 - 1 - 간단설치매뉴얼 1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml

More information

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper Windows Netra Blade X3-2B( Sun Netra X6270 M3 Blade) : E37790 01 2012 9 Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs,

More information

MF3010 MF Driver Installation Guide

MF3010 MF Driver Installation Guide 한국어 MF 드라이버설치설명서 사용자소프트웨어 CD-ROM................................................ 1.................................................................... 1..............................................................................

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

MySQL-.. 1

MySQL-.. 1 MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition

More information

Copyright 0, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT RIGHTS Programs, software, databases, and related

Copyright 0, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT RIGHTS Programs, software, databases, and related Virtual Machine Sun Fire X4800 M : E4570 0 8 Copyright 0, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation

More information

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO Windows 7 설치및 PCIE RAID 설정정보 DK173 초판 11월 2016 A. Windows 7 및 USB 드라이버설치 칩셋사양에따라 Windows 7 설치중에 USB 키보드 / 마우스를사용하려면시스템에서 USB 드라이버를사전로드해야합니다. 이절에서는 USB 드라이버사전로드방법과 Windows 7 설치방법에대해서설명합니다. 방법 1: SATA ODD

More information

MF5900 Series MF Driver Installation Guide

MF5900 Series MF Driver Installation Guide 한국어 MF 드라이버설치설명서 사용자소프트웨어 CD-ROM................................................ 1.................................................................... 1..............................................................................

More information

Windows Server 2012

Windows Server  2012 Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB

More information

Contents Data Mart 1. 개요 실습방향 테스트위한사전설정 본격실습시작 ) 데이터파일 dd 명령어로 백업수행및유실시키기 ) 장애복구수행 결론...7 페이지 2 / 7

Contents Data Mart 1. 개요 실습방향 테스트위한사전설정 본격실습시작 ) 데이터파일 dd 명령어로 백업수행및유실시키기 ) 장애복구수행 결론...7 페이지 2 / 7 ( 참 ) 본상단부머리말에있는 Data Mart 는본문서작성자의블로그이름입니다 dd 명령어를 이용한백업수행 최소개념이해 본문서의 pdf 문서는다음 URL 참조 http://mindata.tistory.com/55 Version 변경일자 ( 작성일자 ) 변경자 ( 작성자 ) 주요내용 1 2013.4.3 김민기 최초작성 2 3 페이지 1 / 7 Contents

More information

MF Driver Installation Guide

MF Driver Installation Guide Korean MF 드라이버 설치설명서 사용자 소프트웨어 CD-ROM... 드라이버 및 소프트웨어 정보...1 지원되는 운영 체제...1 MF 드라이버 및 MF Toolbox 설치... [쉬운 설치]를 사용한 설치...2 [사용자 정의 설치]를 사용한 설치...10 USB 케이블 연결(USB를 이용해 연결하는 경우만)...20 설치 결과 확인...21 온라인

More information

Jerry Held

Jerry Held DB / TSC Oracle Database 10g (Self-Managing Database) (Common Infrastructure) (Automatic Workload Repository) (Server-generated Alerts) (Automated Maintenance Tasks) (Advisory Framework) (ADDM) (Self-Managing

More information

Install stm32cubemx and st-link utility

Install stm32cubemx and st-link utility STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7

More information

System Recovery 사용자 매뉴얼

System Recovery 사용자 매뉴얼 Samsung OS Recovery Solution 을이용하여간편하게 MagicInfo 의네트워크를설정하고시스템을백업및복원할수있습니다. 시스템시작시리모컨의 - 버튼이나키보드의 F3 키를연속해서누르면복구모드로진입한후 Samsung OS Recovery Solution 이실행됩니다. Samsung OS Recovery Solution 은키보드와리모컨을사용하여조작할수있습니다.

More information

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P Duplicator 는기본적으로원본하드디스크를빠르게복사본하드디스크에복사하는기능을하는것입니다.. 복사본 하드디스크가원본하드디스크와똑같게하는것을목적으로하는것이어서저용량에서고용량으로복사시몇 가지문제점이발생할수있습니다. 하드디스크는사용하려면, 디스크초기화를한후에포맷을해야사용가능합니다. Windows PC는 MBR과 GPT 2 개중에 1개로초기화합니다. -Windows

More information

Microsoft Word - CNVZNGWAIYSE.docx

Microsoft Word - CNVZNGWAIYSE.docx Print Date: 2010-12-12 Oracle Memory DATE : 2010-12-12 06:07 Writer : 박상수 License : 개인자료 CALMMASS.TISTORY.COM - 본문서는모든사람에게열람및수정모두가능합니다 - 버전 수정일 작성자 변경내역 1.0 2010/12/04 박상수 Oracle Memory(PGA, SGA) 개념및관리

More information

오라클 데이터베이스 10g 핵심 요약 노트

오라클 데이터베이스 10g 핵심 요약 노트 1 10g 10g SYSAUX 10g 22 Oracle Database 10g, 10g. 10g. (Grid), 10g.. 10g SYSAUX (ASM, Automatic Storage Management) 10g 10g. g. (DBA).,., 1).,..? 10g,.. (Larry Ellison).. (Leverage Components), (ASM) (

More information

SAS9.2_SAS_Enterprise_Miner_install_guide_single_user_v2

SAS9.2_SAS_Enterprise_Miner_install_guide_single_user_v2 [Win] SAS Enterprise Miner6.1 설치가이드 - Single User 작성자 : 기술지원팀 (SAS Korea) 단계 1) 설치전주의 / 확인사항 2) 사용자생성및권한할당 3) SAS Software Deport 생성 4) SAS Enterprise Miner 설치 (SAS Foundation + Enterprise Miner 6.1) 5)

More information

View Licenses and Services (customer)

View Licenses and Services (customer) 빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

More information

The Self-Managing Database : Automatic Health Monitoring and Alerting

The Self-Managing Database : Automatic Health Monitoring and Alerting The Self-Managing Database : Automatic Health Monitoring and Alerting Agenda Oracle 10g Enterpirse Manager Oracle 10g 3 rd Party PL/SQL API Summary (Self-Managing Database) ? 6% 6% 12% 55% 6% Source: IOUG

More information

Microsoft Word - PLC제어응용-2차시.doc

Microsoft Word - PLC제어응용-2차시.doc 과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,

More information

最即時的Sybase ASE Server資料庫診斷工具

最即時的Sybase ASE Server資料庫診斷工具 TOAD 9.5 Toad Oracle 料 SQL 料 行 理 SQLprofile Quest Software 了 Oracle -Toad Tools of Oracle Application Developers Toad 了 DBA DBA 理 易 度 Toad 料 SQL PL/SQL Toad Oracle PL/SQL Toad Schema Browser Schema Browser

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드] MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS보다가격이매우저렴한편이고,

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 데이터베이스및설계 Chap 1. 데이터베이스환경 (#2/2) 2013.03.04. 오병우 컴퓨터공학과 Database 용어 " 데이타베이스 용어의기원 1963.6 제 1 차 SDC 심포지움 컴퓨터중심의데이타베이스개발과관리 Development and Management of a Computer-centered Data Base 자기테이프장치에저장된데이터파일을의미

More information

슬라이드 1

슬라이드 1 Tadpole for DB 1. 도구개요 2. 설치및실행 4. 활용예제 1. 도구개요 도구명 소개 Tadpole for DB Tools (sites.google.com/site/tadpolefordb/) 웹기반의데이터베이스를관리하는도구 Database 스키마및데이터관리 라이선스 LGPL (Lesser General Public License) 특징 주요기능

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - 10Àå.ppt 10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어

More information

메뉴얼41페이지-2

메뉴얼41페이지-2 데이터 기반 맞춤형 성장관리 솔루션 스마트빌 플러스 은행계좌등록 은행계좌를 조회하여 등록합니다. 신용카드등록 신용카드를 조회하여 등록합니다. 금융정보 자동수집을 위하여 인증서이름, 아이디, 비밀번호를 등록합니다. 통합 자동 수집 금융정보 통합 자동수집을 실행합니다 은행계좌등록 은행계좌를 조회하여 등록합니다. 신용카드등록 신용카드를 조회하여

More information

Simplify your Job Automatic Storage Management DB TSC

Simplify your Job Automatic Storage Management DB TSC Simplify your Job Automatic Storage Management DB TSC 1. DBA Challenges 2. ASM Disk group 3. Mirroring/Striping/Rebalancing 4. Traditional vs. ASM 5. ASM administration 6. ASM Summary Capacity in Terabytes

More information

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을 IDIS Mobile ios 사용설명서 Powered by 사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다.

More information

User Guide

User Guide HP ThinUpdate 관리자 설명서 Copyright 2016 HP Development Company, L.P. Windows는 미국 및/또는 기타 국가에서 Microsoft Corporation의 등록 상표 또는 상표입 니다. 기밀 컴퓨터 소프트웨어. 소유, 사용 또는 복사 에 필요한 유효한 사용권을 HP로부터 취득했 습니다. FAR 12.211 및

More information

PowerPoint Presentation

PowerPoint Presentation Toad for Oracle 추가옵션 - DB Admin Module - Quest Software Korea 2017. 토드커뮤니티 : www.toad.co.kr 토드 (Toad) 확장프로모션 추가비용없이토드확장모듈 (DB Admin Module) 제공 개발자, DBA, 데이터추출업무등모든사용자업무생산성향상 오라클데이터베이스활용능력향상 그동안사용하지못했던토드의고급유틸리티활용

More information

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리 ArcGIS for Desktop 10.4 Single Use 설치가이드 Software: ArcGIS for Desktop 10.4 Platforms: Windows 10, 8.1, 7, Server 2012, Server 2008 ArcGIS for Desktop 10.4 시스템 요구사항 1. 지원 플랫폼 운영체제 최소 OS 버전 최대 OS 버전 Windows

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

단계

단계 본문서에서는 Tibero RDBMS 에서제공하는 Oracle DB Link 를위한 gateway 설치및설정방법과 Oracle DB Link 사용법을소개한다. Contents 1. TIBERO TO ORACLE DB LINK 개요... 3 1.1. GATEWAY 란... 3 1.2. ORACLE GATEWAY... 3 1.3. GATEWAY 디렉터리구조...

More information

NTD36HD Manual

NTD36HD Manual Upnp 사용 D7 은 UPNP 를지원하여 D7 의네크워크에연결된 UPNP 기기에별다른설정없이연결하여, 유무선으로네트워크상의연결된 UPNP 기기의콘텐츠를재생할수있습니다. TV 화면의 브라우저, UPNP 를선택하면연결가능한 UPNP 기기가표시됩니다. 주의 - UPNP 기능사용시연결된 UPNP 기기의성능에따라서재생되지않는콘텐츠가있을수있습니다. NFS 사용 D7

More information

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat Sun Server X3-2( Sun Fire X4170 M3) Oracle Solaris : E35482 01 2012 9 Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including

More information

untitled

untitled Oracle DBMS 로그인의접근제어우회 취약점분석 2006. 2. 9 인터넷침해사고대응지원센터 (KISC) 본보고서의전부나일부를인용시반드시 [ 자료 : 한국정보보호진흥원 (KISA)] 룰명시하여주시기바랍니다. 개요 o 2005년이후 Oracle Critical Patch Update(CPU) 는 Oracle사제품대상으로다수의보안패치및보안패치와관련된일반패치를발표하는주요수단임

More information

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

PathEye 공식 블로그 다운로드 받으세요!!   지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye Mobile Ver. 0.71b 2009. 3. 17 By PathEye 공식 블로그 다운로드 받으세요!! http://blog.patheye.com 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye 설치 1/3 최종 배포 버전을 다 운로드 받습니다. 다운로드된 파일은 CAB 파일입니다. CAB 파일에는

More information

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

server name>/arcgis/rest/services  server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지 ArcGIS for Server (Windows) 설치가이드 ArcGIS 10.2 for Server 설치변경사항 1 설치 간편해진설치 -.Net Framework나 Java Runtime 요구하지않음 - 웹서버 (IIS, WebSphere ) 와별도로분리되어순수하게웹서비스기반의 GIS 서버역할 - ArcGIS Server 계정을이용한서비스운영. 더이상 SOM,

More information

문서 제목

문서 제목 1 : Oracle9i JRE(Java Runtime Environment) OUI(Oracle Universal Installer) OS 25MB Memory 512 MB RAM # grep MemTotal /proc/meminfo Swap Space RAM 2 400 MB # /sbin/swapon s CD-ROM Drive Disk Space Temporary

More information

Microsoft PowerPoint - ch07.ppt

Microsoft PowerPoint - ch07.ppt chapter 07. 시스코라우터기본동작 한빛미디어 -1- 학습목표 시스코라우터외적, 내적구성요소 시스코라우터부팅단계 시스코라우터명령어모드 한빛미디어 -2- 시스코라우터구성요소 라우터외부구성요소 (1) [ 그림 ] 2600 라우터전면도 인터페이스카드 전원부 LED 라우터조건 한빛미디어 -3- 시스코라우터구성요소 라우터외부구성요소 (2) [ 그림 ] VTY 를이용한라우터접속

More information

Oracle Regular Expression

Oracle Regular Expression Installing Oracle Cloud Control 12c on Oracle Linux 6.1 SEUNGCHEOL HAN 설치에앞서 현재설치과정은 Oracle Linux Enterprise 6.1 (64bit) 에서진행됩니다. Oracle Cloud Control 12c 설치를위해 Repository DB 로사용할 Oracle 11g R2 (11.2.0.3)

More information

歯815설치1.PDF

歯815설치1.PDF 1 Memory Swap Space Disk Drives 128 MB (JAVA VM 256MB ) RAM 3 (1GB ) 2 22 2GB 1 4 Oracle Software, 3 DB CD-ROM Drive LINUX CD-ROM Oracle8i Enterprise Edition Oracle8i Client Programmer/2000 Minimal 693MB

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Autodesk Software 개인용 ( 학생, 교사 ) 다운로드가이드 진동환 (donghwan.jin@autodesk.com) Manager Autodesk Education Program - Korea Autodesk Education Expert 프로그램 www.autodesk.com/educationexperts 교육전문가프로그램 글로벌한네트워크 /

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2. 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2. 3Rabbitz Book 애플리케이션파일다운로드하여압축파일을풀고복사합니다. 3. 3Rabbitz Book 실행합니다.

More information

(Veritas\231 System Recovery 16 Monitor Readme)

(Veritas\231 System Recovery 16 Monitor Readme) Veritas System Recovery 16 Monitor Readme 이 Readme 정보 Veritas System Recovery 16 Monitor 에서더이상지원되지않는기능 Veritas System Recovery 16 Monitor 시스템요구사항 호스트시스템의필수조건 클라이언트시스템의필수조건 Veritas System Recovery 16 Monitor

More information

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) 8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) - DDL(Data Definition Language) : show, create, drop

More information

ICAS CADWorx SPLM License 평가판설치가이드

ICAS CADWorx SPLM License 평가판설치가이드 ICAS CADWorx SPLM License 평가판설치가이드 CADWorx SPLM License 평가판설치가이드 설치권장사항 Operating System Compatibility ( 반드시 AutoCAD 가설치되어있어야합니다.) 추천시스템 3.0 GHz Intel Pentium IV or greater Windows XP Professional or later

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 (https://www.kisarbl.or.kr) < 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 Ⅰ. 개요 실시간스팸차단리스트 (RBL) 는메일서버를운영하는누구나손쉽게효과적으로스팸수신을차단하는데이용할수있도록한국인터넷진흥원 (KISA)

More information

Cisco FirePOWER 호환성 가이드

Cisco FirePOWER 호환성 가이드 Cisco 호환성가이드 Cisco 호환성 이문서에서는 Cisco 소프트웨어와하드웨어의호환성및요건을다룹니다. 추가 릴리스또는제품정보는다음을참조하십시오. 설명서로드맵 : http://www.cisco.com/c/en/us/td/docs/security/firesight/ roadmap/firesight-roadmap.html Cisco ASA 호환성가이드 : http://www.cisco.com/c/en/us/td/docs/security/asa/compatibility/

More information

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow

More information

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1 디지털 사진 프린터 P-S100 프린터 드라이버 설치 가이드 사용하는 컴퓨터에 따라 제공된 프린터 드라이버를 설치합니다. 설치 절차 에 대한 자세한 내용은 CD-ROM의 Readme 파일을 참조하십시오. 작동 환경 Windows 호환 모델: IBM PC/AT 및 호환품 운영 체제: Windows 98 SE/Me/2000/XP (Windows 98 SE/Me/2000/XP

More information

목 차 1. 드라이버 설치...3 1.1 설치환경...3 1.2 드라이버 설치 시 주의사항...3 1.3 USB 드라이버 파일...3 1.4 Windows XP에서 설치...4 1.5 Windows Vista / Windows 7에서 설치...7 1.6 Windows

목 차 1. 드라이버 설치...3 1.1 설치환경...3 1.2 드라이버 설치 시 주의사항...3 1.3 USB 드라이버 파일...3 1.4 Windows XP에서 설치...4 1.5 Windows Vista / Windows 7에서 설치...7 1.6 Windows 삼성SDS 하이패스 USB 드라이버 설치 매뉴얼 삼성SDS(주) 목 차 1. 드라이버 설치...3 1.1 설치환경...3 1.2 드라이버 설치 시 주의사항...3 1.3 USB 드라이버 파일...3 1.4 Windows XP에서 설치...4 1.5 Windows Vista / Windows 7에서 설치...7 1.6 Windows 8에서 설치...9 2. 드라이버

More information

Studuino소프트웨어 설치

Studuino소프트웨어 설치 Studuino 프로그래밍환경 Studuino 소프트웨어설치 본자료는 Studuino 프로그래밍환경설치안내서입니다. Studuino 프로그래밍 환경의갱신에따라추가 / 수정될수있습니다. 목차 1. 소개... 1 2. Windows... 2 2.1. 프로그래밍환경설치... 2 2.1.1. 웹설치버전설치방법... 2 2.2. Studuino 프로그래밍환경실행...

More information

RHEV 2.2 인증서 만료 확인 및 갱신

RHEV 2.2 인증서 만료 확인 및 갱신 2018/09/28 03:56 1/2 목차... 1 인증서 확인... 1 인증서 종류와 확인... 4 RHEVM CA... 5 FQDN 개인 인증서... 5 레드햇 인증서 - 코드 서명 인증서... 6 호스트 인증... 7 참고사항... 8 관련링크... 8 AllThatLinux! - http://allthatlinux.com/dokuwiki/ rhev_2.2_

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

PowerPoint Presentation

PowerPoint Presentation Server I/O utilization System I/O utilization V$FILESTAT V$DATAFILE Data files Statspack Performance tools TABLESPACE FILE_NAME PHYRDS PHYBLKRD READTIM PHYWRTS PHYBLKWRT WRITETIM ------------- -----------------------

More information

tiawPlot ac 사용방법

tiawPlot ac 사용방법 tiawplot ac 매뉴얼 BORISOFT www.borisoft.co.kr park.ji@borisoft.co.kr HP : 00-370-077 Chapter 프로그램설치. 프로그램설치 3 2 Chapter tiawplot ac 사용하기.tiawPlot ac 소개 2.tiawPlot ac 실행하기 3. 도면파일등록및삭제 4. 출력장치설정 5. 출력옵션설정

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

CL5 CL3 CL1 QL5 QL1 V4.5 Supplementary Manual

CL5 CL3 CL1 QL5 QL1 V4.5 Supplementary Manual CL/QL 시리즈 이보충설명서에서는주로 CL5/CL3/CL1 및 QL5/QL1 펌웨어 V4.5 에서추가또는변경된기능에관해설명합니다. CL5/CL3/CL1 및 QL5/QL1 V4 사용설명서및참조설명서와함께사용하십시오. CL/QL Editor 이보충설명서에서는주로 CL/QL Editor V4.5 에서추가또는변경된기능에관해설명합니다. 참고 이보충설명서에수록된설명은

More information

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터 Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터를사용자에게전송하게되며 Parsing 단계에서실행계획이생성된다. Bind 변수를사용하는 SQL

More information

Microsoft PowerPoint - 권장 사양

Microsoft PowerPoint - 권장 사양 Autodesk 제품컴퓨터사양 PRONETSOFT.CO 박경현 1 AutoCAD 시스템사양 시스템요구사양 32 비트 AutoCAD 2009 를위한시스템요구사항 Intel Pentium 4 프로세서 2.2GHz 이상, 또는 Intel 또는 AMD 듀얼 코어프로세서 16GH 1.6GHz 이상 Microsoft Windows Vista, Windows XP Home

More information

ODS-FM1

ODS-FM1 OPTICAL DISC ARCHIVE FILE MANAGER ODS-FM1 INSTALLATION GUIDE [Korean] 1st Edition (Revised 4) 상표 Microsoft, Windows 및 Internet Explorer는 미국 및 / 또는 다른 국가에서 Microsoft Corporation 의 등록 상표입 Intel 및 Intel Core

More information

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : ios 3.0 이상 - 콘텐츠형식 : MP4 (H264,AAC ), MP3 * 디바이스별해상도,

More information

1 요구사항및특징 1) Oracle 9i Database 설치를위한시스템요구사항 요구사항 Operating System 세부내역 Windows NT4.0 Service Pack5 이상, Windows 2000 Service Pack1 이상, Windows XP Prof

1 요구사항및특징 1) Oracle 9i Database 설치를위한시스템요구사항 요구사항 Operating System 세부내역 Windows NT4.0 Service Pack5 이상, Windows 2000 Service Pack1 이상, Windows XP Prof Oracle 9i Database 설치가이드 1-1 설치가이드 1 요구사항및특징 1) Oracle 9i Database 설치를위한시스템요구사항 요구사항 Operating System 세부내역 Windows NT4.0 Service Pack5 이상, Windows 2000 Service Pack1 이상, Windows XP Professional Processor

More information

Document Server Information Items Description Test Date 2011 / 05 / 31 CPU Intel(R) Xeon(R) CPU 2.40GHz X 8 Main Memory 1GB O/S version OEL 5.

Document Server Information Items Description Test Date 2011 / 05 / 31 CPU Intel(R) Xeon(R) CPU 2.40GHz X 8 Main Memory 1GB O/S version OEL 5. 11g 에서향상된 ASMCMD-CP 기능 (Oracle 11g R1 11.1.0.7) Author: Hyun-Ho, Jung Job: Oracle DBA Site: http://www.commit.co.kr Email: admin@commit.co.kr cleanto@naver.com Creation Date: 2011-05-31 Document Server

More information

<3035303432365FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

<3035303432365FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770> 개 요 홈페이지 해킹 현황 및 사례 홈페이지 개발시 보안 취약점 및 대책 주요 애플리케이션 보안 대책 결 론 참고자료 [부록1] 개발 언어별 로그인 인증 프로세스 예제 [부록2] 대규모 홈페이지 변조 예방을 위한 권고(안) [부록3] 개인정보의 기술적 관리적 보호조치 기준(안) [부록4] 웹 보안관련 주요 사이트 리스트 7000 6,478 6000 5000

More information

APOGEE Insight_KR_Base_3P11

APOGEE Insight_KR_Base_3P11 Technical Specification Sheet Document No. 149-332P25 September, 2010 Insight 3.11 Base Workstation 그림 1. Insight Base 메인메뉴 Insight Base Insight Insight Base, Insight Base Insight Base Insight Windows

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

Getting Started

Getting Started b Compaq Notebook Series Ñ è Ý : 266551-AD1 2002 4,, Compaq.. 2002 Compaq Information Technologies Group, L.P. Compaq, Compaq, Evo Presario Compaq Information Technologies Group, L.P.. Microsoft Windows

More information

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

More information

SAS9.2_SAS_Enterprise_Miner_for_Desktop_install_guide

SAS9.2_SAS_Enterprise_Miner_for_Desktop_install_guide [SAS92] SAS Enterprise Miner for Desktop 설치가이드 작성자 : 기술지원팀 (SAS Korea) 목차 가. 설치시주의사항나. 사용자등록및로컬보안정책지정 1) 사용자등록 2) 로컬보안정책적용다. JDK설치라. SAS Enterprise Miner for Desktop 설치마. SAS Eminer for Desktop 구성가이드정보및서비스확인

More information