강좌
클라우드/리눅스에 관한 강좌입니다.
데이터베이스 분류

윈도NT에서 DB생성

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

윈도NT에서 DB생성



윈도NT에서 DB생성은 간단히 oracle database assistant를 실행하여
만들 수 있다. 아래는 유닉스방식으로 생성하는 방식을 설명한다.

참고:
오라클의 database assistant는 db생성, 서비스등록과 설정파일,
DB생성스크립트를 만들어준다. 
간단한 DB를 database assistant로 생성한 후, 추가적인
tablespace, data file을 생성하기 위해 서버매니저를 실행하거나
initSID.ora를 수정한다.

오라클이 설치된 디렉토리는 c:orant, 오라클 인스톨시 설치되는 
디폴트 DB이름이 ORC1이라고 가정한다.
새로 생성할 DB이름은 test라고 지정할 것이다.

윈도NT에서는 유닉스와는 DB생성과 인스턴스의 시작이 차이가 있다.
일단 C:orantdatabaseinitorc1.ora의 파일을 같은 디렉토리에
C:orantdatabaseinittest.ora로 복사하고 파일안의 db_name과
control_files패러미터를 편집한다. 아래와 같다.

참고:
oracle_sid는 db_name과 같다.
즉, 동일하게 생각하면 된다. sid는 instance identifier 혹은 system identifier로 불리운다. 

inittest.ora 편집
db_name=test
control_files = e:ora_dataDATABASE estcontrol01.ctl
rollback_segments=(r01, r02)
db_block_buffers=100
remote_login_passwordfile = exclusive

참고:
디폴트DB의 shared_pool_size, db_block_buffers값이 너무 높게 
설정되어 있었다. remote_login_passwordfile은 exclusive로 했다.

NT에서는 유닉스와는 달리 서버매니저를 실행하려면 일단 3개의 
서비스를 시작해야 한다. 디폴트DB는 설치시 자동으로 제어판-서비스
항목에 자신을 등록해 놓았다.
오라클8을 사용한다면 다음의 서비스가 시작되어야 한다.

OracleServiceORC1, OracleStartORC1, OracleTNSListener80

이 서비스는 인스턴스 매니저(Instance Manager)의 커맨드라인모드에서
등록될 수 있다. 아래와 같이 입력한다. 참고로 위의 숫자80은 오라클버전을
의미한다. 참고로 오라클7.3은 oradim73.exe와 같은 실행화일을 가진다.

C:>oradim80 -new -sid test -intpwd manager -startmode auto -pfile c:orantdatabaseinittest.ora

제어판-서비스를 확인한다.
OracleServiceTEST와 OracleStartTEST가 서비스에 추가된 것을 확인할 수 있을 것이다.
확인해 보면 OracleServiceTEST만 시작상태에 있는 것을 유의하라.
OracleStartTEST는 인스턴스가 시작되었을 경우에 시작상태로 표시된다.
후에 서비스를 중지하기 위해 제어판-서비스에서 멈춤을 선택하지는 말라.
이는 shutdown abort와 같은 종료를 한다. 
이는 나중에 인스턴스 시작시 매번 SMON이 자동복구를 하게 한다.
(이를 막는 방법은 레지스트리키의 ora_shutdown이나 ora_sid_shutdown을 true를 설정
하면 된다. 이는 shutdown immediate와 같다. 레지스트리키의 위치는 
HKEY_LOCAL_MACHINESOFTWAREORACLE에서 발견할 수 있다.이는 오라클8이상에서만 가능하다.)

service.jpg

위에서 패스워드는 manager로 지정한 것을 유의하라.
이는 서버매니저로 로긴시 사용될 것이다. 
(OracleStarttest만 정의되어 있지 않을 경우, 'oradim80 -delete -sid test'를 먼저 실행한다.)
이제 oracle_sid를 test로 지정하고 서버매니저를 실행한다.

C:>set Oracle_Sid=test

C:>svrmgr30

Oracle Server Manager Release 3.0.5.0.0 - Production

(c) Copyright 1997, Oracle Corporation. All Rights Reserved.

Oracle8 Enterprise Edition Release 8.0.5.0.0 - Production
With the Partitioning and Objects options
PL/SQL Release 8.0.5.0.0 - Production

SVRMGR> connect internal/manager
연결되었습니다
SVRMGR> startup nomount
ORACLE 인스턴스가 시작되었습니다
시스템 글로벌 영역 4542464 바이트 합계
Fixed Size 49152 바이트
Variable Size 4214784 바이트
Database Buffers 204800 바이트
Redo Buffers 73728 바이트
SVRMGR> show sga
시스템 글로벌 영역 4542464 바이트 합계
Fixed Size 49152 바이트
Variable Size 4214784 바이트
Database Buffers 204800 바이트
Redo Buffers 73728 바이트
SVRMGR> show parameters db_name
NAME TYPE VALUE
----------------------------------- ------- ------------------------------
db_name string test

