반응형
1. 기존 데이터베이스 백업 받기
-
우선 export 툴인 exp 를 이용하여 전체 database 를 백업 받습니다.$ exp system/manager file=fullbackup.dmp full=y그리고 기존의 데이터중 그대로 사용할 데이터 또는 만약 재설치에 실패했을 때를 대비해서기존의 데이터를 모두 백업을 받고, 현재의 설정도 백업받아야 겠지요.SQL>spool bakdata.txtSQL>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 internalSVRMGR>@$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/managerSQL> create user scott identified by tigerdefault tablespace users temporary tablespace tempquota unlimited on usersquota unlimited on temp;SQL> grant connect,resource to scott;SQL>@ $ORACLE_HOME/sqlplus/admin/pupbld.sqlSQL> 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=yIndexfile 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/tigerSQL> @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 |