DB를 생성하는 방법에는 dbca 를 이용한 자동생성과, create database 명령문을 이용한 수동생성이 있다. 이번 포스팅에서는 이전의 RHEL4에 오라클10g를 10.2.0.4 패치까지 한 이후는 같으나 DB를 수동으로 생성하는 방법을 논할 것이다.
아래 작업 전에 이미 패치까지 완료 되어 있는 상태에서 시작한다.
1. 덤프파일들과 컨트롤파일, 리두로그 파일, 데이터파일들이 위치할 디렉토리 생성.
2. 초기화 파라미터 파일 설정
3. 패스워드 파일 생성
4. DB생성을 위한 스크립트 생성
5. DB생성 스크립트 실행
6. DB운영에 필요한 필수 스크립트 실행(SYS계정으로 작업)
7. User 로그인 시 경고 메시지 제거를 위한 스크립트 실행(SYSTEM계정으로 작업)
8. 샘플스키마 생성을 위한 스크립트 실행(SYSTEM계정으로 작업)
9. scott계정 생성을 위한 스크립트 실행(SYSTEM계정으로 작업)
DB생성 후 이렇게 한번에 스크립트를 만들어도 된다.
아래 작업 전에 이미 패치까지 완료 되어 있는 상태에서 시작한다.
RHEL4 설치
↓
10.2.0.1 엔진 설치
↓
10.2.0.4 엔진 패치
↓
DB생성(수동)
↓
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
$ 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
$ 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
$ 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;
$ 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가 오픈되어있는 상태임.
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을 사용하는 데 필요한 패키지 및 프로시저 생성)
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
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
$ 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
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