반응형
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을 만들수 있습니다.
-
-
-
-
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
-
-
이런 식으로 차례로 복구 하면 깨끗한 마음으로 복구 끝~
반응형
'ORACLE > INSTALL' 카테고리의 다른 글
Linux x86에 oracle 10g 설치하기 위한 시스템 요구사항 (0) | 2006.11.23 |
---|---|
LINUX오라클 설치 (0) | 2006.06.27 |
[펌] [SUN]Oralcle 8i 설치하기 (0) | 2006.01.26 |
[펌] Redhat 9.0 기반에서 오라클 9.2.0 설치 (0) | 2005.05.25 |
[펌] 레드헷+오라클 설치하기 (0) | 2005.05.25 |