데이터베이스 생성 by cuiliqing

VIEWS: 102 PAGES: 10

									데이터베이스 생성과 데이터 딕셔너리, 동적 성능 뷰,
제어파일

1. 데이터베이스 관리 및 구성

데이터베이스 시스템 구성 및 구현의 첫 단계는 데이터베이스 계획을 수립하는 것이다.




데이터베이스를 생성하려면 SYSDBA 권한이 필요하다. 이 권한은 운영 체제 인증 또는 암호 파일
인증을 통해 부여된다. 데이터베이스를 생성하기 전에 SGA, Oracle 실행 파일 및 프로세스 메모리
와 온라인 리두 로그 파일, 제어파일, 데이터 파일 등을 포함한 데이터베이스를 저장할 디스크 공
간이 충분한지 확인해야 한다.


1-1 데이터베이스 구성 준비 단계


데이터베이스를 생성하기 전에 암호 파일과 운영체제에 대한 사전 준비가 필요하다.


암호 파일 인증을 사용하기 위해 Oracle은 암호 유틸리티인 orapwd를 제공한다.
암호 유틸리티 orapwd의 사용은 다음과 같다.




       filename: 암호 파일 이름
       password: SYSOPER 및 SYSDBA의 암호
       entries: SYSDBA, SYSOPER로 접속 할 수 있는 최대 구분 사용자 수.


운영 체제 환경


데이터베이스를 생성하기 전에 운영 체제 환경을 제대로 구성해야 한다.
       ORACLE_BACE: Oracle 소프트웨어의 최상위 디렉토리 지정.
       ORACLE_HOME: Oracle 소프트웨어를 설치한 디렉토리 지정.
       ORACLE_SID: 인스턴스의 이름을 지정. 이 이름은 동일한 시스템에서 실행 중인 Oracle
        인스턴스에 대해 고유해야 한다.
       ORA_NLS33: US7ASCII가 아닌 다른 문자 집합으로 데이터베이스 생성시 필요.
       PATH: SQL*Plus와 같은 실행 파일을 찾기 위해 운영체제가 검색할 디렉토리 지정.
       LD_LIBRARY_PATH: 운영 체제 및 Oracle 라이브러리 파일의 디렉토리 지정.


1-2. 데이터베이스 생성


오라클은 다음의 방식으로 데이터베이스 생성을 지원한다.


1-2-1. Oracle Universal Installer


Oracle 설치 중 자동으로 생성
1-2-2. Oracle Database Configuration Assistant


그래픽 사용자 인터페이스로 Java 기반으로 Java 엔진이 있는 플랫폼이 필요하다. Oracle 서버를
설치 하는 동안 Oracle Universal Installer에 의해 DBCA가 실행되어 자동으로 데이터베이스를 생
성할 수 있으며 혹은 독립적으로 DBCA를 실행 할 수 있다.


DBCA를 사용하면 다음을 수행 할 수 있다.
       데이터베이스 생성 및 삭제
       데이터베이스 옵션 구성
       템플리트 관리 – 미리 정의된 템플리트 설정을 사용하여 새 템플리트 생성


