1. backup을 준비하는 단계로 Database file들을 조회해 보기
--------------------------------
ID : sys, PWD : oracle의 경우
Sqlplus로 접속
C:> sqlplus sys/oracle as sysdba
* 콘트롤 파일 확인
SQL> select value from v$controlfile;
* 데이터 파일 확인
SQL> select name from v$logfile;
* 로그 파일 확인
SQL> select member from v$logfile;
* 모든 데이터 파일의 구조를 분석
SQL> select file_id, file_name, tablespace_name FROM dba_data_files;
2. Offline으로 DB backup을 실시하기
Backup 대상 폴더명 : C:\backup
Database file 폴더명 : C:\oracle\product\10.2.0\oradata\orcl\
(1) DB를 정상적으로 종료한다.
SQL> shutdown immediate;
SQL> exit
(2) Database file의 모든 파일을 C:\backup\으로 복사합니다.(사이 공백을 넣어주세요.)
C:\> copy C:\oracle\product\10.2.0\oradata\orcl\*.* C:\backup\
3. No아카이브 mode에서의 Backup/Recovery
먼저 아카이브 모드와 No아카이브 모드에 대해 아래 설명을 참조
http://markspeople.tistory.com/36
password는 oracle를 처음 설치시 입력했던 password를 말합니다.
C:\> sqlplus system/password as sysdba
// 아카이브에 대한 간단한 정보 확인
SQL> archive log list
// oracle session의 종료
SQL> shutdown immediate
// Backup하기 (백업 폴더 : C:\backup\Noarchive)
C:\> copy C:\oracle\product\10.2.0\oradata\orcl\*.* C:\backup\Noarchive
// DB시작
SQL> startup
// DB의 강제 종료로 장애를 발생시킨다.
SQL> shutdown abort
// EXAMPLE01.DBF를 삭제하므로 장애를 유발시킵니다.
C:\> del C:\oracle\product\10.2.0\oradata\orcl\Example01.dbf
// DB startup하면, 에러 발생함.
SQL> Startup
--> 위와 같이 비정상적으로 시스템이 다운되거나 서버 자체에 에러가 생겨 데이터 파일이 손상된 경우입니다. 가장 좋은 해결 방법은 데이터 파일을 없애고 다시 만드는 것입니다.
손상된 파일은 offline drop처리를 한 이후에 데이터 파일이나 테이블 스페이스를 삭제합니다.
// DB를 복구하는 작업
SQL> Alter database datafile 'C:\oracle\product\10.2.0\oradata\orcl\example01.dbf' offline drop;
SQL> Alter database open;
SQL> shutdown immediate
// 오류 파일을 Bakup 받아둔 것을 이용해서 원상태로 복구후 Startup실행
SQL> copy C:\backup\Noarchive\example01.dbf C:\oracle\product\10.2.0\oradata\orcl\
SQL> Startup