我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么理解AMDU数据抽取

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么理解AMDU数据抽取

这篇文章主要介绍“怎么理解AMDU数据抽取”,在日常操作中,相信很多人在怎么理解AMDU数据抽取问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解AMDU数据抽取”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

上半年遇到一起某客户对ASM磁盘组扩容,由于扩容期间操作不当导致磁盘组被dismount,日志如下:

怎么理解AMDU数据抽取

通过日志可以看到由于磁盘头的元数据被破坏,ASM检测发现PST表不满足冗余要求后磁盘组被dismount。对于这种类似由于ASM磁盘元数据被破坏导致磁盘组无法mount,且元数据无法修复,需要找回ASM磁盘组中丢失的ASM文件时可以使用Oracle提供的AMDU工具进行抽取。

AMDU介绍

AMDU是ASM Metadata Dump Utility的缩写,即asm元数据导出工具,它可以从asm磁盘中将元数据信息以及磁盘中的文件直接抽取出来,并且该工具不依赖asm磁盘组的状态,可以在asm实例关闭以及asm磁盘组dismount状态下正常使用。当磁盘组因为某些故障无法mount后,需要恢复数据就可以使用amdu工具对asm磁盘组中的数据文件进行抢修抽取,但需要注意的是,amdu只能将文件从asm磁盘中抽取出来,如果文件本身已经损坏,amdu是无法进行修复,抽取出来的文件将依然是损坏的,像这种情况,如果需要将损坏的数据文件中的数据找回,可以使用dul类工具直接读取抽取出来的数据文件找回数据。

回归主题

回到本次的故障处理,磁盘组已经无法mount,且难以修复,只能用AMDU将数据文件从asm磁盘中直接抽取,因为控制文件和参数文件以及日志文件所在的磁盘组均正常,整个恢复相对比较简单,如果控制文件所在的磁盘组也无法mount,我们可以从数据库alert文件中找到数据库控制文件的位置,这通常是第一步:

控制文件恢复:

control_files="+REDODG/xxxpd/controlfile/current.269.957297789"

然后通过amdu将控制文件抽取出来:

amdu -diskstring '/dev/xxx/*' -extract REDODG.269 -noreport -nodir

上面命令相关参数的含义:

·diskstring: 使用磁盘的全路径或者是ASM_DISKSTRING参数值

·extract: 磁盘组名.ASM文件序号

·output:提取的输出文件(当前目录下)

·noreport:不输出amdu的执行过程

·nodir:不创建dump目录

数据库启动到mount状态:

因为alert日志文件中输出的启动信息会包含实例参数信息,通过对输出的参数信息重新编辑一个参数文件,通过参数文件以及控制文件我们就可以将数据库启动到mount状态。

SQL> startup nomount pfile='/orabackup/tmp/init.ora'
ORACLE instance started.
Total System Global Area 3.2068E+10 bytes
Fixed Size                  2269072 bytes
Variable Size            4362076272 bytes
Database Buffers         2.7649E+10 bytes
Redo Buffers               55242752 bytes
SQL> alter database mount;
Database altered.
SQL>

获取数据文件名称:

此时由于数据库已启动到mount状态,通过v$datafile视图既可获取数据文件名称。

select name from v$datafile;
+DATADG/xxx/datafile/system.347.957297809
+DATADG/xxx/datafile/sysaux.368.957297823
+DATADG/xxx/datafile/undotbs1.316.957297837
+DATADG/xxx/datafile/xxx_large.335.957297873
...

将ASM磁盘组中数据文件抽取到本地文件系统:

如果数据文件采用OMF命名格式直接使用amdu命令进行抽取即可,命令与抽取控制文件相同,但当数据文件命名采用+DATADG/xxx/tbs01.dbf方式,需要先抽取元数据,在元数据中通过数据文件的alias找到对应的fnum在依照OMF格式文件的抽取方式进行抽取,更详细的介绍请参考《asm翻译系列》。

客户在创建数据文件时均是采用OMF文件管理方式,直接编辑如下数据文件抽取命令:

amdu -diskstring '/dev/xxx/*' -extract datadg.347 -noreport -nodir
amdu -diskstring '/dev/xxx/*' -extract datadg.368 -noreport -nodir
amdu -diskstring '/dev/xxx/*' -extract datadg.316 -noreport -nodir
amdu -diskstring '/dev/xxx/*' -extract datadg.335 -noreport -nodir

抽取完成后的文件格式默认为DATADG_347.f这样的命令规则,由于抽取到本地后数据文件名称已经发生变化,在数据库mount状态下将控制文件中记录的数据文件名称进行重命名,让数据库识别抽取到本地的数据文件。

重命名数据文件:

alter database rename file '+DATADG/xxx/datafile/system.347.957297809' to '/orabackup/xxx/DATADG_347.f';
alter database rename file '+DATADG/xxx/datafile/sysaux.368.957297823' to '/orabackup/xxx/DATADG_368.f';
alter database rename file '+DATADG/xxxdatafile/undotbs1.316.957297837' to '/orabackup/xxx/DATADG_316.f';
...

将数据库OPEN:

由于日志文件所在的磁盘组没有出现dismount问题,日志文件完好,并可以正常访问,这种情况下直接open数据库即可。

SQL> alter database open;
Database altered.
SQL>

