ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 一次ODU的体验

一次ODU的体验

原创 Linux操作系统 作者:xteitxu 时间:2013-02-27 14:59:53 0 删除 编辑

 情况如下:
 由于一个数据文件被删除,在实例启动后报错,通过之前的RMAN备份restore文件后,当在recover时,发现少一个归档,导致该instance无法open.
 先把这个有问题的datafile offline后,再open数据库。这个数据文件上的数据不多,顺便也体验一下老熊的ODU ,从datafile unloader一把。下面是一个大概的步骤:
 
 SQL>  alter database open;
 alter database open
*
第 1 行出现错误:
ORA-01113: 文件 12 需要介质恢复
ORA-01110: 数据文件 12: 'D:\APP\ADMINISTRATOR\ORADATA\ZYH\SJDATA.DBF'

SQL> recover datafile 12;
ORA-00279: 更改 3511693562 (在 02/27/2013 10:28:06 生成) 对于线程 1 是必需的
ORA-00289: 建议: C:\APP\USER\FLASH_RECOVERY_AREA\DG1\ARCHIVELOG\2013_02_27\O1_MF_1_494_8LTVTBVT_.ARC
ORA-00280: 更改 3511693562 (用于线程 1) 在序列 #494 中

指定日志: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: 无法打开归档日志 'C:\APP\USER\FLASH_RECOVERY_AREA\DG1\ARCHIVELOG\2013_02_27\O1_MF_1_494_8LTVTBVT_.ARC'
ORA-27041: 无法打开文件
OSD-04002: ???????
O/S-Error: (OS 2) ????????????????

ORA-00308: 无法打开归档日志 'C:\APP\USER\FLASH_RECOVERY_AREA\DG1\ARCHIVELOG\2013_02_27\O1_MF_1_494_8LTVTBVT_.ARC'
ORA-27041: 无法打开文件
OSD-04002: ???????
O/S-Error: (OS 2) ????????????????
发现丢失归档494
SQL> select * from v$recover_file;
     FILE# ONLINE         ONLINE_STATUS  ERROR                             CHANGE# TIME
---------- -------------- -------------- ------------------------------ ---------- --------------
        12 ONLINE         ONLINE                                        3511693562 27-2月 -13
       
       
 先把库拉起来再说:
 
 SQL> alter database datafile 12 offline;
数据库已更改。
SQL> alter database open;
数据库已更改。
下面使用ODU
 
 从此处下载ODU    http://www.itpub.net/thread-1411682-1-1.html
 
关于ODU  这里有详细的说明   http://www.oracleodu.com/cn/

F:\odu_309_win32\odu>odu
Oracle Data Unloader:Release 3.0.9
Copyright (c) 2008,2009 XiongJun. All rights reserved.
loading default config.......
byte_order little
block_size  8192
data_path   data
lob_path    lob
charset_name ZHS16GBK
ncharset_name AL16UTF16
output_format text
lob_storage file
clob_byte_order little
trace_level 1
delimiter |
 

load control file 'config.txt' successful
loading default control file ......

 ts#   fn  rfn bsize   blocks bf offset filename
---- ---- ---- ----- -------- -- ------ --------------------------------------------
   0    1    1  8192   180480 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\SYSTEM01.DBF
   0    9    9  8192   131072 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\SYSTEM02.DBF
   1    2    2  8192    92296 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\SYSAUX01.DBF
   1   10   10  8192   131072 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\SYSAUX02.DBF
   2    3    3  8192   298240 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\UNDOTBS01.DBF
   4    4    4  8192    23680 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\USERS01.DBF
   5    5    5  8192   640000 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\ECCH_DATA01.DBF
   5    7    7  8192   640000 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\ECCH_DATA02.DBF
   5   11   11  8192   655360 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\ECCH_DATA03.DBF
   6    6    6  8192   640000 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\ECCH_IDX01.DBF
   6    8    8  8192   640000 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\ECCH_IDX02.DBF
   7   12   12  8192    38400 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\SJDATA.DBF
load control file 'control.txt' successful
loading dictionary data......
ODU> help
help      ----   get command list
exit      ----   exit from odu
spool     ----   spool information to file
host      ----   enter os terminal
load config ----   load config information from file
open      ----   load database filename list from file
osdump    ----   dump file format hex
dump      ----   dump oracle datafile block
rowid     ----   decode rowid components
unload    ----   unload data
scan      ----   scan extent or segment
list      ----   list schema object,partition,datafile
charset   ----   get or list supported charset name
rdba      ----   decode RDBA to rfile# and block#
ODU> list
list user
list
list partition
list datafile
ODU> list datafile
 ts#   fn  rfn bsize   blocks bf offset filename
