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)

> $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.打开数据库

总结

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

(0)

相关推荐

  • Oracle 10g DG 数据文件迁移的实现

    背景:某客户Oracle 10g 的DG由于空间不足,之前将部分数据文件迁移到其他目录,如今原目录扩容成功,要将之前迁移的数据文件再次迁移回来. 环境:Oracle 10.2.0.5 DG 单机 首先想到的是10gDG是在mount模式下应用的,在测试环境可以很容易的模拟下这个需求实现的过程: 1.查询当前DG的状态 2.停止DG应用 3.备份copy副本到新目录并切换 4.删除之前的目录并开启应用 1.查询当前DG的状态 查询当前DG的状态: Connected to: Oracle Data

  • oracle下实现恢复一个丢失的数据文件的代码

    如果您目前拥有一个冷备份,但是缺少了其中的一个数据文件,但你目前存在所有的归档,如果您要恢复数据文件,可以参考以下的示例:   复制代码 代码如下: [oracle@jumper eygle]$ sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.4.0 - Production on Sun Aug 20 01:22:50 2006 Copyright (c) 1982, 2002, Oracle Corporation.  All right

  • Oracle教程 误添加数据文件删除方法

    如果是在Oracle10g之前,删除一个表空间中的数据文件后,其文件在数据库数据字典中会仍然存在,除非你删除表空间,否则文件信息不会清除. 但是从Oracle10gR2开始,Oracle允许我们彻底删除一个空文件,不留痕迹. 但是注意:如果你向SYSTEM表空间错误的添加了一个文件,那么就让它在哪里好了,不要动. 对于普通表空间,则可以参考以下步骤处理. 数据库版本Oracle10gR2: SQL> select * from v$version; BANNER ----------------

  • Oracle表空间数据文件移动的方法

    实现把用户表空间中的数据文件从某一个路径移动到另一个路径 一.针对可offline的非系统表空间 本例移动oracle的案例表空间(EXAMPLE表空间),将其从 D:\ORADATA\ORCL\ 移动到 D:\ORACLE\ORADATA\ 1.查看要改变的表空间的数据文件信息 SQL> select tablespace_name,file_name,online_status from dba_data_files where tablespace_name='EXAMPLE'; TABL

  • Oracle如何更改表空间的数据文件位置详解

    表空间概述 Oracle的表空间属于Oracle中的存储结构,是一种用于存储数据库对象(如:数据文件)的逻辑空间,是Oracle中信息存储的最大逻辑单元,其下还包含有段.区.数据块等逻辑数据类型.表空间是在数据库中开辟的一个空间,用于存放数据库的对象,一个数据库可以由多个表空间组成.可以通过表空间来实现对Oracle的调优.(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环境中使用 在Orac

  • Android开发之利用Intent实现数据传递的方法

    本文实例讲述了Android利用Intent实现数据传递的方法.分享给大家供大家参考,具体如下: 在Android开发过程中,很多人都熟悉Intent,这是个用于在多个View之间共享数据的类.本节主要讲述通过点选ListView中的文本,把文本中的URL加载到一个新的页面上,并且打印出来.为了方便,我先把前面一篇<Android开发之利用jsoup解析HTML页面的方法>的代码重新贴一下,因为在上一节后,代码做了少许修改: try { doc = Jsoup.parse(new URL(&q

  • C#使用GZipStream解压缩数据文件的方法

    本文实例讲述了C#使用GZipStream解压缩数据文件的方法.分享给大家供大家参考.具体分析如下: GZipStream用于从一个流读取数据写入到另一个流,GZipStream不能写入到其它的资源,比如文件或者内存,只能从流到流. GZipStream使用的一般流程如下: 打开一个现有的文件  打开/创建输出文件  创建GZipStream对象  逐字节读源文件,并把它传递到GZipStream  使用GZipStream写入到输出文件流 String sourcefilename = FIL

  • C#使用DeflateStream解压缩数据文件的方法

    本文实例讲述了C#使用DeflateStream解压缩数据文件的方法.分享给大家供大家参考.具体分析如下: DeflateStream方法用于从一个流中读取数据,并写入到另一个流.DeflateStream不写入数据到其它类型的资源,比如文件或者内存. DeflateStream在写入另一个流的时候,它会对数据进行压缩和解压缩. 使用DEFLATE压缩数据文件的一般过程: 打开一个现有的文件  打开/创建输出文件  创建减缩对象  逐字节读取源文件,并把它传递给DEFLATE对象  使用defl

  • java利用POI读取excel文件的方法

    摘要:利用java读取excel文件,读取文件并获取文件中每一个sheet中的值. 一.需要提前导入的包: import java.io.File; import java.io.FileInputStream; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook

  • 浅析python常用数据文件处理方法

    0.前言 虽说python运行速度慢,但其编程速度,第三方包的丰富度是真的高. 涉及到文件批处理还是会选择python. 1. 动态文件名 在文件批处理中,文件名经常只有编号是不同的,可以通过给字符串传递不同的编号来获取动态文件名. file_num = 324 # file_num = 1 for i in range(file_num): file_name = "正常数据\\{}.正常.txt".format(i + 1) ... 2. 将文件转换为csv格式 一般数据提供者为了

  • 微信小程序利用co处理异步流程的方法教程

    本文主要介绍的是关于微信小程序利用co处理异步流程的方法教程,分享出来供大家参考学习,需要的朋友们下面来看看详细的介绍: co co是一个基于ES6 Generator特性实现的[异步流程同步化]写法的工具库. co需要使用Promise特性,所以,我们先来创建一个使用Promise来处理的异步方法: function myAsyncFunc() { return new Promise(function (resolve, reject) { setTimeout(function () {

  • oracle 12c因误删pdb数据文件导致整个数据库打不开的解决方法

    前言 最近因为一位同事误删了某个插件数据库(PDB)的数据文件,结果整个数据库,包括容器数据库(CDB),以及其他插件数据库都用不了了.无奈...通过尝试各种方法最终解决了,觉着有必要将解决的过程分享出来,方法大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 方法如下: 1.用sys账号进入实例,可见容器数据库处于mounted状态:插在上面的所有PDB当然也都是mounted. sqlplus sys/pwd@orcl12c as sysdba; 2.试图打开CDB,提示有数据库文件未能

  • Python3利用openpyxl读写Excel文件的方法实例

    前言 Python中常用的操作Excel的三方包有xlrd,xlwt和openpyxl等,xlrd支持读取.xls和.xlsx格式的Excel文件,只支持读取,不支持写入.xlwt只支持写入.xls格式的文件,不支持读取. openpyxl不支持.xls格式,但是支持.xlsx格式的读取写入,并且支持写入公式等. 原始数据文件apis.xlsx内容: name method url data json result get接口 get https://httpbin.org/get?a=1&b=

随机推荐