블로그 이미지
꿈을 꾸는 꾸러기 YBHoon

카테고리

분류 전체보기 (81)
Oracle (71)
Installation (12)
SQL & PL/SQL (19)
Administration (12)
Backup & Recovery (14)
Tuning (10)
Modeling (0)
Architecture (0)
Real Application Clu.. (3)
Dataguard (0)
Etc (1)
운영체제 (7)
ETC (0)
Study (3)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

태그목록

최근에 올라온 글

'Oracle/Backup & Recovery'에 해당되는 글 14건

  1. 2010.04.20 Data Recovery
  2. 2010.04.15 RMAN
  3. 2010.03.18 Backup - RMAN
  4. 2010.03.18 Recovery - Flashback
  5. 2010.03.16 Backup - Datapump
  6. 2010.03.16 Backup - DB Cloning
  7. 2010.03.15 Backup - export & import
  8. 2010.03.15 Recovery - Control File
  9. 2010.03.12 Recovery - Redo Log 1
  10. 2010.03.11 Recovery - Using backup control file

- Recover ; sqlplus 명령어

- recover tablespace ; open 상태에서만 사용
- recover datafile ; mount, open 상태에서 사용가능

- RMAN ; set new name / user-managed ; alter database rename file

- 불완전 복구 후 open시 ; alter database open resetlogs;
=> 모든 scn을 1로 통일

'Oracle > Backup & Recovery' 카테고리의 다른 글

RMAN  (0) 2010.04.15
Backup - RMAN  (0) 2010.03.18
Recovery - Flashback  (0) 2010.03.18
Backup - Datapump  (0) 2010.03.16
Backup - DB Cloning  (0) 2010.03.16
Posted by YBHoon
, |

RMAN

Oracle/Backup & Recovery / 2010. 4. 15. 12:43


- Data, Control, Archive만 RMAN으로 백업이 됨
=> online redo는 commit이 된 것을 Data에 내려쓰고서 백업하게 되므로 별도로 백업하지 않음

- target DB의 control file을 RMAN의 metadata라고 함 (DB 구조 정보)
=> 용량의 한계로 7일마다 갱신함 / 7일 이전의 내용은 소실하므로 RMAN이 별도의 DB 구성 (catdb)
=> Recovery Catalog Database를 생성해서 control file의 메타 데이터를 복사해옴 (다른 DB의 메타데이터도 보관 가능)
=> 자주 사용하는 script도 catdb에 보관할 수 있음 (대규모 DB일 경우 가능)

- RMAN의 repository에 메타 정보를 저장함

- 블록 레벨의 백업이 가능하다. (증분 백업)
=> 블록 변경 사항을 추적해서 저장 가능하므로 속도 향상

- channel ; RMAN 이 데이터베이스와 백업 미디어를 연결하는 통로
=> 다중화를 통해 속도를 향상 시킬 수 있음

- Flash Recovery Area (FRA) 에 메타 데이터 보관 ; 위치, 사이즈, 사용량을 모니터링 해야함
=> Archive / Flashback / RMAN 의 기본 저장소
=> OMF에 의해 자동으로 생성

- tablespace point in time recovery (TSPITR) ; 특정 시점으로 복구하기 위함

- MML ; 테입에 백업하기 위한 소프트웨어적인 장치

- 수동 채널 설정을 하면 우선으로 적용 / 자동 채널이 기본적으로 할당됨

- backup archivelog all (모두 복원) + delete all input; (백업된 내용은 삭제) => FRA의 공간을 확보하기 위함

- configure ; 기본설정 파라미터를 변경할 수 있음 / 자동백업도 가능

- retention policies ; 두가지 조건 중에 하나만 선택하여 변경함
=> recovery window ; 얼마나 오래동안 백업을 유지할 것인가
=> redundancy ; 몇개의 백업 파일을 중복으로 만들어 둘 것인가

- configure ... clear ; 기본값으로 초기화

- 복구 미디어에 미리 연결(채널 할당)되어 있어야 backup, restore, recover가 가능하다.

- RMAN의 백업 형태
=> copy ; 테이블 스페이스를 그대로 복사해 옴
=> backup set ; 사용된 블록에 대해서만 백업함 (조각의 크기를 할당해서 분할하여 백업 가능 => 저장소 분할 가능)

