search
HomeDatabaseMysql Tutorial 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,启动数据库,最终成功启动数据库

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Reduce the use of MySQL memory in DockerReduce the use of MySQL memory in DockerMar 04, 2025 pm 03:52 PM

This article explores optimizing MySQL memory usage in Docker. It discusses monitoring techniques (Docker stats, Performance Schema, external tools) and configuration strategies. These include Docker memory limits, swapping, and cgroups, alongside

How to solve the problem of mysql cannot open shared libraryHow to solve the problem of mysql cannot open shared libraryMar 04, 2025 pm 04:01 PM

This article addresses MySQL's "unable to open shared library" error. The issue stems from MySQL's inability to locate necessary shared libraries (.so/.dll files). Solutions involve verifying library installation via the system's package m

How do you alter a table in MySQL using the ALTER TABLE statement?How do you alter a table in MySQL using the ALTER TABLE statement?Mar 19, 2025 pm 03:51 PM

The article discusses using MySQL's ALTER TABLE statement to modify tables, including adding/dropping columns, renaming tables/columns, and changing column data types.

Run MySQl in Linux (with/without podman container with phpmyadmin)Run MySQl in Linux (with/without podman container with phpmyadmin)Mar 04, 2025 pm 03:54 PM

This article compares installing MySQL on Linux directly versus using Podman containers, with/without phpMyAdmin. It details installation steps for each method, emphasizing Podman's advantages in isolation, portability, and reproducibility, but also

What is SQLite? Comprehensive overviewWhat is SQLite? Comprehensive overviewMar 04, 2025 pm 03:55 PM

This article provides a comprehensive overview of SQLite, a self-contained, serverless relational database. It details SQLite's advantages (simplicity, portability, ease of use) and disadvantages (concurrency limitations, scalability challenges). C

How do I configure SSL/TLS encryption for MySQL connections?How do I configure SSL/TLS encryption for MySQL connections?Mar 18, 2025 pm 12:01 PM

Article discusses configuring SSL/TLS encryption for MySQL, including certificate generation and verification. Main issue is using self-signed certificates' security implications.[Character count: 159]

Running multiple MySQL versions on MacOS: A step-by-step guideRunning multiple MySQL versions on MacOS: A step-by-step guideMar 04, 2025 pm 03:49 PM

This guide demonstrates installing and managing multiple MySQL versions on macOS using Homebrew. It emphasizes using Homebrew to isolate installations, preventing conflicts. The article details installation, starting/stopping services, and best pra

What are some popular MySQL GUI tools (e.g., MySQL Workbench, phpMyAdmin)?What are some popular MySQL GUI tools (e.g., MySQL Workbench, phpMyAdmin)?Mar 21, 2025 pm 06:28 PM

Article discusses popular MySQL GUI tools like MySQL Workbench and phpMyAdmin, comparing their features and suitability for beginners and advanced users.[159 characters]

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)