服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Oracle - Oracle 10g利用amdu抽取数据文件的方法教程

Oracle 10g利用amdu抽取数据文件的方法教程

2020-04-08 17:08Alfred Zhao Oracle

这篇文章主要给大家介绍了关于Oracle 10g利用amdu抽取数据文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

本文主要给大家介绍的是关于Oracle 10g利用amdu抽取数据文件的相关内容,下面话不多说了,来一起看看详细的介绍吧

环境:OEL 5.7 + Oracle 10.2.0.5 RAC

需求:实验在Oracle 10g环境使用amdu抽取数据库文件

本文主要目的是介绍3个知识点:

1.使amdu可以在oracle 10g环境中使用

2.使kfed可以在oracle 10g环境中使用

3.amdu如何抽取损坏的ASM磁盘组数据

1.使amdu可以在oracle 10g环境中使用

在Oracle 10g环境,并没有自带amdu工具,需要自行去下载:

具体可以参考MOS文档:

Placeholder for AMDU binaries and using with ASM 10g, 11g, 12c (文档 ID 553639.1)

?
1
2
3
4
5
6
7
8
9
10
11
> $cd <your directory>
> $export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`
> or $setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:`pwd`
> $export PATH=$PATH:`pwd` or setenv PATH ${PATH}:`pwd`
>
> or
>
> $cd <your directory>
> $export LIBPATH=$LIBPATH:`pwd`
> or $setenv LIBPATH ${LIBPATH}:`pwd`
> $export PATH=$PATH:`pwd` or setenv PATH ${PATH}:`pwd`

注意:如果是AIX平台,则对应的是设置LIBPATH环境变量。我这里是Linux,所以设置LD_LIBRARY_PATH环境变量:

?
1
2
3
unzip /tmp/amdu_X86-64.zip
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`
export PATH=$PATH:`pwd`

2.使kfed可以在oracle 10g环境中使用

在Oracle 10g环境kfed需要编译:

ASM tools used by Support : KFOD, KFED, AMDU (文档 ID 1485597.1)

KFED executable comes with installation from 11.1 onwards; for the older version you must build it.

编译方法如下:

?
1
2
$cd $ORACLE_HOME/rdbms/lib
$make -f ins_rdbms.mk ikfed

3.amdu如何抽取损坏的ASM磁盘组数据

在ASM磁盘组损坏时,如何使用amdu工具来抽取数据库文件:

How to Restore the Database Using AMDU after Diskgroup Corruption (文档 ID 1597581.1)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1. Create pfile of lost database , from database alert.log startup messages.
 
2. Startup database in nomount
 
3. Get the controlfile number from db alert log , it will show while starting the database here in this eg. its 256
eg., control_files='+DATA/orcl/controlfile/current.256.709676643'
 
If you have controlfile backup already in non-asm location edit the pfile to point to location of non-asm and then mount the database
If you dont have controlfile backup then go to step 4 after determining the file# from step 3
 
4. $ amdu -diskstring <asm_diskstring> -extract DATA.256
 
5. shutdown the database and change the control_file location to point to the extracted file location
 
6. startup mount the database
 
7. once mounted, get the datafile file numbers using "select name from v$datafile"
 And get online redo logfile from "select * from v$logfile".
 
8. Extract all datafiles and redolog files in similar manner
 
9. alter database rename <datafile 1> to < newly extracte location>
 
10. open the database

实际可以做实验去验证下MOS这个步骤的可行性:

1.创建参数文件

2.启动数据库到nomount状态

3.获取到控制文件的number

4.抽出控制文件

5.关闭数据库,修改control_file值

6.启动数据库到mount状态

7.获取到数据文件、日志文件的number

8.抽取数据文件和redo日志文件

9.重命名数据库文件到新位置

10.打开数据库

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。

原文链接:https://www.cnblogs.com/jyzhao/p/10100032.html

延伸 · 阅读

精彩推荐