- archivelog는 별도의 백업셋으로 만들어진다 (이미 백업 받은 내용이므로 database와는 별도로 백업셋 구성)

- pipe ; input과 output을 위한 전용 통로

- rename & switch ; 응급 상황시 백업 copy가 있는 곳으로 tbs의 경로를 옮기고 control file을 셋팅함

- list ; 백업이 된 내용을 조회함 / report ; 백업 할 내용들을 조회함

'Oracle > Backup & Recovery' 카테고리의 다른 글

Data Recovery  (0) 2010.04.20
Backup - RMAN  (0) 2010.03.18
Recovery - Flashback  (0) 2010.03.18
Backup - Datapump  (0) 2010.03.16
Backup - DB Cloning  (0) 2010.03.16
Posted by YBHoon
, |


- RAC를 운영하기 위해 ASM을 사용함 => ASM의 백업은 RMAN을 사용

- open 상태에서는 archive mode 상태에서 백업 받아야함

- 전체 블록 대신 사용하는 블록만 백업을 받을 수 있음 (용량 절약)

- 증분 백업 ; 변경된 부분만 백업받기 가능

- 분할 백업 ; 용량을 분할하여 백업받기 가능

- 복구 카달로그 ; 백업할 내용이 어디에 있는지를 저장

- 채널 ; 백업을 받는 장소

- 접속하는 방법
$ su - ; root 접속
# which rman ; rman이 있는 위치
# cp /home/oracle/product/10g/bin/rman /usr/x11R6/bin/rman ; 실행 가능 파일을 rman 위치로 복사
# exit
$ rman target /
> congifure default device type to disk;

- 파일 크기가 2GB를 넘어가면 성능이 떨어짐 (특히 UNIX 환경) ; 백업 피스로 분할해서 백업하면 됨

- 차등 증분 백업 ; 이전의 백업받은 내용이 현재의 백업 레벨보다 낮거나 같을 경우 앞으로 가지 않고 그 시점에서 백업

- 누적 증분 백업 ; 현재의 레벨보다 작을 경우에만 그 시점에서 백업, 그렇지 않을 경우 이전 백업 레벨로 감

- 백업 문제 실수 ; 채널을 3개 할당했으나 백업 과정에서 지정하지 않아서 오류 발생
run {
allocate channel c1 device type disk maxpiecesize = 10M;
allocate channel c2 device type disk maxpiecesize = 10M;
allocate channel c3 device type disk maxpiecesize = 10M;
backup taplespace sysaux
format '/data/backup/rman/%d_%p_%t'; => 채널 지정이 안됨
backup taplespace example
format '/data/backup/close/%d_%p_%t'; => 채널 지정이 안됨
backup taplespace system
format '/data/backup/open/%d_%p_%t'; => 채널 지정이 안됨
}

- 문제 정답
run {
allocate channel c1 device type disk maxpiecesize = 10M;
allocate channel c2 device type disk maxpiecesize = 10M;
allocate channel c3 device type disk maxpiecesize = 10M;
backup
tablespace sysaux channel c1
format '/data/backup/rman/%d_%p_%t'
taplespace example channel c2
format '/data/backup/close/%d_%p_%t'
taplespace system channel c3
format '/data/backup/open/%d_%p_%t';
}

- 백업 복구 문제 1
run {
allocate channel c1 device type disk
maxpiecesize=500M;
backup database channel c1
format '/data/backup/rman/%d_%p_%t';
}

- 백업 복구 문제 2
$ rman target /
> startup mount
> report schema;
using target database control file instead of recovery catalog
Report of database schema

List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    490      SYSTEM               ***     /data/temp1/system01.dbf
3    250      SYSAUX               ***     /data/temp1/sysaux01.dbf
4    11       USERS                ***     /data/temp1/users01.dbf
5    100      EXAMPLE              ***     /data/temp1/example01.dbf
6    20       INSA                 ***     /data/temp1/insa01.dbf
7    10       UNDO                 ***     /data/temp1/undo01.dbf

> run {
restore datafile 4; => 전체를 복원할 경우 restore database
recover datafile 4; => 전체를 복구할 경우 recover database
alter database open; => mount만 시켰으므로 open시킴
}

