database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Tutorials 9272 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 9272
ORACLE DATABASE 재설치하기
작성자
정재익(advance)
작성일
2002-01-05 17:48
조회수
6,520

ORACLE DATABASE 재설치하기

 

출처 : http://members.tripod.lycos.co.kr/jelong/db_recreate.html

 

DB 를 깨끗하게 밀어 버리고 재 설치하거나 또는 DB구조를 변경할 때 유용한 Create Database 따라하기... (이거 함부로 따라하다 잘못하면 다칩니다)

 

-------------------------------------------------------------------

 

1. 기존 데이터베이스 백업 받기

2. 데이터베이스 생성 스크립트 (crdb, crdb2.sql) 수정하기

3. Create Database

4. System View 생성

5. 도움말과 샘플 테이블 생성

6. 백업 데이터 복원

 

--------------------------------------------------------------------------------

 

1. 기존 데이터베이스 백업 받기

 

우선 export 툴인 exp 를 이용하여 전체 database 를 백업 받습니다.

$ exp system/manager file=fullbackup.dmp full=y

 

그리고 기존의 데이터중 그대로 사용할 데이터 또는 만약 재설치에 실패했을 때를 대비해서 기존의 데이터를 모두 백업을 받고, 현재의 설정도 백업받아야 겠지요.

 

SQL>spool bakdata.txt

SQL>select * from v$dba_users; - 유저들의 디폴트 테이블스페이스, temp테이블스페이스

SQL>select * from v$datafile; -- 각각의 데이터파일의 위치와 크기

SQL>select * from dba_tablespaces -- 테이블 스페이스 정보

SQL>select * from dba_data_files; -- 테이블 스페이스와 그 파일의 구성정보

SQL>select * from dba_rollback_segs; -- 롤백 세그먼트 정보

SQL>select * from v$log; -- redo log 의 정보

SQL>select * from v$logfile; -- redo log file 정보

SQL>spool off

 

그리고 파라미터 파일인 init<SID>.ora, (ifile 이라는 파라미터로 설정되어있는)config*.ora 백업.

 

한가지 더 있습니다.

바로 control file 입니다. 이것은 복구 할 때 중요한 파일입니다.

control 파일은 2진 파일이므로, 생성해주는 sql 스크립트 파일을 가지고 있으면 여러 가지로 편리합니다.

 

SQL>alter database backup controlfile to trace ;

 

이렇게 하고 init .ora 파일에(또는 config .ora) 설정된 user_dump_dest 디렉토리로 가서 가장 최근의 *.trc 파일을 열어보면 control 파일을 만드는 스크립트가 포함되어 있습니다.

이것을 편집해 놓으면 바로 controlfile을 만들수 있습니다.

 

control.sql 샘플(첨부)

 

 

ORACLE_SID (= DB name) 을 변경했을 경우

 

- UNIX의 경우

ORACLE_SID, DB_NAME 파라미터가 들어가는 모든 파일을 찾아서 수정해야 한다.

 

1. 홈디렉토리에서 환경변수 설정파일인 .profile(또는 .cshrc)의

ORACLE_SID=<new_SID> 부분을 편집하고

$. .profile (.cshrc 의 경우 $ source .cshrc로 실행)

로 실행시켜 준다. 아니면,

$export ORACLE_SID=ORATEST

를 수행시켜 준다.

2. /opt/var/oracle/oratab 파일을 열어 SID:ORACLE_HOME path:Y/N를 수정

3. init*.ora 또는 config*.ora 파일의 db_name을 수정

4. 아래에 나올 crdb*.sql 파일을 수정

 

- NT의 경우

regedit 를 실행시켜 local_machine > software > oracle > home0 (oracle 8) 로

이동하여 ORACLE_SID 를 수정합니다. 그리고 init*.ora 또는 config*.ora 파일을 수정.

 

2. database 생성 스크립트 crdb*.sql , crdb2*.sql 편집

 

oracle 7.3 이상의 경우

 

$ORACLE_HOME=/home1/oracle/app/oracle/product/7.3.3

이라면 crdb*.sql 파일들은

/home1/oracle/app/oracle/admin/ORA7/create

에 위치합니다.

이 위치로 이동하여 새로운 이름으로 copy하고서, 필요한 내용을 수정합니다.

이때 init *.ora 등 파라미터 파일과 연동되는 부분과 각종 데이터 파일의

위치와 크기를 수정할 때는 주의를 기울여야 합니다.

 

NT 인경우 이 스크립트가 없습니다. sample 스크립트 파일을 참조하세요.

 

crdboracle.sql sample.(첨부)

crdb2oracle.sql sameple.(첨부)

 

3. Create Database

 

$svrmgr <-------------------------- 서버메니져를 실행 (NT의 경우 svrmgrl.exe)

