欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

用Oracle AMDU 抽取ASM磁盘组的数据文件

程序员文章站 2022-04-22 09:25:44
...

amdu -diskstring

amdu -diskstring '' -extract '.'

数据文件号 可以根据asm 实例 查询 v$asm_file视图得出

也可以查v$datafile,,如果用了别名,可以用v$asm_alias;

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
+DATA/db1/datafile/system.256.794361477
+DATA/db1/datafile/sysaux.257.794361477
+DATA/db1/datafile/undotbs1.258.794361477
+DATA/db1/datafile/users.259.794361477 +DATA/db1/datafile/example.261.794361601
+DATA/db1/datafile/testasm.263.817147851
+DATA/db1/datafile/dbfs_ts.264.822088469


比如我们要抽取users表空间下面对应的数据文件

Full File name = "+DATA/db1/datafile/users.259.794361477"

File Number = "259"

Disk String = "/dev/Oracleasm/disks/*"

Diskgroup Name = "DATA"

Extracted File = DATA_259.f

amdu -diskstring '/dev/oracleasm/disks/*' -extract 'DATA.259'

在当前目录下会生成amdu_加日期格式的文件夹

[grid@dbaasm ~]$ cd amdu_2013_08_31_00_17_17/
[grid@dbaasm amdu_2013_08_31_00_17_17]$ ls -l
total 2099228
-rw-r--r-- 1 grid oinstall 2147491840 Aug 31 00:18 DATA_259.f
-rw-r--r-- 1 grid oinstall 14514 Aug 31 00:18 report.txt

生成数据文件的格式为磁盘组+数据文件号,并且加后缀名为点f,然后重命名为对应表空间名字users.dbf即可

[grid@dbaasm amdu_2013_08_31_00_17_17]$ mv DATA_259.f users.dbf
[grid@dbaasm amdu_2013_08_31_00_17_17]$ ls -l
total 2099228
-rw-r--r-- 1 grid oinstall 14514 Aug 31 00:18 report.txt
-rw-r--r-- 1 grid oinstall 2147491840 Aug 31 00:18 users.dbf
上个周末,因为存储故障,asm磁盘不能正常加载,就用这种方法帮客户恢复数据。

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

Oracle 11g从入门到精通 PDF+光盘源代码

RHEL6 ASM方式安装Oracle 11g R2

Oracle 10g 手工创建ASM数据库

Oracle 10g R2创建ASM实例Step By Step