- 백업 복구 문제 3
> run {
sql 'alter tablespace user offline immediate'; => 복구할 tblspace를 먼저 off시킴 
set newname for datafile 4 to '/data/temp/user01.dbf';
restore datafile 4;
switch datafile 4;
recover datafile 4;
sql 'alter tablespace users online'; => 복구한 tblspace를 on함
}

- redo log 문제
alert_testdb.log에서 장애 직전의 시퀀스 번호 확인
$ cd /home/oracle/admin/testdb/bdump

> run {
set until sequence 시퀀스번호 thread 1;
alter database mount;
restore databae;
recover database;
alter database open resetlogs;
}

-
run {
sql 'alter session set nls_dataformat="YYYY-MM-DD:HH24:MI:SS"'; => 한국내의 날짜 시간 세팅과 다르므로 맞춰야 함
set until time='2010-03-19:12:47:23';
restore database;
recover database;
alter database open resetlogs;
}

'Oracle > Backup & Recovery' 카테고리의 다른 글

Data Recovery  (0) 2010.04.20
RMAN  (0) 2010.04.15
Recovery - Flashback  (0) 2010.03.18
Backup - Datapump  (0) 2010.03.16
Backup - DB Cloning  (0) 2010.03.16
Posted by YBHoon
, |

- 논리적인 장애에 대한 복구 방법 (복구가 안되는 경우도 있음 ; 불완전복구 - 대부분 복구 가능)

- 3가지 종류 ; DB, Table, Row
=> Row Level ; 특정 Row만 원하는 시점으로 복구할 수 있음
=> Table Level ; 특정 Table만 원하는 시점으로 복구할 수 있음
=> DB Level ; 모든 Table을 원하는 시점으로 복구할 수 있음 - truncate table, drop user (기본 off 모드)

- undo data를 활용함 / undo가 덮어씌였을 경우 복구 불가

- flashback log를 이용해 복구함 (10g 설치시 초기에 2GB 할당)
=> flashback log 파일이 오히려 문제를 일으킬 수 있음

- version query ; 예전 값을 확인하는 쿼리 => 누구나 사용 가능

- transaction query ; 예전 값으로 복원하는 쿼리 => 권한을 두어 제한함

- 사용 안되는 경우
=> external table, temp table, fixed table, cluster, view
=> DDL로 구조가 바뀐 경우
=> undo retention
=> commit을 안한 경우 ; 잘못된 commit을 수정하기 위함

- 휴지통은 stack 구조이므로 나중에 지워진 것이 먼저 복구됨

- DB leve 요구사항
=> parameter file에서 on 시켜야함
=> archive mode on
=> DB는 mount 상태여야 함

'Oracle > Backup & Recovery' 카테고리의 다른 글

RMAN  (0) 2010.04.15
Backup - RMAN  (0) 2010.03.18
Backup - Datapump  (0) 2010.03.16
Backup - DB Cloning  (0) 2010.03.16
Backup - export & import  (0) 2010.03.15
Posted by YBHoon
, |

- export vs. datadump

export datadump
저속 고속
분할불가 분할가능
시간예측불가 시간예측가능
일시정지불가 일시정지가능

- 10g 이상에서만 가동

- HDD에 직접 액세스 불가

- 병렬 처리를 위해 최소 3개의 CPU 필요 ; 2개는 작업, 1개는 작업 분할 (짝수로 장착하므로 4개 이상)

'Oracle > Backup & Recovery' 카테고리의 다른 글

Backup - RMAN  (0) 2010.03.18
Recovery - Flashback  (0) 2010.03.18
Backup - DB Cloning  (0) 2010.03.16
Backup - export & import  (0) 2010.03.15
Recovery - Control File  (0) 2010.03.15
Posted by YBHoon
, |

- 별도의 DB로 복제하여 시간 기반 불완전 복구 모드를 활용

- 기존의 DB를 shutdown하지 않고 별도의 DB로 clone하여 복구함
=> 사용중인 parameter(pfile), control, data, redo를 가져와야 함
=> pfile 복제 후 내용 변경 / control file은 새로 생성 / data 백업 받은 파일 / redo 새로 생성
=> archive log를 복사하여 활용 (당연히 archive log를 사용할 때만 가능)

- 실습
D 시점에서 삭제된 test2 테이블을 clone DB를 이용해서 복구하세요

