|
IOTN :: Field Book :: ORACLE 
 |
dd copy datafile raw device , filesystem
|
ÃÖ±æÈ£
[LIST]
|
2009-09-07 13:02:35, Á¶È¸ : 81,802 |

Ãß°¡
ls *dbf *log *ctl | awk '{printf("dd if=%s of=%s.dd count=10 bs=4k\n",$1,$1)}'
ls *dbf *log *ctl | awk '{printf("dd if=%s.dd of=%s count=2 bs=4k conv=notrunc\n",$1,$1)}'
alter system dump logfile '/oracle/redo_raw.dbf';
$ORACLE_HOME/bin/dbfsize <Oracle Datafile ¸í>
% dd if=<raw device name> of=<filesystem name> bs=<BlockSize> skip=1
% dd if=<filesystem name> of=<raw device name> bs=<BlockSize> seek=1
Ç÷§Æû LVCB
Solaris 0
HP-UX 0
AIX 4KB
True64 64KB
Linux 0
Windows 0
1. raw device¿¡´Â LVCB(Logical Volume Control Block)°¡ ÀÖÁö¸¸
file system¿¡´Â ¾øÀ½.
- bs : ÆÄÀÏ ÀÔÃâ·ÂÀÇ block(¹öÆÛ) Å©±â
- skip : ÀÔ·Â ÆÄÀÏ¿¡¼ ó¸®ÇÏÁö ¾Ê°í Åë°úÇÒ ºí·ÏÀÇ °³¼ö
(Raw Device to Filesystem º¹»ç ½Ã ÁöÁ¤ÇØ¾ß ÇÔ)
- seek : Ãâ·Â ÆÄÀÏ¿¡¼ ó¸®ÇÏÁö ¾Ê°í Åë°úÇÒ ºí·ÏÀÇ °³¼ö
(Filesystem to Raw Device º¹»ç ½Ã ÁöÁ¤ÇØ¾ß ÇÔ)
- count : º¹»çÇÒ È¸¼ö or ºí·ÏÀÇ °³¼ö (»ý·« ½Ã ¸ðµç µ¥ÀÌÅÍ º¹»ç )
(Raw Device , Filesystem º¹»ç ½Ã ¹Ýµå½Ã ¸í½ÃÇØ¾ß ÇÔ,
±× ÀÌ¿ÜÀÇ °æ¿ì´Â »ý·« °¡´É)
2. dbfsize·Î È®ÀÎ
$ORACLE_HOME/bin/dbfsize <Oracle Datafile ¸í>
[file system °á°ú]
/data05/TESTDB] dbfsize UNDO01_01.dbf
Database file: UNDO01_01.dbf
Database file type: file system : File Type
Database file size: 128000 8192 byte blocks :8192 byte BlockÀÌ 128000 °³
[raw device °á°ú]
Database file type: raw device : File Type
Database file size: 1408 8192 byte blocks : 8192 byte BlockÀÌ 1408 °³
¡Ø dbsize·Î Á¶È¸ÇÑ °á°ú(Dictionary View¿¡¼ select·Î Á¶È¸ÇÑ
block ¼öµµ ¸¶Âù°¡Áö)¿¡´Â Datafile Header Block ¹× LVCB°¡ Æ÷ÇÔµÇÁö ¾ÊÀ½
´ÙÀ½°ú °°Àº °æ¿ì¿¡´Â ÆÄÀÏÀÌ ¼Õ»óµÈ °æ¿ìÀ̹ǷΠ´Ù½Ã º¹»ç
Header block file size is bad; trying raw file format...
Header block magic number is bad
3. Âü°í»çÇ×
1) Raw Device ¿¡¼ FilesystemÀ¸·Î º¯È¯
dd if=/dev/rv_data001 of=/data01/TESTDB/data001.dbf bs=4096
skip=1 count=2818
2) Filesystem ¿¡¼ Raw Device·Î º¯È¯
dd if=/data01/ORA01/data001.dbf of=/dev/rv_data001 bs=4096 seek=1
3) Raw Device ¿¡¼ Raw Device·Î º¹»ç
dd if=/dev/re_data001 of=/dev/rv_data001_bk bs=4096 skip=1 seek=1
4) Filesystem ¿¡¼ file systemÀ¸·Î º¹»ç
cp /data01/TESTDB/data001.dbf /data01/TESTDB/data001.bak
http://blog.naver.com/itisksc/30046860726 | 44.192.254.173
|
|
 |
|
 |
