DB

[펌] 새로운 데이터베이스 생성 방법

_침묵_ 2005. 8. 23. 06:29
새로운 데이타베이스를 생성하기 위해서는 기존의 데이타베이스를 소거하고 새로운 데이타베이스를 생성하는 경우와 기존의 ORACLE HOME 디렉토리를 이용하여 새로운 ORACLE_SID를 사용한 데이타베이스 추가의 경우가  있겠다. 다음은 이 두 경우에 대한 설명이다.
A. 기존의 데이타베이스를 소거하고 새로운 데이타베이스를 생성하는 경우

이 경우에는 기존의 필요가 없게 된 데이타베이스를 구성하는 data files, log files, control file들을 소거한 후, 데이타베이스 생성 작업을 할 수 있다. 만약 필요한 data를 계속 유지하기 위해서는 IMP/EXP기능을 이용하면 된다. 아래는 기존의 데이타베이스에 대한 SID, DB_NAME등에 대한 환경을 계속 이용하는 경우에 있어서의 생성방법이다.

1. init<SID>.ora 화일 및 config<SID>.ora 화일의 수정
init<SID>.ora 화일의 rollback_segmenns parameter에는 이전의 데이타베이스에서 이용했던 rollback segment들이 정의되어 있다. 새로운 데이타베이스를 생성하기 위해서는 이 Parameter를 먼저 삭제를 해야 하고 데이타베이스 생성을 마친후 다시 새로운 데이타베이스 환경에 맞게 설정을 해 주어야 한다. 만약 새로운 데이타베이스의 control 화일들에 대한 변경이 필요하다면 config<SID>.ora 화일의 CONTROL_FILES Parameter를 수정해야 한다.

2. CREATING DATABASE
1)  기존의 DATABASE를 생성하면서 사용된 SHELL SCRIPT($ORACLE_HOME/dbs/crdbORATEST.sql, crdb2ORATEST.sql 화일)를 편집하여 새로운 환경의 DATABASE에 맞게 수정한다. 예를 들어 datafile에 대한 경로, 화일 이름 및 크기가 그 예가 되겠다.

2)  수정된 SCRIPT FILE을 수행을 통해서 새로운 데이타베이스 생성.
- $cd $ORACLE_HOME/dbs
$svrmgrl / sqldba lmode=y

SVRMGR> connect internal
SVRMGR> startup nomount
Statements processed.
SVRMGR> @crdbORA7
:
SVRMGR> @crdb2ORA7

3) CATALOG VIEW 생성 및 PROCEDURAL OPTION INSTALL
- $cd $ORACLE_HOME/rdbms/admin
$svrmgrl
SVRMGR> connect internal;
SVRMGR> @catalog
SVRMGR> @catproc
SVRMGR> @catexp
SVRMGR> create user scott identified by tiger
default tablespace tools
temporary tablespace temp
quota unlimited on tools
quota unlimited on temp;
SVRMGR> grant connect to scott;

3. 각 TOOL에 관련된 TABLE 생성
1) SQL*Plus install
- $ cd  $ORACLE_HOME/sqlplus/admin/help
$ SYSTEM_PASS=system/manager;export SYSTEM_PASS
$ helpins
- $ cd  $ORACLE_HOME/sqlplus/admin
$ sqlplus system/manager @pupbld
$ cd $ORACLE_HOME/sqlplus/demo
$ sqlplus scott/tiger @demobld

2) SQL*Forms30 install
- $ cd  $ORACLE_HOME/forms30/admin
$ sqlplus system/manager
SQL> set compatibility v6
SQL> @iadtable
SQL> @iadindex
SQL> @iadview
SQL> @iadgrant
3) SQL*Menu50 install
- $ cd  $ORACLE_HOME/menu5/admin
$ sqlplus system/manager
SQL> set compatibility v6
SQL> @menutabs
SQL> @menuvws
SQL> @menuidxs
SQL> @menugrts

4) SQL*Reportwriter install
- $ cd $ORACLE_HOME/sqlreport/admin
$ sqlplus system/manager
SQL> @srw_updpro
SQL> @srw_prac
SQL> @srw_icen
SQL> @srw_newid
SQL> @srw_cmdn
SQL> @srw_grnt

B. 새로운 ORACLE_SID를 사용한 데이타베이스 추가

1. 기존의 데이타베이스를 백업한다.
(파라메타 화일, 데이타 화일, 컨트롤 화일, 리두 로그 화일)

2. 환경설정
1) 새로운 데이타베이스를 추가하기 위해서는 OS의 DBA group에 속한 OS user를 새로 추가한다. 이때 이 user의 shell parameter들 중 ORACLE에 관한 parameter들이 정의가 올바르게 되어 있어야 한다. ORACLE_SID, ORACLE_HOME, ORACLE_BASE, NLS_LANG, TNS_ADMIN, LD_LIBRARYPATH등의 parameter들이 그 주된 대상이 되겠다.

예) 기존   환경 : ORACLE_SID=ORACLE7
새로운 환경 : ORACLE_SID=ORATEST

2) Oracle Parameter 화일 및 config 화일 생성
- 기존의 $ORACLE_HOME/dbs/initORACLE_SID.ora 화일을 이용하여 새로운 ORACLE_SID를 갖는 Parameter 화일을 만든다.

예) $ mkdir $HOME/dbs
$ cp $ORACLE_HOME/dbs/initORACLE7.ora    $HOME/dbs/initORATEST.ora
$ cp $ORACLE_HOME/dbs/configORACLE7.ora  $HOME/dbs/configORATEST.ora

initORATEST.ora 및 configORATEST.ora의 내용중에 ORACLE7부분을 ORATEST로 수정하고 initORATEST.ora 화일의 DB_NAME과 configORATEST.ora 화일의 control_files의 화일 이름을 새로운 환경에 맞게 지정한다. 또한, initORATEST.ora 화일의 rollback_segments parameter의 설정을 취소해 준다. 이 Parameter는 데이타베이스 생성 작업 후 다시 설정해 준다.

3. CREATING DATABASE
1)  기존의 DATABASE를 생성하면서 사용된 SHELL SCRIPT를 복사하여 새로운 환경의
DATABASE를 생성 ( $ORACLE_HOME/dbs/crdbORATEST.sql, crdb2ORATEST.sql 화일의
내용중, SID 및 redo log file, data file들에 관한 path 수정 )

예)
$cp  $ORACLE_HOME/dbs/crdbORACLE7.sql $HOME/dbs/crdbORACLE7.sql
$cp  $ORACLE_HOME/dbs/crdb2ORACLE7.sql $HOME/dbs/ crdb2ORACLE7.sql

$cd $HOME/dbs
- $vi  crdbORATEST.sql        -- ORACLE7으로 되어있는 부분을
- $vi  crdb2ORATEST.sql       -- ORATEST로 변경한다.

2)  수정된 SCRIPT FILE을 수행을 통해서 새로운 데이타베이스 생성.
- $cd $HOME/dbs
$svrmgrl
SVRMGR> connect internal
SVRMGR> startup nomount pfile=$HOME/dbs/initORATEST.ora
Statements processed.
SVRMGR> @crdbORATEST
:
SVRMGR> @crdb2ORATEST
:

CATALOG VIEW 생성 및 PROCEDURAL OPTION INSTALL과 각 TOOL에 관련된 TABLE 생성은 위에서 설명되었던 A.2.3과 A.3 내용에 따라 작업한다.