A. 전체백업 => ok
B. Clone2 Tablespace 생성 => ok
C. Test2 Table 생성 / 데이터 입력 => ok (반드시 log switch)
D. Test2 Table 삭제 ; 지워지기 직전 시간 (2010-03-17:10:30:10) => ok
E. Clone2 Tablespace 삭제 (redo, archive 활용) => ok

'Oracle > Backup & Recovery' 카테고리의 다른 글

Recovery - Flashback  (0) 2010.03.18
Backup - Datapump  (0) 2010.03.16
Backup - export & import  (0) 2010.03.15
Recovery - Control File  (0) 2010.03.15
Recovery - Redo Log  (1) 2010.03.12
Posted by YBHoon
, |

- open 상태에서 export를 받음 (개발 서버와 같이 open이 유지되어야 하는 상황) / 속도가 느리다

- sys 계정으로 만들어진 테이블은 export가 안됨

- export된 파일은 binary file이므로 직접적인 편집은 안됨 (! 절대금지)

- export 받을 사용자의 temporary tablespace가 있어야만 백업 가능
=> create temporary tablespace temp1 tempfile '/data/temp/temp1.dbf' size 10M; 생성
=> alter user scott temporary tablespace temp1; 유저 지정

- 전체를 백업받기 위해서는 system 유저로 받아야 한다

- no archive 상태에서 백업을 받을 때 사용한다 ; archive가 많이 발생해서 실제로 운영하지 못할 경우

'Oracle > Backup & Recovery' 카테고리의 다른 글

Backup - Datapump  (0) 2010.03.16
Backup - DB Cloning  (0) 2010.03.16
Recovery - Control File  (0) 2010.03.15
Recovery - Redo Log  (1) 2010.03.12
Recovery - Using backup control file  (0) 2010.03.11
Posted by YBHoon
, |

- 경로가 잘못 지정 ; 바른 경로로 지정해줌

- 다중화된 컨트롤 파일 중 하나가 에러 ; 가장 최신 버전의 파일로 낮은 것들을 덮어씀

- 모두 삭제 또는 old control file 에러 ; control file을 재생성해야 함
=> alter database backup controlfile to trace as '/home/oracle/re.sql'; (마운트가 된 상태에서 가능)
=> re.sql 스크립트에 불필요한 부분을 지우고, 빈 줄을 삭제해야함 (빈 줄이 있을 경우 에러 발생)
=> redo log 파일은 스크립트에 지정된 경로에 생성되나 data file(기존 정상 파일)은 스크립트 상의 경로에 위치해야 함
=> parameter file에 지정된 경로에 control file이 생성된다. (기존 파일에 덮어 쓰여짐)

- 스크립트 예제 (오류가 없는 상태에서 DB명 변경시 또는 파라미터 변경시 사용함)
=> 마운트가 된 상태에서만 생성될 수 있기에 미리 만들어 놓거나 외워둬야 한다

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "TESTDB" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16 ; 변경 가능
    MAXLOGMEMBERS 5 ; 변경 가능
    MAXDATAFILES 100 ; 변경 가능
    MAXINSTANCES 8 ; 변경 가능
    MAXLOGHISTORY 292 ; 변경 가능
LOGFILE ; 해당 경로에 log 파일이 새로 생성됨
  GROUP 1 (
    '/home/oracle/disk5/redo01_b.log',
    '/home/oracle/disk4/redo01_a.log'
  ) SIZE 5M,
  GROUP 2 (
    '/home/oracle/disk4/redo02_a.log',
    '/home/oracle/disk5/redo02_b.log'
  ) SIZE 5M,
  GROUP 3 (
    '/home/oracle/disk4/redo03_a.log',
    '/home/oracle/disk5/redo03_b.log'
  ) SIZE 5M
-- STANDBY LOGFILE
DATAFILE ; 반드시 정상 파일이 해당 경로에 위치해야한다.
  '/data/temp1/system01.dbf',
  '/data/temp1/ts_a.dbf',
  '/data/temp1/sysaux01.dbf',
  '/data/temp1/users01.dbf',
  '/data/temp1/example01.dbf',
  '/data/temp1/insa01.dbf',
  '/data/temp1/undo01.dbf',
  '/data/temp1/ts_b.dbf',
  '/data/temp1/ts_c.dbf',
  '/data/temp1/test01.dbf'