数据库被正常打开,但此时数据文件,都存储在本地文件系统中,还需将数据文件移动至asm磁盘组中,由于客户环境已无可用的asm磁盘组,对上面问题磁盘组进程删除重新创建后使用rman copy方式将本地文件系统中的文件重新移动至asm磁盘组中:

select 'backup as copy datafile ' ||  file_id || ' format ' || '+DATADG;' from dba_data_files;
select 'switch datafile ' || file_id || ' to copy;' from dba_data_files;

到此,关于“怎么理解AMDU数据抽取”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么理解AMDU数据抽取

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

kettle怎么按天抽取数据

要按天抽取数据,首先需要有一个包含每天数据的数据源,比如一个数据库表或一个数据文件。然后可以使用编程语言或查询语言来查询该数据源,按照日期进行筛选和提取。以下是一种可能的方法:1. 确定数据源:确定存储数据的数据库表或数据文件。2. 设计查
2023-09-20

Flink流处理引擎之数据怎么抽取

本文小编为大家详细介绍“Flink流处理引擎之数据怎么抽取”,内容详细,步骤清晰,细节处理妥当,希望这篇“Flink流处理引擎之数据怎么抽取”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、CDCCDC (Cha
2023-06-30

kettle怎么抽取整个数据库

要抽取整个数据库中的数据,可以使用以下步骤:1. 连接到数据库:使用适当的数据库连接库(如Python的`pymysql`、`pyodbc`、`psycopg2`等)连接到你的数据库。提供正确的数据库地址、用户名、密码等信息。```pyth
2023-09-20

kettle怎么优化抽取数据速度

要优化抽取数据速度,可以考虑以下几个方面:1. 使用更高效的数据结构:使用更适合存储和快速访问的数据结构,如使用哈希表而不是列表。2. 使用索引:对于需要频繁访问的数据,可以创建索引来加快数据的检索速度。3. 避免不必要的数据转换:尽量减少
2023-09-20

C#抽象类怎么理解

这篇文章主要介绍“C#抽象类怎么理解”,在日常操作中,相信很多人在C#抽象类怎么理解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#抽象类怎么理解”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!C#抽象类
2023-06-17

oracle实时数据抽取的方法是什么

Oracle实时数据抽取的方法有以下几种:1. 使用Oracle的LogMiner工具:LogMiner是Oracle数据库的一个工具,可以解析数据库的归档日志和在线日志,从中提取出更新操作的详细信息,可以用于实时数据抽取。2. 使用Ora
2023-08-29

Kettle 抽取Oracle数据到HDFS发生串行如何解决

在做离线数仓开发的时候,很多时候我们都是将业务数据库数据抽取到数据仓库的ODS层,在抽取过程中,有时候会发现数据条数变多,这种情况下很有可能是数据库内容中有特殊字符导致,常见的导致数据串行的特殊字符有制表符(chr(9)),换行符(chr(10))和回车符(c
Kettle  抽取Oracle数据到HDFS发生串行如何解决
2016-01-08

从云数据迁移服务看MySQL大表抽取模式的原理解析

摘要:MySQL JDBC抽取到底应该采用什么样的方式,且听小编给你娓娓道来。 小编最近在云上的一个迁移项目中被MySQL抽取模式折磨的很惨。一开始爆内存被客户怼,再后来迁移效率低下再被怼。MySQL JDBC抽取到底应该采用什么样的方式,
2022-05-17

数据抽取工具kettle输出的步骤是什么

Kettle(也称为Pentaho Data Integration)是一种用于提取、转换和加载(ETL)数据的开源工具。它的输出步骤通常包括以下几个步骤:1. 输入数据源连接:首先,需要设置输入数据源的连接信息。这可以是数据库、文本文件、
2023-09-20

kettle增量同步抽取数据的方法是什么

kettle增量同步抽取数据的方法通常是通过以下步骤实现:1. 确定增量字段:首先需要确定用于判断数据是否已经同步的增量字段。这个字段记录了每条数据的更新时间戳或者唯一标识,用于区分新数据和已同步数据。2. 抽取增量数据:使用kettle的
2023-09-20

WCF数据怎么理解

这篇文章主要讲解了“WCF数据怎么理解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“WCF数据怎么理解”吧!WCF数据可能包含多个终结点,每个终结点相当于是通信的入口,客户端和服务端通过终结
2023-06-17

sqlserver怎么解析json提取数据

在SQL Server中解析JSON数据并提取数据,可以使用内置的JSON函数和方法。以下是一些常用的JSON函数和方法:JSON_VALUE:用于从JSON对象中提取单个值。SELECT JSON_VALUE(column_name, &
sqlserver怎么解析json提取数据
2024-04-12

大数据采集和抽取怎么做?这篇文章终于说明白了!

本文来源于公众号【胖滚猪学编程】,转载请注明出处!关于数据中台的概念和架构,我们在大白话 六问数据中台和数据中台全景架构及模块解析!一文入门中台架构师!两篇文章中都说明白了。从这一篇文章开始分享中台落地实战。其实无论是数据中台还是数据平台,数据无疑都是核心中的
大数据采集和抽取怎么做?这篇文章终于说明白了!
2021-04-23

怎么理解ADO.NET数据表

这篇文章主要讲解了“怎么理解ADO.NET数据表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解ADO.NET数据表”吧!ADO.NET包含一个表示该表的模式的列集合(ColumnsC
2023-06-17

编程热搜

目录