---- ---- ---- ----- -------- -- ------ --------------------------------------------
   0    1    1  8192   180480 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\SYSTEM01.DBF
   0    9    9  8192   131072 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\SYSTEM02.DBF
   1    2    2  8192    92296 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\SYSAUX01.DBF
   1   10   10  8192   131072 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\SYSAUX02.DBF
   2    3    3  8192   298240 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\UNDOTBS01.DBF
   4    4    4  8192    23680 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\USERS01.DBF
   5    5    5  8192   640000 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\ECCH_DATA01.DBF
   5    7    7  8192   640000 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\ECCH_DATA02.DBF
   5   11   11  8192   655360 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\ECCH_DATA03.DBF
   6    6    6  8192   640000 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\ECCH_IDX01.DBF
   6    8    8  8192   640000 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\ECCH_IDX02.DBF
   7   12   12  8192    38400 N       0 D:\APP\ADMINISTRATOR\ORADATA\ZYH\SJDATA.DBF
ODU> unload
unload dict [block
unload table [object auto] [partition ]
unload table object [tablespace ]
unload object [tablespace ] [cluster ]  column
    type: VARCHAR2 VARCHAR CHAR NUMBER SKIP LONG RAW
          DATE LONG_RAW TIMESTAMP TIMESTAMP_TZ TIMESTAMP_LTZ
          BINARY_FLOAT BINARY_DOUBLE NVARCHAR2 NCHAR
unload object [tablespace ] [cluster ]  sample
unload object all [tablespace ] sample
unload user
ODU> unload dict
CLUSTER C_USER# file_no: 1 block_no: 89
TABLE OBJ$ file_no: 1 block_no: 121
CLUSTER C_OBJ# file_no: 1 block_no: 25
CLUSTER C_OBJ# file_no: 1 block_no: 25
found IND$'s obj# 19
found IND$'s dataobj#:2,ts#:0,file#:1,block#:25,tab#:3
found TABPART$'s obj# 563
found TABPART$'s dataobj#:563,ts#:0,file#:1,block#:3601,tab#:0
found INDPART$'s obj# 568
found INDPART$'s dataobj#:568,ts#:0,file#:1,block#:3641,tab#:0
found TABSUBPART$'s obj# 575
found TABSUBPART$'s dataobj#:575,ts#:0,file#:1,block#:3697,tab#:0
found INDSUBPART$'s obj# 580
found INDSUBPART$'s dataobj#:580,ts#:0,file#:1,block#:3745,tab#:0
found IND$'s obj# 19
found IND$'s dataobj#:2,ts#:0,file#:1,block#:25,tab#:3
found LOB$'s obj# 79
found LOB$'s dataobj#:2,ts#:0,file#:1,block#:25,tab#:6
found LOBFRAG$'s obj# 596
found LOBFRAG$'s dataobj#:596,ts#:0,file#:1,block#:3881,tab#:0
不能recover的数据文件包含用户SJ下的所有数据 ,我直接unload用户。unload 完,在ODU目录里的data下会生成三个文件:*.sql *.txt *.ctl   通过生成的脚本,用sqlldr装入数据。哈 
ODU> unload user sj
Unloading user SJ's tables.
Unloading table: BEST,object ID: 181343
Unloading segment,storage(Obj#=181343 DataObj#=181343 TS#=7 File#=12 Block#=130 Cluster=0)
3092 rows unloaded

Unloading table: TEST,object ID: 183303
Unloading segment,storage(Obj#=183303 DataObj#=183303 TS#=7 File#=12 Block#=242 Cluster=0)
2159428 rows unloaded

Unloading table: TT,object ID: 183304
Unloading segment,storage(Obj#=183304 DataObj#=183304 TS#=7 File#=12 Block#=370 Cluster=0)
0 rows unloaded
ODU> unload table sj.best
Unloading table: BEST,object ID: 181343
Unloading segment,storage(Obj#=181343 DataObj#=181343 TS#=7 File#=12 Block#=130 Cluster=0)
3092 rows unloaded
ODU>

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23891491/viewspace-754836/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 新年快乐!
请登录后发表评论 登录
全部评论

注册时间:2012-04-22

  • 博文量
    38
  • 访问量
    59982