■ Database Configuration Assistant를 사용한 데이터베이스 생성
DBCA를 사용하여 데이터베이스를 생성하는 순서.
    ① 미리 정의된 템플리트에서 생성한 데이터베이스 유형 선택
        -   Data warehouse
        -   General purpose
        -   New Database
        -   Transaction processing
    ② 전역 데이터베이스 이름 및 SID를 지정한다.
    ③ 데이터베이스에서 사용할 기능을 선택
        -   Oracle Spatial
        -   Oracle OLAP 서비스
        -   Example Schemas
    ④ 데이터베이스 생성한 이후 실행할 스크립트 식별
    ⑤ 데이터베이스 작동 모드 선택
        -   전용 서버 모드
        -   공유서버 모드
    ⑥ 메모리, 아카이브, 데이터베이스 크기 조정 및 파일 위치에 대한 옵션 지정
        -   Memory: Typical(최소 사용자 입력으로 생성), Custom(사용자 정의 사용)을 선택
        -   Archive: 데이터베이스를 ARCHIVELOG 모드로 설정
        -   DB Sizing: 데이터베이스 블록 크기 및 정렬 영역 크기 정의
        -   File Locations: 추적 파일의 위치 지정, 초기화 매개변수 파일 경로 지정
    ⑦ 데이터베이스 저장 매개변수 정의
    ⑧ 데이터베이스 생성 옵션 선택하여 데이터베이스 생성 완료
        -   Create Database: 즉시 데이터베이스 생성
        -   Save as a Database Template: 데이터베이스 생성 매개변수를 템플리트로 저장
        -   Generate Database Creation Scripts: 데이터베이스 생성 매개변수를 스크립트 파일로
            저장
1-2-3. 수동으로 데이터베이스 생성
    ① 고유한 인스턴스 및 데이터베이스 이름 선택
    ② 데이터베이스 문자 집합 선택
    ③ 운영 체제 변수 설정 – ORACLE_HOME, ORACLE_SID, PATH, LD_LIBRARY_PATH
    ④ 초기화 매개변수 파일 생성 – 예제 init.ora 파일 사용
    ⑤ NOMOUNT에서 인스턴스 시작 – SYSDBA 권한이 있는 SYS 사용자로 접속.
    ⑥ CREATE DATABASE 명령으로 생성, 실행
    ⑦ 데이터베이스 OPEN
    ⑧ 스크립트 실행 – catalog.sql, catproc.sql, pupbld.sql 스크립트 실행
    ⑨ 추가 테이블스페이스 생성




    ※   스크립트 실행
        catalog.sql – 기본 테이블과 동적 성능 뷰에 대한 뷰 및 뷰의 동의어를 생성. PL/SQL 데
        이터 유형 선언, 미리 정의된 예외, 내장 프로시저 및 함수, SQL 작업을 포함한 기본
        PL/SQL 환경, 감사, Import/Export, SQL*Loader 등을 포함
        catproc.sql – PL/SQL을 사용하는데 필요한 프로시저와 패키지를 생성.
        pupbld.sql – Product User Profile 테이블 및 관련 프로시저를 생성.(system 사용자로 실행)


■ 데이터베이스 생성 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]
        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: 생성될 데이터베이스 이름.
       CONTROLFILE REUSE: 매개변수 파일에서 식별된 기존 제어 파일이 재사용되어야 함을
        지정
       LOGFILE GROUP: 사용될 로그 파일 이름과 로그 파일이 속한 그룹 지정
       MAXLOGFILES: 생성될 수 있는 리두 로그 파일 그룹의 최대 개수 지정
       MAXLOGMEMBERS: 한 로그 파일 그룹에 대한 로프 파일 멤버의 최대 개수 지정
       MAXLOGHISTORY: Oracle Real Application Clusters의 자동 매체 복구를 위해 아카이브된
        리두 로그 파일의 최대 개수 지정
       DATAFILE: filespec는 사용될 데이터 파일을 지정
       AUTOEXTEND: 데이터 파일의 자동 확장의 활성화 여부 지정
       MAXDATAFILES: 제어 파일의 데이터 파일 섹션에 대한 초기 크기 지정. 파일 수가
        MAXDATAFILES 보다 많고 DB_FILES 이하인 새 파일을 추가 하면 제어 파일이 자동 확장
        되어 데이터 파일 섹션에 추가 파일을 수용할 수 있다.
       MAXINSTANCES: 데이터베이스를 동시에 마운트 하고 열 수 있는 인스턴스의 최대 개수
       ARCHIVELOG: 리두 로그 파일의 아카이브 설정
       CHARACTER SET: 데이터베이스에서 데이터 저장에 사용하는 문자 집합
       NATIONAL CHARACTER SET: NCHAR, NCLOB, NVARCHAR2로 정의된 열에 데이터를 저장
        하기 위해 사용되는 국가별 문자 집합 지정
       DEFAULT TEMPORARY TABLESPACE: 데이터베이스의 기본 임시 테이블스페이스 생성
       UNDO TABLESPACE: 실행 취소 테이블스페이스를 생성하고 지정된 데이터 파일을 실행
        취소 테이블스페이스의 일부로 생성
       SET TIME_ZONE: 데이터베이스의 시간 영역을 설정
