테스트 환경에서 일어났던 일이다.
CentOS 5.6 64bit, LVM을 안쓰고 파티션만으로 진행했던 내용.
RMAN> report schema;
Report of database schema for database with db_unique_name ORCL
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 820 SYSTEM *** /oradata/orcl/system01.dbf
2 590 UNDOTBS1 *** /oradata/orcl/undotbs01.dbf
3 460 SYSAUX *** /oradata/orcl/sysaux01.dbf
4 6 USERS *** /oradata/orcl/users01.dbf
5 100 EXAMPLE *** /oradata/orcl/example01.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 75 TEMP 32767 /oradata/orcl/temp01.dbf
RMAN> copy datafile 1 to '/dev/raw/raw1';
Starting backup at 27-DEC-12
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1 device type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=/oradata/orcl/system01.dbf
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 12/27/2012 12:58:11
ORA-19504: failed to create file "/dev/raw/raw1"
ORA-27042: not enough space on raw partition to fullfill request
Additional information: 3
--------------------------------------------------------------------------------------
[oracle@centos5 orcl]$ du -h system*
821M system01.dbf
--------------------------------------------------------------------------------------
[root@centos5 ~]# fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-300, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-300, default 300): +850M
--------------------------------------------------------------------------------------
???????????????????????????????????? Why! What!
나는 820MB를 보고 raw1을 850MB정도를 잡았는데 왜 공간이 부족하다고 나오는지 이해하지 못하였다.
--------------------------------------------------------------------------------------
추가로 dd 결과
[oracle@centos5 orcl]$ dd if=/oradata/orcl/system01.dbf of=/dev/raw/raw1 bs=8k
dd: writing `/dev/raw/raw1': No space left on device
104419+0 records in
104418+0 records out
855396864 bytes (855 MB) copied, 40.0186 seconds, 21.4 MB/s
--------------------------------------------------------------------------------------
추정되는 원인: fdisk시 +850M가 가져오는 결과가 이상한 것으로 판단
850 * 1024가 아닌 850 * 1000 으로 계산하는 것 같다. MB가 아닌 M만 써있는 것과
이번 결과들이 이 추정을 뒷받침해주고 있다.
[root@centos5 ~]# fdisk /dev/sdc1
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
Command (m for help): p
Disk /dev/sdc1: 855 MB, 855396864 bytes
255 heads, 63 sectors/track, 103 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
855MB라고 써있으나 855396864/1024/1024 = 815.77001953125 로 820mb도 되지 않는다.
-------------------------------------------------------------------------------------
그럼 850 * 1024 * 1024 = 891289600 = 891M 다시 파티션해보았다.(이전 파티션은 다 삭제완료)
byte값인 891289600으로도 진행해 보았으나 value out of range 에러 나타난다. 아니 왜????
[root@centos5 ~]# fdisk /dev/sdc
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-300, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-300, default 300): +891289600
Value out of range.
Last cylinder or +size or +sizeM or +sizeK (1-300, default 300): +890M
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
이후로 정상 성공
'TroubleShoot' 카테고리의 다른 글
ORA-01545: rollback segment 'RBS1' specified not available (0) | 2013.03.08 |
---|---|
TNS-12516 (0) | 2013.01.24 |
ORA-00845: MEMORY_TARGET not supported... in LINUX (0) | 2013.01.17 |
11.2.0.1 shutdown hang (0) | 2012.12.21 |
32bit<->64bit 이관 후 추가 작업 (0) | 2012.12.21 |