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)
> $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环境变量:

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.

编译方法如下:

$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. 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

时间: 2024-08-01 04:16:56

Oracle 10g使用amdu抽取数据文件的相关文章

win7 安装oracle 10g 未生成监听文件 导致配置监听时无法保存

最近这两天一直在为安装 的oracle 配置监听无法保存 再找各种解决方案,最后自己居然自己配置出来了. 因为缺少监听文件,拷贝别人的放到自己的目录下C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN   listener.ora.tnsnames.ora和 sqlnet.ora 1.修改 tnsnames.ora  中的 # tnsnames.ora Network Configuration File:  c:\oracle\product\10.

学习笔记:Oracle dul数据挖掘 导出Oracle11G数据文件坏块中表中

试验模拟导出Oracle 11G数据库中数据文件坏块中表中的数据 以前一直以为dul对应的版本只能恢复最高的数据库版本一致,今天测试发现dul 10可以恢复11g最新版的数据库.模拟环境 SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition

zbb20170816 oracle Oracle 查看表空间、数据文件的大小及使用情况sql语句

oracle Oracle 查看表空间.数据文件的大小及使用情况sql语句 --表空间 --1G=1024MB --1M=1024KB --1K=1024Bytes --1M=11048576Bytes --1G=1024*11048576Bytes=11313741824Bytes SELECT a.tablespace_name "表空间名", total "表空间大小", free "表空间剩余大小", (total - free) &qu

oracle 10g 用dbms_xmlgen将数据表转成xml格式

oracle 10g 用dbms_xmlgen将数据表转成xml格式 oracle 10g 用dbms_xmlgen将数据表转成xml格式 oracle用plsql将sql查询的所有数据导出为xml

【oracle】摸拟故障 - 数据文件丢失恢复,SCN的作用。

模拟数据文件丢失恢复,redolog.archivelog.controlfile文件未丢失的情况恢复. 1.  创建一个表空间.用户.分配权限.建表. a)   createtablespace HXW_WEN datafile'D:\ORACLE\ORADATA\HXW168\HXW_WEN_D01.DBF' size5M autoextendonnext1M maxsize20M; b)createuser wen identifiedby zerostudy defaulttablesp

ORACLE - 管理表空间和数据文件

ORACLE表空间是一个逻辑分区,一个数据文件只能属于一个表空间,一个表空间可以拥有多个数据文件. 一般情况下,如果一个实例分配给多个应用使用,需要创建不同的表空间,每个用户使用自己的表空间. 一.表空间的创建与授权 首先查看表空间的使用情况: select tablespace_name,sum(bytes)/1024/1024 as MB from dba_data_files group by tablespace_name; ---剩余容量(在固定大小的情况下) select table

oracle 12c中导入dmp数据文件步骤

oracle版本为12c的导入步骤:1.新建用户:CREATE USER c##zj_szda IDENTIFIED BY zjdaszda DEFAULT TABLESPACE USERS QUOTA 50M ON USERS; 2.授予dba权限给zj_szdagrant dba to zj_szda 3.导入szda.dmp文件$imp c##zj_szda/zjdaszda fromuser=zj_szda touser=c##zj_szda file=f:/szda.dmp 注:1.c

Oracle的表空间、数据文件、用户

每一个Oracle数据库都是由三种类型的文件组成:数据文件(Data File).日志文件(Log File)和控制文件(Control File).数据库的文件为数据库信息提供真正的物理存储.      每个数据库有一个或多个物理的数据文件.逻辑数据库结构(如表.索引等)的数据物理地存储在数据库的数据文件中,数据文件通常为*.dbf格式. 数据文件有下列特征: 1.一个数据文件仅与一个数据库联系: 2.一旦建立,数据文件只增不减: 3.一个表空间(数据库存储的逻辑单位)由一个或多个数据文件组成

Oracle sqlldr导入导出txt数据文件详解

一.sqlldr导入txt 1.预备 a).txt文件 这里要保存成无签名的UTF-8 b).oracle建表 2.编写控制文件input_test.ctl LOAD DATA CHARACTERSET 'UTF8' --字符集设定 INFILE 'd:\input_test.txt' --要导入的文本数据路径,可写多个REPLACE into TABLE input_test --清空原有数据再导入方式 追加导入 用append into table t_namefields terminat