2. 데이터 딕셔너리 및 동적 성능 뷰 사용

데이터베이스 생성 시 데이터 파일 외에에도 다음의 객체들이 생성된다.
     데이터 딕셔너리: 데이터베이스의 객체에 대한 설명 저장
     동적 성능 테이블: 데이터베이스 및 인스턴스를 모니터하고 튜닝하기 한 정보 포함
     PL/SQL 패키지: 데이터베이스에 기능을 추가하는 프로그램 단위
     데이터베이스 이벤트 트리거: 테이블이나 뷰를 수정할 때마다 또는 일부 사용자 작업이
      나 데이터베이스 시스템 작업이 발생 할 때 암시적으로 실행되는 프로시저


2-1. 데이터 딕셔너리
연관된 데이터베이스에 대한 정보를 제공하는 테이블 및 뷰의 읽기 전용 집합.
DDL명령이 실행될 때 마다 Oracle 서버는 데이터 딕셔너리를 갱신하며 테이블을 확장시키는 명
령과 같은 DML 명령도 데이터 딕셔너리를 갱신한다. SYSTEM 테이블스페이스에 저장되며 SYS 사
용자의 소유이다. 데이터 딕셔너리는 다음 두 부분을 포함한다.


     기본 테이블: 데이터베이스에 대한 정보를 저장하는 테이블. 오라클 데이터베이스에서 생
      성되는 첫번째 객체로 Oracle 서버만이 테이블에 기록할 수 있으며 데이터 대부분이 암
      호화 되어 있다.
     데이터 딕셔너리 뷰: 기본 테이블 정보를 효과적으로 표시하는 기본 테이블 요약이다.
      catalog.sql 스크립트를 사용하여 생성된다.


데이터 딕셔너리는 다음의 정보를 제공한다.
     데이터베이스의 모든 스키마 객체(테이블, 뷰, 인덱스, 클러스터, 동의어, 시퀀스, 프로시저,
      함수, 패키지, 트리거 등)정의
     스키마 객체에 할당괸 영역의 크기민 스키마 객체가 현재 사용하는 영역의 크기
     열의 기본값
     무결성 제약 조건 정보
     Oracle 사용자 이름
     각 사용자에게 부여된 권한 및 롤
     감사 정보


2-1-1. 데이터 딕셔너리 뷰 범주


정적 뷰의 세 가지 집합으로 다음과 같이 나뉜다.




■ DBA 접두어가 붙는 뷰
DBA 접두어가 붙는 뷰는 전체 데이터베이스에 대한 전역적 뷰를 제공한다. 데이터베이스 관리자
나 “SELECT ANY TABLE” 시스템 권한을 가진 사용자만 질의 할 수 있다.
DBA는 다음 명령문을 통해 데이터베이스의 모든 객체를 질의 할 수 있다.


      SELECT owner, object_name, object_type
      FROM dba_objects;


■ ALL 접두어가 붙는 뷰
ALL 접두어가 붙는 뷰는 사용자가 볼 수 있는 데이터베이스의 전반적인 모습을 보여준다. 사용자
가 소유한 스크마 객체뿐만 아니라 공용이나 명시적인 권한 및 롤을 통해 액세스 하는 스키마 객
체에 대한 정보를 반환한다. 예를 들어 다음 질의는 액세스 할 수 있는 모든 객체에 대한 정보를
반환한다.


      SELECT owner, object_name, object_type
      FROM all_objects;


