联系:手机/微信(+86 17813235971) QQ(107644445)
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
大家都知道新版本的odu可以在asm不启动的情况下挖数据文件,其实在新版本的dul中,也可以绕过asm挖数据文件,而且操作起来更加方便.
环境准备
SQL> select * from v$version; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod PL/SQL Release 10.2.0.1.0 - Production CORE 10.2.0.1.0 Production TNS for Linux: Version 10.2.0.1.0 - Production NLSRTL Version 10.2.0.1.0 - Production --查询asm disk SQL> select group_number,DISK_NUMBER,PATH 2 from v$asm_disk where group_number<>0; GROUP_NUMBER DISK_NUMBER PATH ------------ ----------- -------------------- 1 0 /dev/raw/raw2 1 1 /dev/raw/raw3 SQL> conn chf/xifenfei Connected. --创建测试表 SQL> create table t_xifenfei 2 as 3 select object_id,object_name from dba_objects where rownum<10; Table created. SQL> select * from t_xifenfei; OBJECT_ID OBJECT_NAME ---------- -------------------------------- 44 I_USER1 28 CON$ 15 UNDO$ 29 C_COBJ# 3 I_OBJ# 25 PROXY_ROLE_DATA$ 39 I_IND1 51 I_CDEF2 9 rows selected. --数据文件 SQL> select name from v$datafile; NAME ---------------------------------------------------------------------- +XIFENFEI/asm10g/datafile/system.256.786578479 +XIFENFEI/asm10g/datafile/undotbs1.258.786578481 +XIFENFEI/asm10g/datafile/sysaux.257.786578481 +XIFENFEI/asm10g/datafile/users.259.786578481 +XIFENFEI/asm10g/datafile/xff.265.786578851 --关闭数据库 SQL> shutdown immediate; ORA-01031: insufficient privileges SQL> conn / as sysdba Connected. SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> exit Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options --关闭asm [oracle@xifenfei home]$ export ORACLE_SID=+ASM [oracle@xifenfei home]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Fri Jun 22 00:18:18 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> shutdown immediate ASM diskgroups dismounted ASM instance shutdown SQL> exit Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options [oracle@xifenfei home]$ ps -ef|grep ASM oracle 18885 10980 0 00:18 pts/0 00:00:00 grep ASM [oracle@xifenfei home]$ ps -ef|grep ora_ oracle 18887 10980 0 00:18 pts/0 00:00:00 grep ora_
初始化参数配置
[oracle@xifenfei dul]$ vi init.dul db_block_size=8192 control_file = control.dul dc_segments=100000 osd_word_size = 32 osd_big_endian_flag=false osd_dba_file_bits=10 osd_c_struct_alignment=32 osd_file_leader_size=1 osd_word_size = 32 dc_columns=2000000 dc_tables=10000 dc_objects=1000000 dc_users=400 dc_segments=100000 control_file = control.dul db_block_size=8192 export_mode=false compatible=10 BUFFER=10485760
控制文件配置
[oracle@xifenfei dul]$ more control.dul disk /dev/raw/raw2 disk /dev/raw/raw3 0 1 +XIFENFEI/asm10g/datafile/system.256.786578479 1 2 +XIFENFEI/asm10g/datafile/undotbs1.258.786578481 2 3 +XIFENFEI/asm10g/datafile/sysaux.257.786578481 4 4 +XIFENFEI/asm10g/datafile/users.259.786578481 6 5 +XIFENFEI/asm10g/datafile/xff.265.786578851
使用dul恢复表测试
--启动dul [oracle@xifenfei dul]$ ./dul Data UnLoader: 10.2.0.5.13 - Internal Only - on Thu Jun 21 23:49:46 2012 with 64-bit io functions Copyright (c) 1994 2012 Bernard van Duijnen All rights reserved. Strictly Oracle Internal Use Only DUL: Warning: Recreating file "dul.log" Disk group XIFENFEI, dul group_cid 0 Discovered disk /dev/raw/raw2 as diskgroup XIFENFEI, disk number 0 size 784 Mb File1 starts at 2, dul_disk_cid 0 Discovered disk /dev/raw/raw3 as diskgroup XIFENFEI, disk number 1 size 7059 Mb without File1 meta data, dul_disk_cid 1 DUL: Warning: Dictionary cache DC_ASM_EXTENTS is empty DUL: Error: Filedir block not allocated, file does not exist DUL: Error: Could not load asm meta data for group XIFENFEI file 9 Oracle data file size 503324672, block size 8192 Found db_id = 123111609 Found db_name = ASM10G Oracle data file size 26222592, block size 8192 Oracle data file size 251666432, block size 8192 Oracle data file size 5251072, block size 8192 --加载数据字典 DUL> bootstrap; Probing file = 1, block = 377 . unloading table BOOTSTRAP$ DUL: Warning: block number is non zero but marked deferred trying to process it anyhow 57 rows unloaded DUL: Warning: Dictionary cache DC_BOOTSTRAP is empty Reading BOOTSTRAP.dat 57 entries loaded Parsing Bootstrap$ contents DUL: Warning: Recreating file "dict.ddl" Generating dict.ddl for version 10 OBJ$: segobjno 18, file 1 block 121 TAB$: segobjno 2, tabno 1, file 1 block 25 COL$: segobjno 2, tabno 5, file 1 block 25 USER$: segobjno 10, tabno 1, file 1 block 89 Running generated file "@dict.ddl" to unload the dictionary tables . unloading table OBJ$ 50806 rows unloaded . unloading table TAB$ 1560 rows unloaded . unloading table COL$ 54822 rows unloaded . unloading table USER$ 57 rows unloaded Reading USER.dat 57 entries loaded Reading OBJ.dat 50806 entries loaded and sorted 50806 entries Reading TAB.dat 1560 entries loaded Reading COL.dat 54822 entries loaded and sorted 54822 entries Reading BOOTSTRAP.dat 57 entries loaded DUL: Warning: Recreating file "dict.ddl" Generating dict.ddl for version 10 OBJ$: segobjno 18, file 1 block 121 TAB$: segobjno 2, tabno 1, file 1 block 25 COL$: segobjno 2, tabno 5, file 1 block 25 USER$: segobjno 10, tabno 1, file 1 block 89 TABPART$: segobjno 266, file 1 block 2121 INDPART$: segobjno 271, file 1 block 2161 TABCOMPART$: segobjno 288, file 1 block 2297 INDCOMPART$: segobjno 293, file 1 block 2345 TABSUBPART$: segobjno 278, file 1 block 2217 INDSUBPART$: segobjno 283, file 1 block 2257 IND$: segobjno 2, tabno 3, file 1 block 25 ICOL$: segobjno 2, tabno 4, file 1 block 25 LOB$: segobjno 2, tabno 6, file 1 block 25 COLTYPE$: segobjno 2, tabno 7, file 1 block 25 TYPE$: segobjno 181, tabno 1, file 1 block 1297 COLLECTION$: segobjno 181, tabno 2, file 1 block 1297 ATTRIBUTE$: segobjno 181, tabno 3, file 1 block 1297 LOBFRAG$: segobjno 299, file 1 block 2393 LOBCOMPPART$: segobjno 302, file 1 block 2425 UNDO$: segobjno 15, file 1 block 105 TS$: segobjno 6, tabno 2, file 1 block 57 PROPS$: segobjno 96, file 1 block 721 Running generated file "@dict.ddl" to unload the dictionary tables . unloading table OBJ$ DUL: Warning: Recreating file "OBJ.ctl" 50806 rows unloaded . unloading table TAB$ DUL: Warning: Recreating file "TAB.ctl" 1560 rows unloaded . unloading table COL$ DUL: Warning: Recreating file "COL.ctl" 54822 rows unloaded . unloading table USER$ DUL: Warning: Recreating file "USER.ctl" 57 rows unloaded . unloading table TABPART$ 72 rows unloaded . unloading table INDPART$ 80 rows unloaded . unloading table TABCOMPART$ 0 rows unloaded . unloading table INDCOMPART$ 0 rows unloaded . unloading table TABSUBPART$ 0 rows unloaded . unloading table INDSUBPART$ 0 rows unloaded . unloading table IND$ 2213 rows unloaded . unloading table ICOL$ 3618 rows unloaded . unloading table LOB$ 528 rows unloaded . unloading table COLTYPE$ 1688 rows unloaded . unloading table TYPE$ 1885 rows unloaded . unloading table COLLECTION$ 551 rows unloaded . unloading table ATTRIBUTE$ 7051 rows unloaded . unloading table LOBFRAG$ 1 row unloaded . unloading table LOBCOMPPART$ 0 rows unloaded . unloading table UNDO$ 21 rows unloaded . unloading table TS$ 7 rows unloaded . unloading table PROPS$ 27 rows unloaded Reading USER.dat 57 entries loaded Reading OBJ.dat 50806 entries loaded and sorted 50806 entries Reading TAB.dat 1560 entries loaded Reading COL.dat 54822 entries loaded and sorted 54822 entries Reading TABPART.dat 72 entries loaded and sorted 72 entries Reading TABCOMPART.dat 0 entries loaded and sorted 0 entries Reading TABSUBPART.dat 0 entries loaded and sorted 0 entries Reading INDPART.dat 80 entries loaded and sorted 80 entries Reading INDCOMPART.dat 0 entries loaded and sorted 0 entries Reading INDSUBPART.dat 0 entries loaded and sorted 0 entries Reading IND.dat 2213 entries loaded Reading LOB.dat 528 entries loaded Reading ICOL.dat 3618 entries loaded Reading COLTYPE.dat 1688 entries loaded Reading TYPE.dat 1885 entries loaded Reading ATTRIBUTE.dat 7051 entries loaded Reading COLLECTION.dat 551 entries loaded Reading BOOTSTRAP.dat 57 entries loaded Reading LOBFRAG.dat 1 entries loaded and sorted 1 entries Reading LOBCOMPPART.dat 0 entries loaded and sorted 0 entries Reading UNDO.dat 21 entries loaded Reading TS.dat 7 entries loaded Reading PROPS.dat 27 entries loaded Database character set is ZHS16GBK Database national character set is AL16UTF16 --恢复表 DUL> unload table chf.t_xifenfei; . unloading table T_XIFENFEI 9 rows unloaded
验证恢复数据库
[oracle@xifenfei dul]$ ll CHF_T_XIFENFEI* -rw-r--r-- 1 oracle oinstall 269 Jun 22 00:26 CHF_T_XIFENFEI.ctl -rw-r--r-- 1 oracle oinstall 134 Jun 22 00:26 CHF_T_XIFENFEI.dat [oracle@xifenfei dul]$ more CHF_T_XIFENFEI.ctl load data CHARACTERSET UTF8 infile 'CHF_T_XIFENFEI.dat' insert into table "CHF"."T_XIFENFEI" fields terminated by whitespace ( "OBJECT_ID" CHAR(2) enclosed by X'22' ,"OBJECT_NAME" CHAR(16) enclosed by X'22' ) [oracle@xifenfei dul]$ more CHF_T_XIFENFEI.dat "20" "ICOL$" "44" "I_USER1" "28" "CON$" "15" "UNDO$" "29" "C_COBJ#" "3" "I_OBJ#" "25" "PROXY_ROLE_DATA$" "39" "I_IND1" "51" "I_CDEF2"