[오라클]Raw 디바이스와 데이터 파일 마이그레이션
No. 11747
RAW DEVICE와 FILE SYSTEM 간에 오라클 데이터화일 이동하기
======================================================
유닉스 명령이 dd를 이용하여 오라클 데이터화일을 Unix File System과 Raw
Device 간에 이동할 수 있으나, 플랫폼 별 Raw Device의 특성으로 인하여 주의할
점이 있다. 만일 잘못된 이동으로 인하여 데이터베이스가 기동하지 못하면,
ORA-7366 (sfifi: invalid file, file does not have valid header block.)
에러가 발생할 수 있다.
예를 들어 Digital unix의 경우는 raw device에 64k OS 헤더가 필요하므로 dd
명령어 옵션 중 iseek와 oseek를 활용하여야 한다.
다음은 예제를 통하여 데이터화일을 Raw Device에서 Unix File System으로
이동하는 절차이다.
(운영 현황)
- 현재의 위치: /dev/rdsk/c0t15d0s7
- 이동할 위치: /oracle/file/system.dbf
- 화일의 크기: 488636416 bytes <--- V$DATAFILE.BYTES column 값!
- DB_BLOCK_SIZE: 2048 bytes
(준비 단계)
1. Oracle 블럭 수 계산:
BYTES / DB_BLOCK_SIZE = 488636416 / 2048 = 238592 (블럭)
2. O/S file header 블럭 추가:
238592 + 1 = 238593 (블럭)
: "ls -l /oracle/file/system.dbf" 명령으로 확인 가능하며, O/S file
header는 1블럭으로 항상 일정함.
3. Raw Device OS header 블럭 계산: raw device (os block) header size
64K / DB_BLOCK_SIZE = 65536 / 2048 = 32 (블럭)
: 사용할 dd 명령어 중 블럭의 크기를 DB_BLOCK_SIZE(2048바이트)로 할
예정이므로 2048로 나누어야 함.
(명령어 형식)
$ dd if=<raw device> of=<UFS file> bs=<oracle blocksize>
iseek=<blocks to skip> count=<total count>
(명령어 수행 절차)
(1) SVRMGR> STARTUP MOUNT
(2) SVRMGR> !dd if=/dev/rdsk/c0t15d0s7 of=/oracle/file/system.dbf bs=2048 iseek=32 count=238593
(3) SVRMGR> ALTER DATABASE RENAME FILE '/dev/rdsk/c0t15d0s7' TO
'/oracle/file/system.dbf';
(4) SVRMGR> ALTER DATABASE OPEN;
========================================================================
반대로 Unix File System에서 Raw Device로 이동하는 명령어 형식은 아래와 같다.
(명령어 형식)
$ dd if=<UFS file> of=<raw device> bs=<oracle blocksize> \
oseek=<blocks to skip> count=<total count>
유사한 방식으로 데이타 화일 뿐 아니라 리두 로그 화일도 이동할 수 있다.
[주의] Raw Device의 블럭 헤더의 크기는 OS마다 다를 수 있으므로 플랫폼
벤더사에 미리 확인한 후 작업하여야 한다.
[출처] RAW DEVICE와 FILE SYSTEM 간에 오라클 데이터화일 이동하기 (ProDBA) |작성자 산타
'01.오라클 > 002.DB 마이그레이션' 카테고리의 다른 글
[오라클]Characterset 변경 (0) | 2013.02.20 |
---|---|
[오라클]Full export / import (0) | 2013.02.20 |
[오라클]Undo Tablespace 변경 (0) | 2012.12.19 |
[오라클]Voting Disk 이관 (0) | 2012.12.19 |
[오라클]Templorary File 변경 (0) | 2012.12.19 |