学习笔记摘录整理
AMDU有以下三种功能:
- 将ASM DISK上的元数据转储到文件系统上以便分析
- 将ASM文件的内容抽取出来并写入到OS文件系统,Diskgroup是否mount均可
- 打印出块的元数据,以块中C语言结构或16进制的形式
选项-diskstring和-exclude用以指定那些ASM DISK需要被读取。 选项-direcotry指定上一次运行AMDU所生成的文件夹。 指定的文件夹也可以是包含上一次文件夹内容的拷贝。
探测磁盘
这一个步骤使用ASM Discovery信息以找到磁盘组。磁盘的头部Asm disk header将被读取以便判断哪些磁盘属于哪个Diskgroup。下一步骤中被扫描的磁盘将在此步骤中被选择。探测的结果将被存放在report文件中。 使用-directory选项,可以读取已存在的报告文件而非重新在重复一次本步骤。
ASMCMD> lsdsk
Path
/dev/asm-diskc
/dev/asm-diskd
/dev/asm-diske
/dev/asm-diskf
ASMCMD> exit
[grid@rac1 ~]$ amdu -diskstring '/dev/asm*'
amdu_2020_10_27_18_33_48/
[grid@rac1 ~]$
[grid@rac1 ~]$
[grid@rac1 ~]$
[grid@rac1 ~]$ cd amdu_2020_10_27_18_33_48/
[grid@rac1 amdu_2020_10_27_18_33_48]$ ls
report.txt
[grid@rac1 amdu_2020_10_27_18_33_48]$ more report.txt
-*-amdu-*-
```````````输出asm各个磁盘的信息
diskstring: 使用磁盘的全路径或者是ASM_DISKSTRING参数值
extract: 磁盘组名.ASM文件序号
output:提取的输出文件(当前目录下)
noreport:不输出amdu的执行过程
nodir:不创建dump目录
以上转储出来的control.270就是控制文件,我们使用该控制文件startup mount RDBMS实例:
SQL> alter system set control_files='/opt/oracle.SupportTools/amdu_2009_10_10_20_19_17/control.270' scope=spfile; System altered. SQL> startup force mount; ORACLE instance started. Total System Global Area 1870647296 bytes Fixed Size 2229424 bytes Variable Size 452987728 bytes Database Buffers 1409286144 bytes Redo Buffers 6144000 bytes Database mounted. SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- +DATA/prodb/datafile/system.256.794687873 +DATA/prodb/datafile/sysaux.257.794687875 +DATA/prodb/datafile/undotbs1.258.794687875 +DATA/prodb/datafile/users.259.794687875 +DATA/prodb/datafile/example.265.794687995 +DATA/prodb/datafile/mactbs.267.794688457 6 rows selected.
startup mount实例后,可以从v$datafile中获得数据文件名,其中就包括了其在DISKGROUP中的FILE NUMBER
再使用./amdu -diskstring ‘/dev/asm*’ -extract 命令即可 导出数据文件到操作系统
amdu -extract DG_DATA.279
[oracle@mlab2 oracle.SupportTools]$ ./amdu -diskstring '/dev/asm*' -extract data.256 amdu_2009_10_10_20_22_21/ AMDU-00204: Disk N0006 is in currently mounted diskgroup DATA AMDU-00201: Disk N0006: '/dev/asm-disk10' AMDU-00204: Disk N0003 is in currently mounted diskgroup DATA AMDU-00201: Disk N0003: '/dev/asm-disk5' AMDU-00204: Disk N0002 is in currently mounted diskgroup DATA AMDU-00201: Disk N0002: '/dev/asm-disk6' [oracle@mlab2 oracle.SupportTools]$ cd amdu_2009_10_10_20_22_21/ [oracle@mlab2 amdu_2009_10_10_20_22_21]$ ls DATA_256.f report.txt [oracle@mlab2 amdu_2009_10_10_20_22_21]$ dbv file=DATA_256.f DBVERIFY: Release 11.2.0.3.0 - Production on Sat Oct 10 20:23:12 2009 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. DBVERIFY - Verification starting : FILE = /opt/oracle.SupportTools/amdu_2009_10_10_20_22_21/DATA_256.f DBVERIFY - Verification complete Total Pages Examined : 90880 Total Pages Processed (Data) : 59817 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 12609 Total Pages Failing (Index): 0 Total Pages Processed (Other): 3637 Total Pages Processed (Seg) : 1 Total Pages Failing (Seg) : 0 Total Pages Empty : 14817 Total Pages Marked Corrupt : 0 Total Pages Influx : 0 Total Pages Encrypted : 0 Highest block SCN : 1125305 (0.1125305)