搜索
首页数据库mysql教程 AMDU-- ASM文件转移工具

近日遇到一个问题,就是ASMdiskgroup无法挂载,通过分析之后,发现有会快存在,但是由于没有备份,没有办法重建diskgroup并从backup恢复--所以所以所以....备份


      近日遇到一个问题,就是ASM diskgroup无法挂载,通过分析之后,发现有会快存在,,但是由于没有备份,没有办法重建diskgroup并从backup恢复--所以所以所以....备份很重要啊!不然,哭!!是早晚的事情!

通过解决这个问题,我在自己的测试环境测试了如何在ASM diskgroup无法mount的情况下,尽量挽救数据文件。

这里使用到oracle 工具AMDU,该具体信息可以参考AMDU functionality and usage (Doc ID 855791.1)


1. 由于diskgroup无法挂载,SPFILE、CONTROLFILE、DATAFILE都无法读取

根据步骤,我们首先需要恢复spfile文件,spfile文件存在的意义就是找到control_files的位置,如果spfile无法访问,需要查找备份。

SQL> show parameter control_files +DATA/db/controlfile/current.260.804295233, +FRA/db/controlfile/current.256.804295237

2. 通过ASM实例找到asm_diskstring

SQL> show parameter disk NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ asm_diskgroups string DATA, FRA asm_diskstring string /dev/sd*

3. 查找asm disk的路径,后续要指定diskstring来扫描磁盘

SQL> select NAME,STATE,TYPE,OFFLINE_DISKS,VOTING_FILES from v$asm_diskgroup; SQL> col PATH for a50 SQL> col name for a10 SQL> set line 200 SQL> select DISK_NUMBER,GROUP_NUMBER,PATH,name from v$asm_disk; DISK_NUMBER GROUP_NUMBER PATH NAME ----------- ------------ -------------------------------------------------- ---------- 1 2 /dev/oracleasm/disks/ASMDISK5 FRA_0001 0 2 /dev/oracleasm/disks/ASMDISK4 FRA_0000 2 1 /dev/oracleasm/disks/ASMDISK3 DATA_0002 DISK_NUMBER GROUP_NUMBER PATH NAME ----------- ------------ -------------------------------------------------- ---------- 1 1 /dev/oracleasm/disks/ASMDISK2 DATA_0001 0 1 /dev/oracleasm/disks/ASMDISK1 DATA_0000

4. 在diskgroup mount状态,是不能使用amdu导出文件的

执行amdu命令开始导出,遇到错误

$ amdu -diskstring '/dev/oracleasm/disks/ASMDISK*' -extract data.260 amdu_2013_07_03_17_29_13/ AMDU-00204: Disk N0005 is in currently mounted diskgroup DATA AMDU-00201: Disk N0005: '/dev/oracleasm/disks/ASMDISK1'

检查发现磁盘组mount

$ crsctl status res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- ora.DATA.dg ONLINE ONLINE single-db ora.FRA.dg ONLINE ONLINE single-db

5. 导出控制文件

$ amdu -diskstring '/dev/oracleasm/disks/ASMDISK*' -extract data.260 amdu_2013_07_03_17_46_07/ [oracle@Single-DB amdu]$ cd amdu_2013_07_03_17_46_07/ [oracle@Single-DB amdu_2013_07_03_17_46_07]$ ls DATA_260.f report.txt


6. 尝试挂载control file

发现spfile也存放在磁盘组中无法nomount

$ sqlplus / as sysdba SQL> startup nomount; ORA-01078: failure in processing system parameters ORA-01565: error in identifying file '+DATA/db/spfiledb.ora' ORA-17503: ksfdopn:2 Failed to open file +DATA/db/spfiledb.ora ORA-15056: additional error message ORA-17503: ksfdopn:DGOpenFile05 Failed to open file +DATA/db/spfiledb.ora ORA-17503: ksfdopn:2 Failed to open file +DATA/db/spfiledb.ora ORA-15001: diskgroup "DATA" does not exist or is not mounted ORA-06512: at line 4

7. 那就编辑一个新的pfile文件

$ cp init.ora spfilebk.ora $ vi spfilebk.ora ~~~~~~~~~~~~~~~ db_name='DB' sga_target=1G processes = 150 audit_trail ='db' db_block_size=8192 db_domain='' db_recovery_file_dest_size=2G open_cursors=300 remote_login_passwordfile='EXCLUSIVE' undo_tablespace='UNDOTBS1' control_files = /u01/amdu/amdu_2013_07_03_17_46_07/DATA_260.f compatible ='11.2.0' ~~~~~~~~~~~~~~~

