• amdu从asm抽取数据文件的例子


    在asm不能mount的情况下,怎样获得数据文件的文件名呢?该方法不能保证完全恢复数据库
    1.从alert.log中过滤控制文件,首先将控制文件抽取出来
    [oracle@lxtrac06 trace]$ cat alert_srw2.log |grep -i controlfile
    control_files = "+DATA/srw/controlfile/current.296.935313043"
    2.amdu抽取控制文件
    (diskstring 可以在grid日志中找
    [grid@lxtrac06 trace]$ cat alert_+ASM2.log |grep -i diskstring
    asm_diskstring = "/dev/asm*")
    [grid@lxtrac06 ~]$ amdu -diskstring '/dev/asm*' -extract "data.325"
    amdu_2017_02_20_22_22_05/
    [grid@lxtrac06 ~]$
    3.在抽取的控制文件中,找到数据文件的信息。
    [grid@lxtrac06 amdu_2017_02_20_22_22_05]$ strings DATA_325.f |grep +DATA
    +DATA/srw/datafile/system.364.935337561
    +DATA/srw/datafile/sysaux.359.935337577
    ……
    4.执行抽取
    [grid@lxtrac06 ~]$ amdu -diskstring '/dev/asm*' -extract "data.364"
    amdu_2017_02_20_22_30_16/
    [grid@lxtrac06 amdu_2017_02_20_22_30_16]$ ls -lhtr
    total 26M
    -rw-r--r-- 1 grid oinstall 3.6K Feb 20 22:30 report.txt
    -rw-r--r-- 1 grid oinstall 26M Feb 20 22:30 DATA_364.f
    [grid@lxtrac06 amdu_2017_02_20_22_30_16]$
    5.用之前的控制文件启动到mount阶段,然后重命名数据文件。某写日志文件也需要弄出来
    sql> alter database rename file '+DATA/srw/datafile/system.364.935337561' to '/u01/oradata/DATA_364.f'
    ………………

    6.尝试打开数据库。

    适用场景:
    ocr盘损坏,ASM磁盘组受损

    参考资料:How to Restore the Database Using AMDU after Diskgroup Corruption (文档 ID 1597581.1)

    实验使用amdu恢复一个测试库:

    os:redhat 5.5

    db:11.2.0.4

    将集群关闭掉:
    [root@lxtrac06 bin]# ./crsctl stop crs
    CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'lxtrac06'
    CRS-2673: Attempting to stop 'ora.crsd' on 'lxtrac06'
    CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'lxtrac06'
    CRS-2673: Attempting to stop 'ora.LISTENER_SCAN1.lsnr' on 'lxtrac06'
    CRS-2673: Attempting to stop 'ora.oc4j' on 'lxtrac06'
    CRS-2673: Attempting to stop 'ora.lxtrac06.vip' on 'lxtrac06'
    CRS-2673: Attempting to stop 'ora.cvu' on 'lxtrac06'
    CRS-2673: Attempting to stop 'ora.registry.acfs' on 'lxtrac06'
    CRS-2673: Attempting to stop 'ora.erwadba.db' on 'lxtrac06'
    CRS-2673: Attempting to stop 'ora.srw.db' on 'lxtrac06'
    CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'lxtrac06'
    CRS-2677: Stop of 'ora.LISTENER_SCAN1.lsnr' on 'lxtrac06' succeeded
    CRS-2673: Attempting to stop 'ora.scan1.vip' on 'lxtrac06'
    CRS-2677: Stop of 'ora.cvu' on 'lxtrac06' succeeded
    CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'lxtrac06' succeeded
    CRS-2677: Stop of 'ora.registry.acfs' on 'lxtrac06' succeeded
    CRS-2677: Stop of 'ora.lxtrac06.vip' on 'lxtrac06' succeeded
    CRS-2673: Attempting to stop 'ora.lxtrac05.vip' on 'lxtrac06'
    CRS-2677: Stop of 'ora.scan1.vip' on 'lxtrac06' succeeded
    CRS-2677: Stop of 'ora.lxtrac05.vip' on 'lxtrac06' succeeded
    CRS-2677: Stop of 'ora.oc4j' on 'lxtrac06' succeeded
    CRS-2677: Stop of 'ora.srw.db' on 'lxtrac06' succeeded
    CRS-2677: Stop of 'ora.erwadba.db' on 'lxtrac06' succeeded
    CRS-2673: Attempting to stop 'ora.DATA.dg' on 'lxtrac06'
    CRS-2677: Stop of 'ora.DATA.dg' on 'lxtrac06' succeeded
    CRS-2673: Attempting to stop 'ora.asm' on 'lxtrac06'
    CRS-2677: Stop of 'ora.asm' on 'lxtrac06' succeeded
    CRS-2673: Attempting to stop 'ora.ons' on 'lxtrac06'
    CRS-2677: Stop of 'ora.ons' on 'lxtrac06' succeeded
    CRS-2673: Attempting to stop 'ora.net1.network' on 'lxtrac06'
    CRS-2677: Stop of 'ora.net1.network' on 'lxtrac06' succeeded
    CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'lxtrac06' has completed
    CRS-2677: Stop of 'ora.crsd' on 'lxtrac06' succeeded
    CRS-2673: Attempting to stop 'ora.ctssd' on 'lxtrac06'
    CRS-2673: Attempting to stop 'ora.evmd' on 'lxtrac06'
    CRS-2673: Attempting to stop 'ora.asm' on 'lxtrac06'
    CRS-2673: Attempting to stop 'ora.mdnsd' on 'lxtrac06'
    CRS-2673: Attempting to stop 'ora.drivers.acfs' on 'lxtrac06'
    CRS-2677: Stop of 'ora.evmd' on 'lxtrac06' succeeded
    CRS-2677: Stop of 'ora.mdnsd' on 'lxtrac06' succeeded
    CRS-2677: Stop of 'ora.asm' on 'lxtrac06' succeeded
    CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'lxtrac06'
    CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'lxtrac06' succeeded
    CRS-2677: Stop of 'ora.drivers.acfs' on 'lxtrac06' succeeded
    CRS-2677: Stop of 'ora.ctssd' on 'lxtrac06' succeeded
    CRS-2673: Attempting to stop 'ora.cssd' on 'lxtrac06'
    CRS-2677: Stop of 'ora.cssd' on 'lxtrac06' succeeded
    CRS-2673: Attempting to stop 'ora.crf' on 'lxtrac06'
    CRS-2677: Stop of 'ora.crf' on 'lxtrac06' succeeded
    CRS-2673: Attempting to stop 'ora.gipcd' on 'lxtrac06'
    CRS-2677: Stop of 'ora.gipcd' on 'lxtrac06' succeeded
    CRS-2673: Attempting to stop 'ora.gpnpd' on 'lxtrac06'
    CRS-2677: Stop of 'ora.gpnpd' on 'lxtrac06' succeeded
    CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'lxtrac06' has completed
    CRS-4133: Oracle High Availability Services has been stopped.
    [root@lxtrac06 bin]#
    [oracle@lxtrac06 trace]$ cat alert_erwadba.log |grep -i control
    control_files = "+DATA/erwadba/controlfile/current.1156.963652931"
    [oracle@lxtrac06 trace]$
    [grid@lxtrac06 trace]$ tail -1000 alert_+ASM2.log |grep -i string
    asm_diskstring = "/dev/asm*"
    asm_diskstring = "/dev/asm*"
    asm_diskstring = "/dev/asm*"
    [grid@lxtrac06 trace]$
    [grid@lxtrac06 ~]$ amdu -diskstring '/dev/asm*' -extract "data.1156" -output control01.ctl
    amdu_2017_12_25_10_53_36/
    [grid@lxtrac06 ~]$ strings control01.ctl| grep -i +|sort|uniq
    +DATA/erwadba/datafile/sysaux.1153.963652859
    +DATA/erwadba/datafile/system.1152.963652859
    +DATA/erwadba/datafile/undotbs1.1154.963652859
    +DATA/erwadba/datafile/users.1155.963652859
    +DATA/erwadba/onlinelog/group_1.1158.963652933
    +DATA/erwadba/onlinelog/group_2.837.963652933
    +DATA/erwadba/onlinelog/group_3.836.963652933
    +DATA/erwadba/tempfile/temp.835.963652937
    [grid@lxtrac06 ~]$
    [grid@lxtrac06 ~]$ amdu -diskstring '/dev/asm*' -extract "data.1153" -output sysaux.dbf
    amdu_2017_12_25_11_12_21/
    [grid@lxtrac06 ~]$ amdu -diskstring '/dev/asm*' -extract "data.1152" -output system.dbf
    [grid@lxtrac06 ~]$ amdu -diskstring '/dev/asm*' -extract "data.1154" -output undotbs1.dbf
    [grid@lxtrac06 ~]$ amdu -diskstring '/dev/asm*' -extract "data.1155" -output users.dbf
    [grid@lxtrac06 ~]$ amdu -diskstring '/dev/asm*' -extract "data.1158" -output redo1.log
    [grid@lxtrac06 ~]$ amdu -diskstring '/dev/asm*' -extract "data.837" -output redo2.log
    [grid@lxtrac06 ~]$ amdu -diskstring '/dev/asm*' -extract "data.836" -output redo3.log
    [grid@lxtrac06 ~]$ ls
    amdu_2017_12_25_11_04_13 amdu_2017_12_25_11_14_19 amdu_2017_12_25_11_14_59 redo1.log sysaux.dbf users.dbf
    amdu_2017_12_25_11_12_21 amdu_2017_12_25_11_14_41 amdu_2017_12_25_11_15_07 redo2.log system.dbf
    amdu_2017_12_25_11_14_04 amdu_2017_12_25_11_14_51 control01.ctl redo3.log undotbs1.dbf
    [grid@lxtrac06 ~]$
    修改权限
    [oracle@lxtrac06 ~]$ mkdir /u01/app/oracle/erwadba
    [oracle@lxtrac06 ~]$
    [root@lxtrac06 grid]# mv * /u01/app/oracle/erwadba
    [root@lxtrac06 grid]#chown oracle:oinstall
    在alert.log中找相关的参数,写一个pfile文件
    [oracle@lxtrac06 erwadba]$ cat initerwa.ora
    *.processes=1000
    *.sga_target=1G
    *.control_files="/u01/app/oracle/erwadba/control01.ctl"
    *.db_block_size=8192
    *.compatible= "11.2.0.4.0"
    *.undo_tablespace= "UNDOTBS1"
    *.db_name="erwadba"
    *.pga_aggregate_target = 400M
    [oracle@lxtrac06 erwadba]$
    启动crs,不启动数据库
    [root@lxtrac06 bin]# ps -ef|grep pmon
    grid 28664 1 0 12:14 ? 00:00:00 asm_pmon_+ASM2
    root 30682 19673 0 12:17 pts/5 00:00:00 grep pmon
    [root@lxtrac06 bin]#
    启动数据库到mount
    [oracle@lxtrac06 erwadba]$ export ORACLE_SID=erwadba
    [oracle@lxtrac06 ~]$ sqlplus / as sysdba

    SQL*Plus: Release 11.2.0.4.0 Production on Mon Dec 25 12:20:16 2017

    Copyright (c) 1982, 2013, Oracle. All rights reserved.

    Connected to an idle instance.

    SQL> startup mount pfile='/u01/app/oracle/erwadba/initerwa.ora';
    ORACLE instance started.

    Total System Global Area 1068937216 bytes
    Fixed Size 2260088 bytes
    Variable Size 285213576 bytes
    Database Buffers 775946240 bytes
    Redo Buffers 5517312 bytes
    Database mounted.
    SQL>
    修改控制文件中的数据文件路径
    SQL> select file#,name from v$datafile;

    FILE# NAME
    ---------- --------------------------------------------------
    1 +DATA/erwadba/datafile/system.1152.963652859
    2 +DATA/erwadba/datafile/sysaux.1153.963652859
    3 +DATA/erwadba/datafile/undotbs1.1154.963652859
    4 +DATA/erwadba/datafile/users.1155.963652859
    SQL> alter database rename file '+DATA/erwadba/datafile/system.1152.963652859' to '/u01/app/oracle/erwadba/system.dbf';
    Database altered.
    SQL> alter database rename file '+DATA/erwadba/datafile/sysaux.1153.963652859' to '/u01/app/oracle/erwadba/sysaux.dbf';
    Database altered.
    SQL> alter database rename file '+DATA/erwadba/datafile/undotbs1.1154.963652859' to '/u01/app/oracle/erwadba/undotbs1.dbf';
    Database altered.
    SQL> alter database rename file '+DATA/erwadba/datafile/users.1155.963652859' to '/u01/app/oracle/erwadba/users.dbf';
    Database altered.
    SQL> alter database rename file '+DATA/erwadba/onlinelog/group_1.1158.963652933' to '/u01/app/oracle/erwadba/redo1.log';
    Database altered.
    SQL> alter database rename file '+DATA/erwadba/onlinelog/group_2.837.963652933' to '/u01/app/oracle/erwadba/redo2.log';
    Database altered.
    SQL> alter database rename file '+DATA/erwadba/onlinelog/group_3.836.963652933' to '/u01/app/oracle/erwadba/redo3.log';
    Database altered.
    SQL>
    打开数据库
    SQL> alter database open;
    Database altered.
    SQL>
    重建临时文件
    SQL> alter tablespace temp add tempfile '/u01/app/oracle/erwadba/tmp01.dbf' size 10M autoextend on;
    Tablespace altered.
    SQL>
    SQL> select name from v$datafile;
    NAME
    --------------------------------------------------
    /u01/app/oracle/erwadba/system.dbf
    /u01/app/oracle/erwadba/sysaux.dbf
    /u01/app/oracle/erwadba/undotbs1.dbf
    /u01/app/oracle/erwadba/users.dbf
    SQL>
    到此数据库正常打开。后面还需要创建spfile,添加监听等就不记录了。

  • 相关阅读:
    C# 温故而知新:Stream篇(—)
    C# 温故而知新:Stream篇(三)
    Unity教程之Unity Attribute的使用总结
    鹅厂分享会丨面向Unity程序员的Android快速上手教程
    【Unity】编辑器小教程
    浅析Unity 坐标系
    C# 温故而知新:Stream篇(五)
    C# 温故而知新:Stream篇(二)
    unity 协程原理与线程的区别
    简单获取2月天数
  • 原文地址:https://www.cnblogs.com/erwadba/p/8108937.html
Copyright © 2020-2023  润新知