CHARACTER SET KO16KSC5601

'Oracle > Backup & Recovery' 카테고리의 다른 글

Backup - DB Cloning  (0) 2010.03.16
Backup - export & import  (0) 2010.03.15
Recovery - Redo Log  (1) 2010.03.12
Recovery - Using backup control file  (0) 2010.03.11
Recovery - Time base recover  (0) 2010.03.10
Posted by YBHoon
, |

- alert log 확인하는 법
~$ tail -f admin/testdb/bdump/alert_testdb.log ;

- inactive, active 상태에서 맴버 1개 손상
=> 해당 log member를 지우고 새로 추가함

- inactive, active 상태에서 그룹 전체가 손상 (archive on)
=> mount 상태에서 해당 그룹을 지우고 다시 생성

- inactive, active 상태에서 그룹 전체가 손상 (archive off)
=> 하나의 group에 문제가 생겨서 archiving이 안될 경우, 다른 그룹들도 archiving이 안됨 (주의!!!)
=> archive가 안된 로그 파일은 지우거나 덮어쓰기를 할 수 없음 (만약을 대비하기 위한 안전장치)
=> 이 경우 강제로 지우는 방법 "alter database clear unarchived logfile group 번호;"
=> DB가 꺼져있는 상태에서 claer 명령 실행 시 새로운 log file이 생성되고 DB 사용 가능
=> DB가 켜져있는 상태에서 clear 명령으로 만든 log 파일은 사용이 불가능하므로 그룹을 다시 만들어야 함

- current log가 open된 상탱서는 clear unarchived를 사용해서 임시 log를 생성 (바로 다시 만들어야 함)

- current log가 close된 상태에서 immediate로 닫은 경우 resetlogs로 복구
=> clear unarchived 명령으로는 복구가 안됨 (현재 current인 경우이고, mount 단계에서 log switch 불가하므로)
=> mount 상태에서 'alter database open resetlogs;'로 복구하며 open 시킴

- current log가 close된 상태에서 abrot로 닫은 경우
=> no arch, current인 경우 hidden parameter 활용 ; 실패할 경우 DB에 영구적인 장애를 초래 (성공률 50% 이하 위험!!!)

- 모든 group이 손상됨
=> shutdown이 된 상태에서 hidden parameter를 사용하면 open이 됨 (위험!!!)
=> open이 된 상태에서는 clear unarchived로 복구

'Oracle > Backup & Recovery' 카테고리의 다른 글

Backup - export & import  (0) 2010.03.15
Recovery - Control File  (0) 2010.03.15
Recovery - Using backup control file  (0) 2010.03.11
Recovery - Time base recover  (0) 2010.03.10
Recovery - Process  (0) 2010.03.09
Posted by YBHoon
, |


- drop tablespace하면 control file 안에 tblspace 정보가 삭제됨

- 복구를 위해 drop하기 이전이 ctrl file을 가져와서 사용해야 함 (redo는 최근 것으로 사용)
=> data와 ctrl의 SCN이 다르므로 충돌을 일으킴. 따라서, SCN 체크없이 시간을 기준으로 복구하도록 함
=> recover database until time '시간' using backup controlfile; 원하는 시간까지 복구를 하되 SCN 무시
=> (until time)이 없을 경우 최근의 SCN까지 복구가 이뤄짐

- 백업을 받을 때는 반드시 shutdown immediate로 DB를 내린 후에 실시함 (close backup)

- ctrl 파일에서 삭제된 tblspace의 경우에도 복구 가능함
=> 복구가 중단되며 임시 tblspace가 생성됨 (select name form v$datafile 로 검색 가능)
=> 임시로 생성된 tblspace를 create as로 변환해주고 다시 한번 복구실행

2010-03-11:12:42:01

2010-03-11:12:42:35

'Oracle > Backup & Recovery' 카테고리의 다른 글

Recovery - Control File  (0) 2010.03.15
Recovery - Redo Log  (1) 2010.03.12
Recovery - Time base recover  (0) 2010.03.10
Recovery - Process  (0) 2010.03.09
Backup - cold & hot  (0) 2010.03.08
Posted by YBHoon
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함