8. 通过导出的控制文件启动数据库到mount模式,成功启动,说明AMDU导出的数据时正确的,继续。。。。。

$ sqlplus / as sysdba SQL> startup nomount pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfilebk.ora'; ORACLE instance started. Total System Global Area 1068937216 bytes Fixed Size 2220200 bytes Variable Size 281022296 bytes Database Buffers 780140544 bytes Redo Buffers 5554176 bytes SQL> alter database mount; Database altered.

9. 查看数据文件的位置,然后一一导出

SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- +DATA/db/datafile/system.256.804295135 +DATA/db/datafile/sysaux.257.804295137 +DATA/db/datafile/undotbs1.258.804295139 +DATA/db/datafile/users.259.804295141 $ amdu -diskstring '/dev/oracleasm/disks/ASMDISK*' -extract data.256

10. 重命名数据文件,并移动到同一个目录下,准备挂载数据文件

$ mv amdu_2013_07_03_18_12_56/DATA_257.f sysaux.257.804295137 $ mv amdu_2013_07_03_18_22_23/DATA_259.f users.259.804295141 $ mv amdu_2013_07_03_18_23_06/DATA_258.f undotbs1.258.804295139 $ ll -rw-r--r-- 1 oracle dba 545267712 Jul 3 18:14 sysaux.257.804295137 -rw-r--r-- 1 oracle dba 702554112 Jul 3 18:11 system.256.804295135 -rw-r--r-- 1 oracle dba 99622912 Jul 3 18:23 undotbs1.258.804295139 -rw-r--r-- 1 oracle dba 5251072 Jul 3 18:22 users.259.804295141

11. 挂载前需要修改pfile文件,下面是open数据库是control file如何识别不同路径的datafile, 我使用convert参数来解决(也可以是用set newname的方式)

db_file_name_convert='+DATA/db/datafile','/u01/amdu/amdu_datafile'

添加完pfile,启动数据库,最终成功启动数据库

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
减少在Docker中使用MySQL内存的使用减少在Docker中使用MySQL内存的使用Mar 04, 2025 pm 03:52 PM

本文探讨了Docker中的优化MySQL内存使用量。 它讨论了监视技术(Docker统计,性能架构,外部工具)和配置策略。 其中包括Docker内存限制,交换和cgroups

mysql无法打开共享库怎么解决mysql无法打开共享库怎么解决Mar 04, 2025 pm 04:01 PM

本文介绍了MySQL的“无法打开共享库”错误。 该问题源于MySQL无法找到必要的共享库(.SO/.DLL文件)。解决方案涉及通过系统软件包M验证库安装

如何使用Alter Table语句在MySQL中更改表?如何使用Alter Table语句在MySQL中更改表?Mar 19, 2025 pm 03:51 PM

本文讨论了使用MySQL的Alter Table语句修改表,包括添加/删除列,重命名表/列以及更改列数据类型。

在 Linux 中运行 MySQl(有/没有带有 phpmyadmin 的 podman 容器)在 Linux 中运行 MySQl(有/没有带有 phpmyadmin 的 podman 容器)Mar 04, 2025 pm 03:54 PM

本文比较使用/不使用PhpMyAdmin的Podman容器直接在Linux上安装MySQL。 它详细介绍了每种方法的安装步骤,强调了Podman在孤立,可移植性和可重复性方面的优势,还

什么是 SQLite?全面概述什么是 SQLite?全面概述Mar 04, 2025 pm 03:55 PM

本文提供了SQLite的全面概述,SQLite是一个独立的,无服务器的关系数据库。 它详细介绍了SQLite的优势(简单,可移植性,易用性)和缺点(并发限制,可伸缩性挑战)。 c

在MacOS上运行多个MySQL版本:逐步指南在MacOS上运行多个MySQL版本:逐步指南Mar 04, 2025 pm 03:49 PM

本指南展示了使用自制在MacOS上安装和管理多个MySQL版本。 它强调使用自制装置隔离安装,以防止冲突。 本文详细详细介绍了安装,起始/停止服务和最佳PRA

如何为MySQL连接配置SSL/TLS加密?如何为MySQL连接配置SSL/TLS加密?Mar 18, 2025 pm 12:01 PM

文章讨论了为MySQL配置SSL/TLS加密,包括证书生成和验证。主要问题是使用自签名证书的安全含义。[角色计数:159]

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什么?哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什么?Mar 21, 2025 pm 06:28 PM

文章讨论了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比较了它们对初学者和高级用户的功能和适合性。[159个字符]

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)