基于数据库的不完全恢复-DataBase Point In Time Recovery(RMAN)

RMAN全备情况下,所有文件丢失 spfile  ctl  datafile  归档  redo

恢复思路:文件都缺失所以无法开库,甚至不能在sqlplus下进行nomount
            所以利用rman的备份集中备份的spfile启动到rman里的nomount下


删除所有的数据文件  控制文件和redo 以及 spfile
    [oracle@ORA-RAC1 dbs]$ ls
    arch1_1_1067272870.dbf  arch1_3_1067355744.dbf  hc_prod.dat  lkPROD     snapcf_prod.f
    arch1_2_1067272870.dbf  arch1_4_1067355744.dbf  init.ora     orapwprod  spfileprod.ora
    [oracle@ORA-RAC1 dbs]$ mv spfileprod.ora spfileprod.ora.bak
    [oracle@ORA-RAC1 dbs]$ cd /u01/oradata/prod/
    [oracle@ORA-RAC1 prod]$ ls
    archive   control01.ctl  fda01.dbf            redo02.log    system01.dbf  test01.dbf
    arch.tbs  control02.ctl  flash_recovery_area  redo03.log    tbsttt.dbf    undotbs01.dbf
    backup    example01.dbf  redo01.log           sysaux01.dbf  temp01.dbf    users01.dbf
    [oracle@ORA-RAC1 prod]$ rm -f *.dbf
    [oracle@ORA-RAC1 prod]$ ls
    archive  arch.tbs  backup  control01.ctl  control02.ctl  flash_recovery_area  redo01.log  redo02.log  redo03.log
    [oracle@ORA-RAC1 prod]$ rm -f *.ctl
    [oracle@ORA-RAC1 prod]$ rm -f *.redo
    [oracle@ORA-RAC1 prod]$ rm -f *.log
    [oracle@ORA-RAC1 prod]$ ls
    archive  arch.tbs  backup  flash_recovery_area
    [oracle@ORA-RAC1 prod]$ ll
    总用量 10260
    drwxr-xr-x 2 oracle oinstall     4096 4月  19 09:34 archive
    -rw-r----- 1 oracle oinstall 10493952 4月  19 09:37 arch.tbs
    drwxr-xr-x 2 oracle oinstall     4096 4月  19 09:37 backup
    drwxr-xr-x 3 oracle oinstall     4096 3月  19 22:13 flash_recovery_area
    [oracle@ORA-RAC1 prod]$ rm -f arch.tbs 


