首页 > 其他 > 详细

(07)通过重建恢复ASM下的数据文件

时间:2014-02-28 19:35:45      阅读:558      评论:0      收藏:0      [点我收藏+]
   本次恢复说明适合于日志完备,但数据文件丢失或损坏的情况。
   原理是,数据文件丢了,但创建它,填充它的日志还在。我重建个空的物理文件,让数据库重新执行一遍日志,不就把数据文件恢复过来了。

在RAC+ASM环境下测试:

1. 查出数据库的所有数据文件

    SQL>select file#,name from v$datafile;
2. 做个全备以防万一,然后新增测试用于表空间和数据文件
    RMAN>backup as copy database 
     SQL>create tablespace test_data datafile size 2m;

3. 停掉RAC数据库
     srvctl stop database -d xcldb -o immediate

 4. 破坏掉数据文件
     su - grid 
     export ORACLE_SID=+ASM1
     asmcmd -p
     cd DATA1
     cd DBRAC
     cd DATAFILE
     rm 数据文件
   现在如果回到oracle用户,启动数据库,会报错。


  开始恢复:
   如换成正常文件系统,则恢复方法如下:

       1.重建一个文件
        SQL>alter database create datafile ‘/u01/app/oradata/xcldb/test01.dbf‘;
    2.在重建文件上,执行恢复
             SQL>recover datafile 8;
    3.打开数据库
         SQL>alter database open;
   
    ASM下则麻烦点:
     1.重建一个文件
        alter database create datafile 8;
     使用文件号重建了一个文件,使用文件名创建,像下面例子一下,也可,但没必要。
      alter database create datafile ‘+DATA1/dbrac/......./test.xxx.xxxxxxxxx‘;
        这是由asm的特性决定的,它要求asm上的每个文件名必须都是唯一的,它采用
         tag_name.file_number.incarnation的方式命名。你指定个文件名,它也会自动弄成一个名字。

    2. 通过查询控制文件与asm得到两个数据文件名
         2.1得到数据库原来对应的文件名
              SQL>select file#,name from v$datafile;
         2.2在asmcmd中去查到新创建的数据文件名.
   
    3. 把文件名对应的数据文件改成新的数据文件名
        SQL>alter database rename file ‘+DATA1/dbrac/datafile/test.288.678913234‘ to ‘+DATA1/dbrac/datafile/test.288.678953008‘ ;

    4. 再执行恢复,完成后打开数据库
       SQL>recover datafile 8;
       SQL>alter database open;
    5.检查 

        SQL>select file_name,tablespace_name,bytes/1024/1024 from dba_data_files;


MAIL:  xcl_168@aliyun.com

BLOG: http://blog.csdn.net/xcl168


(07)通过重建恢复ASM下的数据文件,布布扣,bubuko.com

(07)通过重建恢复ASM下的数据文件

原文:http://blog.csdn.net/xcl168/article/details/20082631

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!