zoukankan      html  css  js  c++  java
  • RMAN数据库恢复 之归档模式有(无)备份-丢失数据文件的恢复

    1、归档模式有备份,丢失数据文件的恢复
    归档模式有备份,不管丢失什么数据文件,直接在RMAN下RESTOER--->RECOVER--->OPEN即可。

    RMAN> STARUP MOUNT;
    
    RMAN> RESTORE DATAFILE 5; --恢复丢失的数据文件,序号为5;
    
    RMAN> RECOVER DATAFILE 5; --应用归档文件,联机重做日志文件执行数据库修复,将数据文件恢复到最近时间点(就是应用备份后到数据文件 
    丢失前的那些更改,以保持数据库的一致性状态)
    
    RMAN> ALTER DATABASE OPEN;

    2、归档模式无备份,丢失数据文件的恢复
    说明:如果丢失的是SYSTEM表空间中的数据文件,则必须要有备份,否则无法恢复。如果丢失的是临时表空间,则不需要恢复,重建一个就可以了。如果丢失的是其它表空间的数据文件,从其创建时刻起所有的重做日志文件都还在,因此只需要重建该数据文件后,通过RECOVER应用重做日志,重建该数据文件的内容即可。
    2.1 非RMAN模式恢复(用户管理和备份方式)

    准备测试数据:

    SQL> CREATE TABLESPACE TEST DATAFILE 'D:TEST	est01.dbf' size 10M;
    表空间已创建。
    
    SQL> CREATE USER TEST IDENTIFIED BY TEST DEFAULT TABLESPACE TEST QUOTA UNLIMITED ON TEST;
    用户已创建。
    
    SQL> GRANT CONNECT,RESOURCE TO TEST;
    授权成功。
    
    SQL> create table test(id number(2), name varchar2(4));
    表已创建。
    
    SQL> insert into test values(1,'NM1');
    已创建 1 行。
    
    SQL> insert into test values(2,'NM2');
    已创建 1 行。
    
    SQL> insert into test values(3,'NM3');
    已创建 1 行。
    
    SQL> COMMIT;
    提交完成。
    
    SQL> SELECT * FROM TEST;
    ID NAME
    ---------- ----
    1 NM1
    2 NM2
    3 NM3

    --以SYS连接,修改数据文件为offline,删除test01.dbf,并执行数据文件恢复

    SQL> alter database datafile 'D:TEST	est01.dbf' offline;
    数据库已更改。
    
    SQL> host del D:TEST	est01.dbf
    
    SQL> alter database create datafile 'D:TESTTEST01.DBF';
    数据库已更改。
    (如果是原路径无法访问,可在创建数据文件时指定新的路径:alter database create datafile 'E:TESTTEST01.DBF' as 'D:TEST 
    TEST01.DBF';)
    SQL> recover datafile 'D:TESTTEST01.DBF';
    完成介质恢复。
    
    SQL> conn TEST/TEST@ORCL;
    已连接。
    
    --以sys连接实例,修改数据文件状态为ONLINE:
    SQL> ALTER DATABASE DATAFILE 'D:TESTTEST01.DBF' ONLINE;
    数据库已更改。
    
    SQL> conn TEST/TEST@ORCL;
    已连接。
    ------------------查看数据,已恢复。
    SQL> SELECT * FROM TEST;
    ID NAME
    ---------- ----
    1 NM1
    2 NM2
    3 NM3

    2.2 在RMAN模式下恢复
    与用户管理的备份和恢复模式相比,只多了一步连接RMAN的操作。

    C:UsersAdministrator>rman catalog RMANCT/RMANCT@ORCL;
    
    恢复管理器: Release 11.2.0.1.0 - Production on 星期三 12月 24 22:05:29 2014
    
    Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
    
    连接到恢复目录数据库
    
    RMAN> CONNECT TARGET /
    
    连接到目标数据库: ORCL (DBID=1392118573)

    -----------------------------------------------------------------------------
    同样将数据文件置于OFFLINE,删除数据文件,RESTORE,再RECOVER,置数据文件为ONLINE即可。

    SQL> alter database datafile 'D:TESTTEST01.DBF' offline;
    
    数据库已更改。
    
    SQL> host del D:TESTTEST01.DBF
    
    RMAN> restore datafile 'D:TESTTEST01.DBF';
    
    启动 restore24-12月-14
    在恢复目录中注册的数据库的新原型
    正在启动全部恢复目录的 resync
    完成全部 resync
    分配的通道: ORA_DISK_1
    通道 ORA_DISK_1: SID=178 设备类型=DISK
    
    创建数据文件, 文件号 = 8 名称 = D:TESTTEST01.DBF
    没有完成还原; 所有文件均为只读或脱机文件或者已经还原
    完成 restore24-12月-14
    正在启动全部恢复目录的 resync
    完成全部 resync
    
    RMAN> recover datafile 'D:TESTTEST01.DBF';
    
    启动 recover 于 24-12月-14
    使用通道 ORA_DISK_1
    
    正在开始介质的恢复
    介质恢复完成, 用时: 00:00:01
    
    完成 recover 于 24-12月-14
    
    SQL> alter database datafile 'D:TESTTEST01.DBF' online;
    
    数据库已更改。
    
    SQL> CONN TEST/TEST@ORCL;
    已连接。
    SQL> SELECT * FROM TEST;
    
    ID NAME
    ---------- ----
    1 NM1
    2 NM2
    3 NM3
  • 相关阅读:
    ofbiz定时任务配置
    MySQL重置root密码
    谷歌默认最小字体解决方案
    CSS样式-文字在一行内显示不换行,超出部分用省略号(white-space、overflow、text-overflow、word-wrap、word-break)
    使用gulp自动化打包合并前端静态资源(CSS、JS文件压缩、添加版本号)
    JS判断两个日期是否为同一周
    AES、DES加解密方法(Java和JS编程)
    Nodejs代理解决开发环境下跨域问题
    js的垃圾收集机制以及写代码如何处理
    手机端黑屏时定时器无法执行
  • 原文地址:https://www.cnblogs.com/rusking/p/4183532.html
Copyright © 2011-2022 走看看