SVRMGR>connect internal <----- 로그인

SVRMGR>@crdboracle.sql

반드시 에러를 확인하고 다음으로 넘어 가야 합니다.

SVRMGR>@crdb2oracle.sql

또 확인 해야죠. 시간이 대략 1시간 정도.걸립니다.

 

이 과정이 끝나면 데이터 파일들은 제대로 생성되었는지 꼼꼼히 확인하고 다음으로 넘어가야 합니다.

보통 아래과정에서 에러가 생기기 마련입니다.

 

4. system table/view 생성

 

우선 ORACLE_HOME/rdbms/admin 디렉토리로 이동하여 catalog.sql, catproc.sql, catexp.sql 의 3가지 스크립트 파일이 존재하는지 확인하십시오.

 

SVRMGR>connect internal

SVRMGR>@$ORACLE_HOME/rdbms/admin /catalog

-- 20 분 소요

SVRMGR>@$ORACLE_HOME/rdbms/admin /catproc

-- 1시간 소요

SVRMGR>@$ORACLE_HOME/rdbms/admin /catexp

-- 30분 소요

만일 위의 스크립트를 돌리다 에러다 싶으면 데이터베이스 생성할 때 뭔가 잘못된 것입니다.

확인하고 다시 실행 해야겠죠..

 

 

5. 도움말과 sample table / view 생성

 

 

sqlplus를 실행하고 system/manager 로 login 합니다.

 

$ cd $ORACLE_HOME/sqlplus/admin/help

$ SYSTEM_PASS=system/manager;export SYSTEM_PASS

$ helpins

이렇게 해서 sqlplus 의 도움말을 설치하고 (NT 에서는 이런 과정이 필요 없습니다.)

다음에 scott/tiger 의 샘플 테이블을 설치합니다.

 

$ cd $ORACLE_HOME/sqlplus/admin

$ sqlplus system/manager

SQL> create user scott identified by tiger

default tablespace users temporary tablespace temp

quota unlimited on users

quota unlimited on temp;

SQL> grant connect,resource to scott;

SQL>@ $ORACLE_HOME/sqlplus/admin/pupbld.sql

SQL> connect scott/tiger;

SQL> @$ORACLE_HOME/sqlplus/demo /demobld.sql

 

이로서 DB의 재설치 끝~

 

 

6. 백업 데이터 복원

 

exp 로 백업받은 데이터를 복원할 때는 imp 를 사용하여 선별적으로 또는 full 복원 합니다.

그러나 임포트 하기 전에 임포트할 userid, tablespace 가 존재하고 있어야 합니다.

이들은 백업받은 메타데이터 정보를 이용해서 다시 살려 놓습니다.

 

SQL> create tablespace [name] datafile ‘/data2/oracle/oradata ….’ [Size 10M] [reuse]

Default storage( initial 1024 next 1024 …. );

 

일단 테이블 스페이스를 만들고 유저를 생성.

 

SQL> create user [id] indentified by [passwd]

default tablespace [tablespace name] temporary tablespace [temp] …;

grant connect, resource to [id];

 

Export받은 File에서 Index를 제외한 나머지만 Import 하려면 indexes=n 옵션을 주고,

 

$ imp system/manager file=fullbackup.dmp fromuser=scott touser=scott indexes=n commit=y

 

Indexfile Option을 이용하여 Index Script를 만든다.

 

$ imp system/manager fromuser=scott touser=scott file=scott.dmp indexfile=index.sql

 

위와 같이 명령을 실행하면 index.sql이라는 File이 만들어지고, 그 파일을 열어서 확인해 보면 create table 문장과 create index문장이 있고 Create Table 문장은 REM으로 막혀 있어서 결과적으로 Create Index문만 실행할 수 있도록 되어 있습니다.

 

이 파일에서 Create Index문의 Tablespace만 바꾸어서 다음과 같이 SQL*Plus에서 실행.

$ sqlplus scott/tiger

SQL> @index

[Top]
No.
제목
작성자
작성일
조회
9278유용한 오라클 tuning scripts (1)
정재익
2002-01-05
11159
9276몇가지 유용한 SQL scripts
정재익
2002-01-05
10836
9273MANIPULATING LARGE OBJECTS USING BMS_LOB PACKAGE
정재익
2002-01-05
6039
9272ORACLE DATABASE 재설치하기
정재익
2002-01-05
6520
9271REBUILD 할 INDEX 와 BITMAP INDEX 로 만들어야 하는 인덱스를 조사하기 [1]
정재익
2002-01-05
6038
9270PARALLEL QUERY OPTION 사용 및 확인
정재익
2002-01-05
6847
9269WEB상에서 PLSQL로 EXCEL FILE만드는 예제
정재익
2002-01-05
5060
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다