数据库端刷新一下缓存切归档
此时数据库就连不上了,挂了,spfile都没有了所以无法启动到nomount
    SYS@ prod>alter system flush buffer_cache;
    系统已更改。
    SYS@ prod>/
    系统已更改。
    SYS@ prod>/
    SYS@ prod>alter system switch logfile;
    alter system switch logfile
                        *
    第 1 行出现错误:
    ORA-03113: 通信通道的文件结尾 进程 ID:
    2923
    会话 ID: 1 序列号: 5
    SYS@ prod>/
    ERROR:
    ORA-03114: 未连接到 ORACLE
    SYS@ prod>
    SYS@ prod>exit
    从 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开
    [oracle@ORA-RAC1 ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 11.2.0.4.0 Production on 星期一 4月 19 09:45:48 2021
    
    Copyright (c) 1982, 2013, Oracle.  All rights reserved.
    
    已连接到空闲例程。
    
    SYS@ prod>startup
    ORA-01078: failure in processing system parameters
    LRM-00109: ������������������������ '/u01/oracle/dbs/initprod.ora'
    SYS@ prod>
    
由于我有RMAN备份,所以可以利用rman进行恢复,启动到nomount下
        [oracle@ORA-RAC1 ~]$ rman target /
        恢复管理器: Release 11.2.0.4.0 - Production on 星期一 4月 19 09:48:15 2021
        Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.    
        已连接到目标数据库 (未启动)
        RMAN> startup nomount        
        启动失败: ORA-01078: failure in processing system parameters
        LRM-00109: ������������������������ '/u01/oracle/dbs/initprod.ora'    
        在没有参数文件的情况下启动 Oracle 实例以检索 spfile
        Oracle 实例已启动    
        系统全局区域总计    1068937216 字节
        Fixed Size                     2260088 字节
        Variable Size                281019272 字节
        Database Buffers             780140544 字节
        Redo Buffers                   5517312 字节    
        RMAN> 
此时list backup是无法获取到任何信息的
        RMAN> list backup;
        
        使用目标数据库控制文件替代恢复目录
        RMAN-00571: ===========================================================
        RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
        RMAN-00571: ===========================================================
        RMAN-03002: list 命令 (在 04/19/2021 09:54:36 上) 失败
        ORA-01507: 未装载数据库
        
        RMAN> 
手动去找rman的备份集,利用备份集恢复spfile
        [oracle@ORA-RAC1 prod]$ cd backup
        [oracle@ORA-RAC1 backup]$ ll
        总用量 1421676
        -rw-r----- 1 oracle oinstall 1445765120 4月  19 09:37 2021041994.bak
        -rw-r----- 1 oracle oinstall   10027008 4月  19 09:37 2021041995.bak
        [oracle@ORA-RAC1 backup]$ 
        
利用备份集恢复spfile
        RMAN> restore spfile  from '/u01/oradata/prod/backup/2021041995.bak';
        
        启动 restore 于 2021-04-19 09:56:54
        分配的通道: ORA_DISK_1
        通道 ORA_DISK_1: SID=19 设备类型=DISK
        
        通道 ORA_DISK_1: 正在从 AUTOBACKUP /u01/oradata/prod/backup/2021041995.bak 还原 spfile
        通道 ORA_DISK_1: 从 AUTOBACKUP 还原 SPFILE 已完成
        完成 restore 于 2021-04-19 09:56:55
数据库端 启动到nomount下
        SYS@ prod>startup force nomount;
        ORACLE 例程已经启动。
        
        Total System Global Area  768294912 bytes
        Fixed Size                  2257192 bytes
        Variable Size             465571544 bytes
        Database Buffers          297795584 bytes
        Redo Buffers                2670592 bytes
        SYS@ prod>show parameter spfile
        
        NAME                                 TYPE                              VALUE
        ------------------------------------ --------------------------------- ------------------------------
        spfile                               string                            /u01/oracle/dbs/spfileprod.ora
        SYS@ prod>select  status from v$instance;
        
        STATUS
        ------------------------------------
        STARTED
        
        SYS@ prod>
已经到nomount了可以加载spfile了
下一步就是需要恢复控制文件,来代开数据库到mount下
这里我忘记重新连接一次rman(如果是磁盘损坏需要更换路径的情况先不做考虑)
        RMAN> restore controlfile from '/u01/oradata/prod/backup/2021041995.bak';
        
        启动 restore 于 2021-04-19 10:03:49
        RMAN-00571: ===========================================================
        RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
        RMAN-00571: ===========================================================
        RMAN-00601: fatal error in recovery manager
        RMAN-03004: 执行命令期间出现严重错误
        RMAN-04020: 目标数据库名称 "DUMMY" 与通道名不匹配: "PROD"
        RMAN-03002: restore 命令 (在 04/19/2021 10:03:49 上) 失败
        ORA-03135: 连接失去联系
        进程 ID: 3396
        会话 ID: 1 序列号: 5
        [oracle@ORA-RAC1 ~]$ rman target /
        
        恢复管理器: Release 11.2.0.4.0 - Production on 星期一 4月 19 10:03:55 2021
        
        Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
        
        已连接到目标数据库: PROD (未装载)
        
        RMAN> restore controlfile from '/u01/oradata/prod/backup/2021041995.bak';
        
        启动 restore 于 2021-04-19 10:04:12
        使用目标数据库控制文件替代恢复目录
        分配的通道: ORA_DISK_1
        通道 ORA_DISK_1: SID=20 设备类型=DISK
        
        通道 ORA_DISK_1: 正在还原控制文件
        通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
        输出文件名=/u01/oradata/prod/control01.ctl
        输出文件名=/u01/oradata/prod/control02.ctl
        完成 restore 于 2021-04-19 10:04:13
        
        RMAN> 
        
在数据库端启动数据库到mount
        SYS@ prod>alter database mount;
        数据库已更改。
        SYS@ prod>select  status from v$instance;
        STATUS
        ------------------------------------
        MOUNTED
        SYS@ prod>
已经启动到mount状态,能看到DBID,并且能看到list backup
        RMAN> exit
        恢复管理器完成。
        [oracle@ORA-RAC1 ~]$ rman target /
        恢复管理器: Release 11.2.0.4.0 - Production on 星期一 4月 19 10:09:37 2021
        Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
        已连接到目标数据库: PROD (DBID=478852841, 未打开)
        RMAN> list backup;
        使用目标数据库控制文件替代恢复目录
        备份集列表
        ===================
        BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间           
        ------- ---- -- ---------- ----------- ------------ -------------------
        90      Full    1.35G      DISK        00:00:04     2021-04-19 09:37:51
                BP 关键字: 90   状态: AVAILABLE  已压缩: NO  标记: TAG20210419T093747
        段名:/u01/oradata/prod/backup/2021041994.bak
        备份集 90 中的数据文件列表
        文件 LV 类型 Ckp SCN    Ckp 时间            名称
        ---- -- ---- ---------- ------------------- ----
        1       Full 2905019    2021-04-19 09:37:47 /u01/oradata/prod/system01.dbf
        2       Full 2905019    2021-04-19 09:37:47 /u01/oradata/prod/sysaux01.dbf
        3       Full 2905019    2021-04-19 09:37:47 /u01/oradata/prod/undotbs01.dbf
        4       Full 2905019    2021-04-19 09:37:47 /u01/oradata/prod/users01.dbf
        5       Full 2905019    2021-04-19 09:37:47 /u01/oradata/prod/example01.dbf
        6       Full 2905019    2021-04-19 09:37:47 /u01/oradata/prod/tbsttt.dbf
        7       Full 2905019    2021-04-19 09:37:47 /u01/oradata/prod/test01.dbf
        8       Full 2905019    2021-04-19 09:37:47 /u01/oradata/prod/fda01.dbf
        9       Full 2905019    2021-04-19 09:37:47 /u01/oradata/prod/arch.tbs
        RMAN> 
直接restore数据库
        RMAN> restore  database;
        启动 restore 于 2021-04-19 10:11:48
        启动 implicit crosscheck backup 于 2021-04-19 10:11:48
        分配的通道: ORA_DISK_1
        通道 ORA_DISK_1: SID=18 设备类型=DISK
        已交叉检验的 1 对象
        完成 implicit crosscheck backup 于 2021-04-19 10:11:48
        启动 implicit crosscheck copy 于 2021-04-19 10:11:48
        使用通道 ORA_DISK_1
        完成 implicit crosscheck copy 于 2021-04-19 10:11:48
        搜索恢复区中的所有文件
        正在编制文件目录...
        没有为文件编制目录
        使用通道 ORA_DISK_1
        通道 ORA_DISK_1: 正在开始还原数据文件备份集
        通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
        通道 ORA_DISK_1: 将数据文件 00001 还原到 /u01/oradata/prod/system01.dbf
        通道 ORA_DISK_1: 将数据文件 00002 还原到 /u01/oradata/prod/sysaux01.dbf
        通道 ORA_DISK_1: 将数据文件 00003 还原到 /u01/oradata/prod/undotbs01.dbf
        通道 ORA_DISK_1: 将数据文件 00004 还原到 /u01/oradata/prod/users01.dbf
        通道 ORA_DISK_1: 将数据文件 00005 还原到 /u01/oradata/prod/example01.dbf
        通道 ORA_DISK_1: 将数据文件 00006 还原到 /u01/oradata/prod/tbsttt.dbf
        通道 ORA_DISK_1: 将数据文件 00007 还原到 /u01/oradata/prod/test01.dbf
        通道 ORA_DISK_1: 将数据文件 00008 还原到 /u01/oradata/prod/fda01.dbf
        通道 ORA_DISK_1: 将数据文件 00009 还原到 /u01/oradata/prod/arch.tbs
        通道 ORA_DISK_1: 正在读取备份片段 /u01/oradata/prod/backup/2021041994.bak
        通道 ORA_DISK_1: 段句柄 = /u01/oradata/prod/backup/2021041994.bak 标记 = TAG20210419T093747
        通道 ORA_DISK_1: 已还原备份片段 1
        通道 ORA_DISK_1: 还原完成, 用时: 00:00:07
        完成 restore 于 2021-04-19 10:11:55
        RMAN> 
        RMAN> recover database 
        2> ;
        
        启动 recover 于 2021-04-19 10:15:00
        使用通道 ORA_DISK_1
        
        正在开始介质的恢复
        
        无法找到归档日志
        归档日志线程=1 序列=106
        RMAN-00571: ===========================================================
        RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
        RMAN-00571: ===========================================================
        RMAN-03002: recover 命令 (在 04/19/2021 10:15:00 上) 失败
        RMAN-06054: 介质恢复正在请求未知的线程 1 序列 106 的归档日志以及起始 SCN 2905019
        RMAN> 
        SYS@ prod>alter database open resetlogs;
        数据库已更改。
        SYS@ prod>
        SYS@ prod>select  status from v$instance;
        STATUS
        ------------------------------------
        OPEN
        SYS@ prod
        SYS@ prod>select file#,TABLESPACE_NAME,CHECKPOINT_CHANGE# from v$datafile_header;
        
            FILE# TABLESPACE_NAME                                                                            CHECKPOINT_CHANGE#
        ---------- ------------------------------------------------------------------------------------------ ------------------
                1 SYSTEM                                                                                                2905023
                2 SYSAUX                                                                                                2905023
                3 UNDOTBS1                                                                                              2905023
                4 USERS                                                                                                 2905023
                5 EXAMPLE                                                                                               2905023
                6 TBSTTT                                                                                                2905023
                7 TEST01                                                                                                2905023
                8 FDA                                                                                                   2905023
                9 ARCHIVE_TBS                                                                                           2905023
        
        已选择9行。
        SYS@ prod>col MEMBER for a30;
        SYS@ prod>select * from v$logfile;
        
            GROUP# STATUS                TYPE                  MEMBER                         IS_RECOVE
        ---------- --------------------- --------------------- ------------------------------ ---------
                3                       ONLINE                /u01/oradata/prod/redo03.log   NO
                2                       ONLINE                /u01/oradata/prod/redo02.log   NO
                1                       ONLINE                /u01/oradata/prod/redo01.log   NO
        SYS@ prod>
        
Jrojyun

2021-04-19

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值