DB를 생성하는 방법에는 dbca 를 이용한 자동생성과, create database 명령문을 이용한 수동생성이 있다. 이번 포스팅에서는 이전의 RHEL4에 오라클10g를 10.2.0.4 패치까지 한 이후는 같으나 DB를 수동으로 생성하는 방법을 논할 것이다.

아래 작업 전에 이미 패치까지 완료 되어 있는 상태에서 시작한다.
RHEL4 설치
  ↓
10.2.0.1 엔진 설치
  ↓
10.2.0.4 엔진 패치
  ↓
DB생성(수동)


1. 덤프파일들과 컨트롤파일, 리두로그 파일, 데이터파일들이 위치할 디렉토리 생성.
$ cd /home/oracle
$ mkdir -p oradata/testdb
$ mkdir -p admin/testdb/bdump admin/testdb/cdump admin/testdb/udump

2. 초기화 파라미터 파일 설정
$ cd /home/oracle/product/10g/dbs/
$ vi inittestdb.ora

control_files=('/home/oracle/oradata/testdb/control01.ctl',
                   '/home/oracle/oradata/testdb/control02.ctl',
                   '/home/oracle/oradata/testdb/control03.ctl')
db_name=testdb
instance_name=testdb
shared_pool_size=64M
undo_management='AUTO'
undo_tablespace=UNDOTBS1
remote_login_passwordfile='EXCLUSIVE'
db_cache_size=32M
db_block_size=8192
background_dump_dest=/home/oracle/admin/testdb/bdump
core_dump_dest=/home/oracle/admin/testdb/cdump
user_dump_dest=/home/oracle/admin/testdb/udump

3. 패스워드 파일 생성
$ cd /home/oracle/product/10g/dbs/
$ orapwd file=orapwtestdb password=oracle

4. DB생성을 위한 스크립트 생성
$ cd /home/oracle
$ vi createdb.sql

create database testdb
  user sys identified by oracle
  user system identified by oracle
  controlfile reuse
  logfile
    group 1 ('/home/oracle/oradata/testdb/redo01.log') size 50M reuse,
    group 2 ('/home/oracle/oradata/testdb/redo02.log') size 50M reuse,
    group 3 ('/home/oracle/oradata/testdb/redo03.log') size 50M reuse
  datafile '/home/oracle/oradata/testdb/system01.dbf' size 500M reuse
    autoextend on next 50M maxsize 1024M extent management local
  sysaux datafile '/home/oracle/oradata/testdb/sysaux01.dbf' size 500M reuse
    autoextend on next 50M maxsize 1024M
  undo tablespace undotbs1 datafile '/home/oracle/oradata/testdb/undotbs01.dbf' size 500M reuse
    autoextend on next 50M maxsize 1024M
  default temporary tablespace temp tempfile '/home/oracle/oradata/testdb/temp01.dbf' size 500M reuse;

5. DB생성 스크립트 실행
$ sqlplus / as sysdba
SQL> startup nomount
SQL> @/home/oracle/createdb.sql    // 여기까지 하면 DB가 오픈되어있는 상태임.

6. DB운영에 필요한 필수 스크립트 실행(SYS계정으로 작업)
SQL> @/home/oracle/product/10g/rdbms/admin/catalog.sql (데이터 딕셔너리 뷰와 동적성능뷰 생성)
SQL> @/home/oracle/product/10g/rdbms/admin/catproc.sql (PL/SQL을 사용하는 데 필요한 패키지 및 프로시저 생성)

7. User 로그인 시 경고 메시지 제거를 위한 스크립트 실행(SYSTEM계정으로 작업)
SQL> conn system/oracle
SQL> @/home/oracle/product/10g/sqlplus/admin/pupbld.sql

8. 샘플스키마 생성을 위한 스크립트 실행(SYSTEM계정으로 작업)
$ unzip 10201_companion_linux32.zip
$ cd companion/
$ ./runInstaller
설치할 제품 선택에서 Oracle Database 10g Products 10.2.0.1.0 선택.
설치 경로는 DB 엔진이 설치된 경로와 동일하게 설정.

SQL> create tablespace example
   datafile '/home/oracle/oradata/testdb/example01.dbf' size 300M
   autoextend on next 50M;
SQL> @/home/oracle/product/10g/demo/schema/mksample.sql

9. scott계정 생성을 위한 스크립트 실행(SYSTEM계정으로 작업)
SQL> @/home/oracle/product/10g/rdbms/admin/utlsampl.sql



DB생성 후 이렇게 한번에 스크립트를 만들어도 된다.
SQL> define _editor=vi
SQL> vi after.sql

conn sys/oracle as sysdba
@/home/oracle/product/10g/rdbms/admin/catalog.sql
@/home/oracle/product/10g/rdbms/admin/catproc.sql
conn system/oracle
@/home/oracle/product/10g/sqlplus/admin/pupbld.sql
@/home/oracle/product/10g/rdbms/admin/utlsampl.sql

SQL> @after.sql
Posted by 겨울섬
,