[ SunOS 5.8 sun4u sparc ]
[ Oracle 9.2.0.8 ]
[ filesystem to raw device ]
$ dbfsize /oracle/system/tools01.dbf
Database file: /data/system/tools01.dbf
Database file type: file system
Database file size: 83840 8192 byte blocks
SQL> alter database datafile '/data/system/tools01.dbf' offline;
SQL> !dd if=/data/system/tools01.dbf of=/dev/rdsk/c0t0d0s1 bs=8192 count=83840
83840+0 ·¹ÄÚµå ÀÔ·Â
83840+0 ·¹ÄÚµå Ãâ·Â
SQL> alter database rename file '/data/system/tools01.dbf' to '/dev/rdsk/c0t0d0s1';
SQL> recover datafile '/dev/rdsk/c0t0d0s1';
SQL> alter database datafile '/dev/rdsk/c0t0d0s1' online;
[ raw device to filesystem ]
$ dbfsize /dev/rdsk/c0t0d0s1
Database file: /dev/rdsk/c0t0d0s1
Database file type: raw device
Database file size: 83840 8192 byte blocks
SQL> alter database datafile '/dev/rdsk/c0t0d0s1' offline;
SQL> !dd if=/dev/rdsk/c0t0d0s1 of=/data/system/tools01.dbf bs=8192 count=83840
83840+0 ·¹ÄÚµå ÀÔ·Â
83840+0 ·¹ÄÚµå Ãâ·Â
SQL> alter database rename file '/dev/rdsk/c0t0d0s1' to '/data/system/tools01.dbf';
SQL> recover datafile '/data/system/tools01.dbf';
ORA-00283: recovery session canceled due to errors
ORA-01110: data file 2: '/data/system/tools01.dbf'
ORA-01122: database file 2 failed verification check
ORA-01110: data file 2: '/data/system/tools01.dbf'
ORA-01200: actual file size of 83839 is smaller than correct size of 83840 blocks
SQL> !dd if=/dev/rdsk/c0t0d0s1 of=/data/system/tools01.dbf bs=8192 count=83841
83841+0 ·¹ÄÚµå ÀÔ·Â
83841+0 ·¹ÄÚµå Ãâ·Â
14:31:23 SQL> recover datafile '/data/system/tools01.dbf';
Media recovery complete.
14:31:38 SQL> alter database datafile '/data/system/tools01.dbf' online;
Database altered. |
2009-09-08 20:50:44
|
 |
|
 |
$ rawutl -s /dev/vx/rdsk/oracle/system.dbf [ ¿î¿µÁßÀÎ lv size 2G, datafile size 2G ]
2148532224 [ 2G ]
$ rawutl -s /dev/vx/rdsk/oracle/r_system.dbf [ Àӽà º¹±¸ lv size 3G, datafile size 2G ]
3221225472 [ 3G ]
$ dbfsize /dev/vx/rdsk/oracle/system.dbf
Database file: /dev/vx/rdsk/oracle/system.dbf
Database file type: raw device
Database file size: 262144 8192 byte blocks
$ dbfsize /dev/vx/rdsk/oracle/r_system.dbf
Database file: /dev/vx/rdsk/oracle/r_system.dbf
Database file type: raw device
Database file size: 262144 8192 byte blocks
SQL> select file#,name,bytes from v$datafile where file#=1;
FILE# NAME BYTES
---------- ---------------------------------------- ----------
1 /dev/vx/rdsk/oracle/system.dbf 2147483648 / 8192 = 262144 +1 = 262145
$ dd if=/dev/vx/rdsk/oracle/r_system.dbf of=system.dbf bs=8192 count=262145
$ ls -al
-rw-r--r-- 1 oracle dba 2147491840 9¿ù 7ÀÏ 13:28 system.dbf
$ dbfsize system.dbf
Database file: system.dbf
Database file type: file system
Database file size: 262144 8192 byte blocks
$ dd if=/dev/vx/rdsk/oracle/r_system.dbf of=system.dbf count=262144
$ ls -al
-rw-r--r-- 1 oracle dba 134217728 9¿ù 7ÀÏ 13:31 system.dbf [ 134217728 / 262144 = 512 block ] |
2009-09-08 20:56:16
|
 |
|
 |
for AIX
select 'dd if='||f.name||' of='||lower(t.name)||
row_number() over (partition by t.name order by f.file# )||
'.dbf bs=8192k #'||t.name||' '||f.file#
from v$datafile f,v$tablespace t where t.ts#=f.ts#;
select 'dd if='||f.name||' of='||lower(t.name)||
row_number() over (partition by t.name order by f.file# )||
'.dbf bs=8192k count='||to_char(((BLOCKS*BLOCK_SIZE)/4096)+4906)||
' #'||t.name||' '||f.file#
from v$datafile f,v$tablespace t where t.ts#=f.ts#;
or
select 'dd if='||fname||' of='||lower(tname)||
decode(sign(rn -9),1,'','0')||rn||
'.dbf bs=8192k count='||to_char(((BLOCKS*BLOCK_SIZE)/4096)+4906)||
' #'||tname||' '||file#
from (select f.name fname,t.name tname,f.file#,blocks,block_size,
row_number() over (partition by t.name order by f.file# ) rn
from v$datafile f,v$tablespace t where t.ts#=f.ts#);
select 'dd if='||member||' of=redo'||group#||'.log bs=4k count='||to_char(((lesiz*lebsz)/4096)+4096)
from v$logfile f, x$kccle l where f.group#=l.lenum;
select 'dd if='||name||' of=control.ctl bs=4k count='||to_char(((file_size_blks*block_size)/4096)+4096)
from v$controlfile where rownum=1;
wait: there are no child processes.
°°Àº ¼¹ö¿¡¼ test ³ª±âµµÇÏ°í ¾È³ª±âµµÇÔ.
ÆÄÀÏÅ©±â °°°í rename ¼º°ø |
2014-10-29 06:03:49
|
 |
|
 |
-- DSVM prime
vxprint -g data -m gj_v4_001_5g|grep devsubtype
devsubtype=dsvmprime
dd if=/dev/vx/rdsk/data/gj_v4_001_5g of=/data/oradata/TSADMI_04.dbf bs=8192k
-- DSVM
vxprint -g data -m gj_v3_013_10g|grep devsubtype
devsubtype=dsvm
dd if=/dev/vx/rdsk/data/gj_v3_013_10g of=/data/oradata/TSADMI_05.dbf bs=4096 skip=1 count=2560002 |
2015-03-19 16:47:06
|
Copyright 1999-2023 Zeroboard / skin by ÃÖ±æÈ£(gilho.kr@gmail.com)
|
|
|