DB이름이 test인 것을 확인한다.

참고:
show sga명령은 SGA영역의 크기를 확인할 수 있다. 이는 인스턴스시작시
출력되는 내용과 동일하다.
show parameters는 initSID.ora파일에 지정된 패러미터를 출력한다.
패러미터파일에 지정되지 않은 값은 디폴트 값을 가진다. 
뒤에 패러미터이름을 지정하면 해당 패러미터만 검색가능하다. 
확실한 패러미터이름을 모른다면 이름의 일부분만을 입력하라.
부분검색이 가능하다. 즉, show parameters db라고 입력하면 db라는 단어를
포함한 패러미터들의 값이 모두 출력된다.


이제 DB생성만 하면 된다.
이는 유닉스에서와 별다를 것이 없다.
(DB생성은 c:orantRDBMS80ADMINCREATEDB.SQL파일을 참고하라.)
나는 위의 파일과 다르게 진행했다.
일단 데이터가 저장될 폴더(e:ora_datadatabase est)를 만들어 준다.

SVRMGR> create database test
2> maxinstances 8
3> maxlogfiles 32
4> character set "KO16KSC5601"
5> national character set "KO16KSC5601"
6> datafile
7> 'e:ora_datadatabase estsystem01.dbf' size 50m
8> logfile
9> 'e:ora_datadatabase est edotest01.log' size 500k,
10> 'e:ora_datadatabase est edotest02.log' size 500k,
11> 'e:ora_datadatabase est edotest03.log' size 500k;
명령문이 처리되었습니다

데이터베이스 생성 SQL문이다.
여기서는 데이터파일과 redo log파일을 생성한다. 컨트롤파일도 이때 생성된다.
컨트롤파일은 따로 지정하지 않으면 패러미터파일(initSID.ora)에서 지정한 
파일이름을 가지고 생성된다. 위의 예에서는 리두로그를 그룹으로 만들지 않았다.
여러분이 생성할때는 리두로그그룹을 생성하기를 바란다. 별로 어렵지 않을 것이다.

위의 결과, 다음과 같은 파일이 생겼음을 확인할 수 있다.

nt_createdb1.jpg


시스템(system01.dbf)에 데이터사전뷰을 만든다

SVRMGR> @c:orant dbms80/admin/catalog.sql
결과화면 생략...

이후로는 설명은 생략한다. 
자세한 설명은 리눅스에서의 DB생성(createdb.html)을 참고하라.
NT에서 서비스의 시작/종료는 net명령(nt_netcommand.html)을 참고한다.

SVRMGR> show parameters rollback_segments
NAME TYPE VALUE
----------------------------------- ------- ------------------------------
max_rollback_segments integer 30
rollback_segments string e:ora_datadatabase est 01,
SVRMGR> create rollback segment r0 tablespace system
2> storage(initial 16k next 16k minextents 2 maxextents 20);
명령문이 처리되었습니다
SVRMGR> alter rollback segment r0 online;
명령문이 처리되었습니다
SVRMGR> create tablespace rbs datafile
2> 'e:ora_datadatabase est bs01.dbf' size 15m
3> default storage(
4> initial 128k
5> next 128k
6> pctincrease 0
7> minextents 2);
명령문이 처리되었습니다
SVRMGR> create tablespace temp datafile
2> 'e:ora_datadatabase est emp01.dbf' size 1m
3> default storage(
4> initial 256k
5> next 256k
6> pctincrease 0);
명령문이 처리되었습니다
SVRMGR> create tablespace tools datafile
2> 'e:ora_datadatabase est ools01.dbf' size 25m;
명령문이 처리되었습니다
SVRMGR> create tablespace users datafile
2> 'e:ora_datadatabase estusers01.dbf' size 1m;
명령문이 처리되었습니다
SVRMGR> create rollback segment r01 tablespace rbs;
명령문이 처리되었습니다
SVRMGR> create rollback segment r02 tablespace rbs;
명령문이 처리되었습니다
SVRMGR> alter rollback segment r01 online;
명령문이 처리되었습니다
SVRMGR> alter rollback segment r0 offline;
명령문이 처리되었습니다
SVRMGR> drop rollback segment r0;
명령문이 처리되었습니다
SVRMGR> alter user sys temporary tablespace temp;
명령문이 처리되었습니다
SVRMGR> alter user system default tablespace tools temporary tablespace temp;
명령문이 처리되었습니다
SVRMGR> @c:/orant/rdbms80/admin/catproc.sql
결과화명생략..

아래는 이제까지 생성된 데이터파일을 보여준다.

nt_createdb2.jpg

Copyleft(C) 명규의 오라클OCP All rights free


관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  79 명