우선 이전에 오라클을 설치와 오라클의 물리적 구조를 알아보았는데, 본인이 워낙 초짜인 이유도 있겠지만 대부분의 입문자들이 그렇듯 우선 무엇인가를 하기 위해서 입문서를 보다가 처음 이론에서 많이들 포기 하기때문에, 바로 사용가능한 데이터 베이스를 만들어 보기로 한다. 이전까지는 최소의 사전 지식이었으며, 이외에도 간단한 설정파일들은 핸들링 할수 있어야 한다.
우선 사전 계획을 세워야 한다.
- 생성 계획.
- 데이터 베이스의 테이블과 인덱스를 고려한 하드웨어의 공간을 예상한다.
- 운영될 운영체제에 알맞은 데이터 베이스의 I/O 구성을 예상한다.
- 글로벌 데이터베이스 네임을 선택한다.
- 초기 설정 파일의 각 속성을 숙지한다.
- 데이터베이스의 문자셋을 선택한다.
- 데이터베이스에서 지원할 시간대를 고려한다.
- 표준 데이터베이스 블럭의 크기를 선택한다.
- 롤백 세그먼트 보다 Undo 테이블 스페이스를 사용한다.
- 백업과 복구 전략을 수립해 둔다.
- 데이터베이스의 시작과 종료에 관하여 숙지해 둔다.
- 어떠한 방법으로 데이터베이스를 생성할것인가?
- DBCA(Database Configuration Assistant)를 사용한다.
- 수동으로 스크립트를 이용한다.
- 기존의 데이터베이스를 업그레이드 한다.
기존의 설치를 그대로 했다면 아마도 이미 데이터 베이스가 생성 되어 있을것이다. 이 데이터 베이스를 무시하고 새로운 데이터 베이스를 수동으로 생성할것이다. 이 과정을 통해 데이터 베이스란 의미를 확인하기 위함이다.
- 수동으로 데이터베이스 생성하기.
- 오라클 시스템 구분자 : SID(Oracle System identifier)를 환경변수에 등록한다.
- 홈디렉토리의 .bash_profile을 수정한다. 설치시 사용했던 것이 있으니 별 문제는
없을것이다.
- 데이터베이스를 생성하기 위한 시스템 계정으로 로그인 했는지 확인한다.
- 초기 설정 파일을 생성한다.
- 샘플 파일을 참조한다.
http://download-west.oracle.com/docs/cd/B10501_01/server.920/
a96521/create.htm#1018369
- 기본 ($ORACLE_HOME/dbs/init$ORACLE_SID.ora) 파일을 수정한다.
- 인스턴스에 접속하기.
sqlplus /nolog
connect / as sysdba
- 인스턴스 시작하기.
startup nomount
(샘플의 BACKGROUND_DUMP_DEST,CORE_DUMP_DEST,USER_DUMP_DEST의
디렉토리는 먼저 만들어주어야 한다.)
이때까지 데이터 베이스는 생성되어 있지 않은 상태이다. 기능들은 SGA영역에
프로세스상으로 존재할 뿐이다.
- 데이터베이스 만들기.
create database t75
user sys identified by blahblah
user system identified by blahblah
logfile group 1 ('/oradata/t75/redo01.log') size 100M,
group 2 ('/oradata/t75/redo02.log') size 100M,
group 3 ('/oradata/t75/redo03.log') size 100M
maxlogfiles 5
maxlogmembers 5
maxloghistory 1
maxdatafiles 100
maxinstances 1
character set KO16KSC5601
national character set UTF8
datafile '/oradata/t75/system01.dbf' size 300M reuse
extent management local
default temporary tablespace tempts1
tempfile '/oradata/t75/temp01.dbf' size 20M reuse
undo tablespace undotbs datafile '/oradata/t75/undotbs01.dbf' size 200M reuse
autoextend on next 5120K maxsize unlimited;
(임시테이블 스페이스를 만들시에 tempfile옵션을 사용한다.)
(national character set은 UTF8, AL16UTF16 두가지만 존재한다. 두가지 모두
유니코드이므로 문제는 없다.)
상기의 내용중 create의 문법은 하나하나 확인해 가면서 점검해야 한다. 이 문장이 이해가 간다면 이미 데이터베이스의 개괄적인 내용은 알고 있다고 생각해도 된다. 나머지는 이 데이터베이스를 어떻게 잘 관리 하느냐 이다.
이제 사용자들이 사용할 테이블 스페이스를 만든다. 물리적인 하나의 파일로 분할함으로서 데이터베이스의 백업의 용이성과 운영시 안정성을 높인다.
CONNECT SYS/password AS SYSDBA
-- create a user tablespace to be assigned as the default tablespace for users
CREATE TABLESPACE users LOGGING
DATAFILE '/oradata/t75/users01.dbf'
SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;
-- create a tablespace for indexes, separate from user tablespace
CREATE TABLESPACE indx LOGGING
DATAFILE '/oradata/t75/indx01.dbf'
SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;
그리고 데이터 베이스에서 사용할 딕셔너리 뷰를 만드는 스크립트를 실행한다. 딕셔너리 뷰에 관해서는 나중에 알아보도록 하고 지금은 DBA가 데이터 베이스를 관리하기 위한 설정을 저장하고 있는 테이블이라고 개념만 잡고 있도록 하자.
@{$ORACLE_HOME}/rdbms/admin/catalog.sql
@{$ORACLE_HOME}/rdbms/admin/catproc.sql
(당연히 '{$ORACLE_HOME}' 설치된 알맞은 위치로 변경되어야 한다.)
이후 백업 및 관리의 편의를 위하여 좀더 많은 작업이 남아 있지만, 우선은 이정도에서 데이터 베이스를 운영 할수는 있다. 좀더 자세한 데이터베이스의 생성은 오라클 문서를 확인하면 상세히 알수 있다.
http://download-west.oracle.com/docs/cd/B10501_01/server.920/
a96521/create.htm#1656
참조 사이트는 실제로 해보고 반드시 한번쯤은 읽어보기를 권한다.
2006/12/21 : 설치환경 또는 이전에 했던 작업에 따라 많은부분이 달라질수 있으므로. 반드시 원문서 및 자신의 데이터 베이스 환경에 대한 이해가 필요하다. 무작정 상기의 순서로 진행하는경우 에러메시지를 받게 될것이다.
Trackback Address :: http://wowsim.com/trackback/111