■ USER 접두어가 붙는 뷰
데이터베이스에서 사용자 전용 환경을 참조 한다. 일반적으로 현재 사용자가 소유하는 객체를 참
조한다. 예를 들어 다음 질의는 사용자 스키마에 포함된 모든 객체를 반환한다.


      SELECT owner, object_name, object_type
      FROM    users_objects;


2-2. 동적 성능 테이블
Oracle 서버는 전체 작업 과정 동안 현재 데이터베이스 작업을 동적 성능 뷰라는 가상 테이블 집
합에 기록한다. 이런 가상 테이블은 데이터베이스가 실행되는 동안에만 메모리에 존재하며 데이
터베이스 작업의 실시간 상태를 반영한다. 동적 성능 테이블은 SYS의 소유이며 이름은 모두
V_$로 시작한다. 뷰는 이러한 테이블에 대해 생성되고 뷰에 대한 공용 동의어가 생성되며 V$로
시작한다.
     V$CONTROLLFILE: 제어 파일의 이름
     V$DATABASE: 제어 파일의 데이터베이스 정보
     V$DATAFILE: 제어 파일의 데이터 파일 정보
     V$INSTANCE: 현재 인스턴스 상태 표시
     V$PARAMETER: 현재 세션에 대해 유요한 매개변수 및 값 나열
     V$SESSION: 각 세션에 대한 세션 정보 나열
     V$SGA: SGA의 요약 정보
     V$SPPARAMETER: SPFILE 내용
     V$TABLESPACE: 제어 파일의 테이블스페이스 정보
     V$THREAD: 제어 파일의 스레드 정보
     V$VERSION: Oracle 서버의 버전번호


3. 제어 파일

제어파일은 성공적인 데이터베이스 시작 및 운영에 필요한 이진 파일이다. 제어 파일 마다 연관
된 오라클 데이터베이스는 하나 뿐이며 데이터베이스 OPEN 상태가 되기전에 제어 파일을 읽어
데이터베이스가 사용할 수 있는 적합한 상태인지 결정한다. 제어 파일은 데이터베이스 사용 중에
Oracle 서버에 의해 계속 갱신 되며 이는 Oracle 서버만이 수정할 수 있다. 제어 파일의 크기는
CREATE DATABASE 또는 CREATE CONTROLFILE 명령에 있는 다음 키워드에 영량을 받는다.


     MAXLOGFILES, MAXLOGMEMBERS, MAXLOGHISTORY, MAXDATAFILES, MAXINSTANCES


제어 파일은 다음의 정보를 포함한다.
     데이터베이스 이름 및 식별자
     데이터베이스 생성 시간
     테이블스페이스 이름
     데이터 파일 및 리두 로그 파일의 이름과 위치
     현재 리두 로그 파일의 시퀀스 번호
     체크 포인트 정보
     실행 취소 세그먼트의 시작 및 종료
     리두 로그 아카이브 정보
     백업 정보


3-1. 제어 파일 다중화
단일 포인트의 제어 파일 실패를 방지하려면 다른 물리적 디스크에 각 복사본을 저장하여 제어파
일을 다중화 해야 한다. 제어 파일이 손실되면 다중화된 복사본을 사용하여 데이터베이스를 복구
하지 않고 인스턴스를 재시작 할 수 있다. 제어 파일은 다음 방법을 통해 최대 여덟 번까지 다중
화 될 수 있다.


     데이터베이스 생성시 초기화 매개변후 파일에 여러 개의 제어 파일 생성
         CONTROL_FILE = $HOME / ORADATA / U01 / ctrl01.ctl,
                         $HOME / ORADATA / U02 / ctrl02.ctl


■ SPFILE 사용 시 제어 파일 다중화




■ PFILE 사용시 제어 파일 다중화

								
To top