▣ COLD BACKUP(오프라인 백업)
오라클 Technical Bulletins No. 10167를 참고해서 작성 했습니다.
Cold Backup이란 오라클 shutdown후 datafile, redo log file, control file, parameter file등을 OS의 복사명령으로 백업을 수행하는 방법을 말합니다.
백업받을 파일들의 목록은 v$datafile, v$logfile, v$controlfile에서 찾을 수 있습니다.
- 장점 : 읽기 일관성이 보장됨, 가장 간편합니다.
- 단점 : 오라클 shutdown 필요하므로 백업받는 동안 데이터베이스를 사용할 수 없습니다.
백업이 수행된 시점까지만 복구가 가능합니다
- 콜드 백업은 데이타베이스가 정상적으로 SHUTDOWN 된 상태에서 데이타 화일, 로그 화일, 콘트롤 화일을 모두 백업받는 것을 말합니다.
- SHUTDOWN 하지 않고 OPEN 된 상태에서 백업을 받으면 백업받은 내용을 나중에 사용할 수가 없으므로 유의해야 합니다.
- 콜드 백업을 위해서 데이타베이스를 SHUTDOWN 할 때에는 NORMAL, IMMEDIATE 옵션을 사용해야 하며 ABORT 를 사용해서는 안 됩니다. ABORT 를 사용한 경우에는 SHUTDOWN 후에 다시 STARTUP 하고 NORMAL 로 SHUTDOWN 하도록 합니다.
- Shutdown abort 옵션을 쓸 경우 Checkpoint 정보가 일치하지 않아 복구가 수행되지 않을 수 있으므로 이 옵션을 사용하지 말아야 한다.
- 콘트롤 화일과 데이타 화일 및 로그 화일의 위치를 확인하여 이들을 tar, cpio 등의 명령을 이용하여 백업 받도록 합니다.
- NT 에서는 COPY 명령이나 탐색기를 이용해서 백업을 받으면 된다.
▣ 파일확인 방법
콘트롤 화일 확인 방법
---------------------
-- Oracle 8.1.7
sqlplus에 system/manager로 접속해서
SQL> select name from v$controlfile;
NAME
------------------------------------------
C:\ORACLE\ORADATA\ORACLE\CONTROL01.CTL
C:\ORACLE\ORADATA\ORACLE\CONTROL02.CTL
C:\ORACLE\ORADATA\ORACLE\CONTROL03.CTL
데이타 화일 확인 방법
---------------------
SQL> set pagesize 30;
SQL> select name from v$datafile;
NAME
--------------------------------------------------
C:\ORACLE\ORADATA\ORACLE\SYSTEM01.DBF
C:\ORACLE\ORADATA\ORACLE\INDX01.DBF
C:\ORACLE\ORADATA\ORACLE\TOOLS01.DBF
C:\ORACLE\ORADATA\ORACLE\USERS01.DBF
C:\ORACLE\ORADATA\ORACLE\STORM.DBF
C:\ORACLE\ORADATA\ORACLE\STORMIDX.DBF
C:\ORACLE\ORADATA\ORACLE\TEST.DBF
로그 화일 확인 방법
------------------
SQL>select member from v$logfile;
MEMBER
------------------------------------
C:\ORACLE\ORADATA\ORACLE\REDO03.LOG
C:\ORACLE\ORADATA\ORACLE\REDO02.LOG
C:\ORACLE\ORADATA\ORACLE\REDO01.LOG
위에서 확인된 3 종류의 화일들을 백업받으면 됩니다.
오라클은 반드시 SHUTDOWN된 상태이어야 합니다
항상은 아니지만 필요에 따라서는 파라미터(init<SID>.ora) 파일까지 받아두는 것이 좋습니다.
혹시 파라미터 파일이 없어지거나 잘못 수정한 경우에 유용하게 백업할 수 있겠죠..
▣ 예제
복구(오프라인복구)
Offline백업에 대한 복구는 장애가 발생한 시점까지가 아니라, 가장 최근의 백업시점까지만 복구가 가능 합니다. 이게 가장 큰 단점이죠. 가장 최근 백업 시점에서 현 시점까지의 데이터를 모두 잃어 버리게 됩니다.
오프라인 복구 방법은 아래와 같습니다.
동일한 디스크에 위치한 데이터파일 복구
1. DB를 shutdown abort로 닫습니다.
2. 백업해두었던 datafile, redo log파일, control파일, parameter파일(init.ora) 들을 현재의 DB데이터파일들이 위치한 곳으로 이동 시킵니다.
3. startup mount수행 합니다.
4. alter database open resetlos수행
상이한 디스크에 위치한 데이터파일 복구
만일 디스크가 교체될 수 없는 경우, 파일들을 다른 디스크로 이동시켜 복구한다.
1. DB를 shutdown abort로 닫는다.
2. 백업해두었던 datafile, redo log파일, control파일, parameter파일(init.ora), 패스워드파일(orapwSID) 들을 다른 디스크로 이동
3. 패러미터파일에서 control_files 파라미터터를 수정 합니다.
4. startup mount exclusive수행
5. 새로운 디스크에 위치한 데이터파일들의 위치를 control파일에 갱신
alter database rename file '/u01/oracle/data/data01.dbf' to '/u02/oracle/data/data01.dbf'
6. DB백업(형식적인 절차)
7. alter database open resetlogs수행
'DataBase > Oracle' 카테고리의 다른 글
[펌]DB에 등록된 유저의 정보와, 유저별 Object 정보 조회 (0) | 2008.08.08 |
---|---|
DATABASE LINK 사용 방법 (0) | 2008.08.08 |
[퍼옴]CHAR 와 VARCHAR2 의 차이 (0) | 2008.08.08 |
[퍼옴]Ampersand나 특수 문자를 갖는 데이타를 insert하는 방법 (0) | 2008.08.08 |
[퍼옴]한글을 2byte로 계산하여 리턴 받으려면(LENGTH와 LENGTHB함수) (0) | 2008.08.08 |