当前位置:操作系统 > Unix/Linux >>

硬盘故障数据库恢复amdu使用小记

硬盘故障数据库恢复amdu使用小记
 
AMDU是Oracle 11g里自带的一个免费的工具,用于分析ASM磁盘组的元数据以及从不能mount的磁盘组中往外抽取数据文件。
 
“NOTE:553639.1 Placeholder for AMDU binaries and using with ASM 10g”明确指出:AMDU也可用于10g,并提供了可用于10g的AMDU的各个操作系统的版本供大家下载。
 
AMDU的原理是解析file directory,这一点ODU也是一样,只不过ODU做的更彻底一些,即使file directory全部损坏,ODU也可以把数据文件抽取出来,尽最大的可能挽救用户的数据。
 
我们来看一个用AMDU从不能mount的磁盘组中往外抽取数据文件的实例:
 
我们现在shutdown Oracle实例和ASM实例:
 
[root@bspdev odu]# su – oracle
 
[oracle@bspdev ~]$ sqlplus ‘/ as sysdba’;
 
SQL*Plus: Release 11.2.0.1.0 Production on Thu Feb 23 10:43:36 2012
 
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
 
Connected to:
 
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – Production
 
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
 
and Real Application Testing options
 
SQL> shutdown immediate
 
Database closed.
 
Database dismounted.
 
ORACLE instance shut down.
 
SQL> exit
 
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – Production
 
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
 
and Real Application Testing options
 
[oracle@bspdev ~]$ su – grid
 
Password:
 
[grid@bspdev ~]$ sqlplus ‘/ as sysasm’;
 
SQL*Plus: Release 11.2.0.1.0 Production on Thu Feb 23 10:45:05 2012
 
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
 
Connected to:
 
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – Production
 
With the Automatic Storage Management option
 
SQL> shutdown immediate
 
ASM diskgroups dismounted
 
ASM instance shutdown
 
SQL> exit
 
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – Production
 
With the Automatic Storage Management option
 
[grid@bspdev ~]$ crsctl status res
 
NAME=ora.DATA.dg
 
TYPE=ora.diskgroup.type
 
TARGET=OFFLINE
 
STATE=OFFLINE
 
NAME=ora.LISTENER.lsnr
 
TYPE=ora.listener.type
 
TARGET=ONLINE
 
STATE=ONLINE on bspdev
 
NAME=ora.RECO.dg
 
TYPE=ora.diskgroup.type
 
TARGET=OFFLINE
 
STATE=OFFLINE
 
NAME=ora.asm
 
TYPE=ora.asm.type
 
TARGET=OFFLINE
 
STATE=OFFLINE
 
NAME=ora.cssd
 
TYPE=ora.cssd.type
 
TARGET=ONLINE
 
STATE=ONLINE on bspdev
 
NAME=ora.diskmon
 
TYPE=ora.diskmon.type
 
TARGET=ONLINE
 
STATE=ONLINE on bspdev
 
NAME=ora.ora11g.db
 
TYPE=ora.database.type
 
TARGET=OFFLINE
 
STATE=OFFLINE
 
在ASM diskgroup不能mount的情况下asmcmd不能使用:
 
[grid@bspdev ~]$ asmcmd
 
Connected to an idle instance.
 
ASMCMD> ls
 
ASMCMD-08102: no connection to ASM; command requires ASM to run
 
但此时ODU内嵌的asmcmd是可以使用的,所以我们可以轻易的使用ODU内嵌的asmcmd命令来得到所有的datafile的名称:
 
[grid@bspdev ~]$ su -
 
Password:
 
[root@bspdev ~]# cd /u01/app/oracle/odu
 
[root@bspdev odu]# ./odu
 
Oracle Data Unloader:Release 4.2.1
 
loading default config…….
 
byte_order little
 
block_size  8192
 
block_buffers 1024
 
db_timezone -7
 
Invalid db timezone:-7
 
client_timezone 8
 
Invalid client timezone:8
 
asmfile_extract_path   /odu/asmfile
 
data_path   data
 
lob_path    /odu/data/lob
 
charset_name AL32UTF8
 
ncharset_name AL16UTF16
 
output_format text
 
lob_storage infile
 
clob_byte_order big
 
trace_level 1
 
delimiter |
 
unload_deleted no
 
file_header_offset 0
 
is_tru64 no
 
record_row_addr no
 
convert_clob_charset yes
 
use_scanned_lob  yes
 
trim_scanned_blob yes
 
lob_switch_dir_rows 20000
 
db_block_checksum yes
 
db_block_checking yes
 
rdba_file_bits 10
 
compatible 10
 
load config file ‘config.txt’ successful
 
loading default asm disk file ……
 
grp# dsk# bsize ausize disksize diskname        groupname       path
 
—- —- —– —— ——– ————— ————— ——————————————–
 
   1    0  4096  1024K     9000 DATA_0000       DATA            /dev/sda3
 
   1    1  4096  1024K     9000 DATA_0001       DATA            /dev/sda5
 
   1    2  4096  1024K     9000 DATA_0002       DATA            /dev/sda6
 
   2    0  4096  1024K     9000 RECO_0000       RECO            /dev/sda7
 
   2    1  4096  1024K     7288 RECO_0001       R
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,