• 一次RMAN全备恢复


    一次RMAN全备恢复

    当前环境,客户已经将相应的备份文件导入测试环境,测试环境Oracle软件已经安装完成,同时测试环境存在数据库。无法确定测试环境的数据是否可以删除,同时考虑到测试环境磁盘空间比较充裕。选择新建实例的方法。

    以下操作为流程,鉴于数据安全性为我自己还原的场景

    源库执行RMAN备份全库

    1)全备前操作

    #查看当前数据库状态
    SYS@proe>select instance_name,status from v$instance;
    
    
    INSTANCE_NAME    STATUS
    ---------------- ------------
    proe             OPEN
    
    
    #切换日志
    SYS@proe>alter system archive log current;
    
    
    System altered.
    
    
    SYS@proe>/
    
    
    System altered.
    
    
    SYS@proe>/
    
    
    System altered.
    
    
    #校验归档日志
    RMAN> crosscheck archivelog all;

    2)执行全备

    [oracle@server1 ~]$ ./backup.sh 
    备份目录不存在,已创建
    RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> 14> 15> 16> 17> 18> RMAN> 日志目录不存在,已创建
    2020-08-13 14:16:05 rman备份执行成功,开始压缩备份
    tar: Removing leading `/' from member names
    /backup/files/20200813/
    /backup/files/20200813/db_back_PROE_20200813_05v7os00_1_1.dbf
    /backup/files/20200813/db_back_PROE_20200813_03v7orsc_1_1.dbf
    /backup/files/20200813/con_back_PROE_20200813_0_02v7orsa_1_1
    /backup/files/20200813/full_back_log_20200813.log
    /backup/files/20200813/db_back_PROE_20200813_04v7orsc_1_1.dbf
    /backup/files/20200813/full_back_arch_PROE_20200813_07v7os01_1_1.arc
    /backup/files/20200813/db_back_PROE_20200813_06v7os00_1_1.dbf
    /backup/files/20200813/full_back_arch_PROE_20200813_08v7os01_1_1.arc
    /backup/files/20200813/full_back_arch_PROE_20200813_09v7os14_1_1.arc
    2020-08-13 14:16:38 压缩备份成功

    3)查看备份并将备份文件发送给恢复目标端

    [oracle@server1 files]$ ls
    20200813  fullback-20200813.tar.gz
    [oracle@server1 files]$ pwd
    /backup/files
    
    
    [root@server1 files]# scp fullback-20200813.tar.gz 192.168.0.35:/root
    The authenticity of host '192.168.0.35 (192.168.0.35)' can't be established.
    RSA key fingerprint is be:bb:a9:62:e6:2a:51:7e:c7:0b:c9:03:fb:c6:24:4e.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.0.35' (RSA) to the list of known hosts.
    root@192.168.0.35's password: 
    fullback-20200813.tar.gz

    恢复目标端操作

    1)授权传输过来的文件并解压

    [oracle@orcldb ~]$ ll
    total 431772
    -rw-r--r-- 1 oracle oinstall 442133681 Aug 13 14:20 fullback-20200813.tar.gz
    [oracle@orcldb ~]$ tar -zxvf fullback-20200813.tar.gz 
    backup/files/20200813/
    backup/files/20200813/db_back_PROE_20200813_05v7os00_1_1.dbf
    backup/files/20200813/db_back_PROE_20200813_03v7orsc_1_1.dbf
    backup/files/20200813/con_back_PROE_20200813_0_02v7orsa_1_1
    backup/files/20200813/full_back_log_20200813.log
    backup/files/20200813/db_back_PROE_20200813_04v7orsc_1_1.dbf
    backup/files/20200813/full_back_arch_PROE_20200813_07v7os01_1_1.arc
    backup/files/20200813/db_back_PROE_20200813_06v7os00_1_1.dbf
    backup/files/20200813/full_back_arch_PROE_20200813_08v7os01_1_1.arc
    backup/files/20200813/full_back_arch_PROE_20200813_09v7os14_1_1.arc
    
    
    [oracle@orcldb 20200813]$ pwd
    /home/oracle/backup/files/20200813
    [oracle@orcldb 20200813]$ ls
    con_back_PROE_20200813_0_02v7orsa_1_1   db_back_PROE_20200813_05v7os00_1_1.dbf         full_back_arch_PROE_20200813_08v7os01_1_1.arc
    db_back_PROE_20200813_03v7orsc_1_1.dbf  db_back_PROE_20200813_06v7os00_1_1.dbf         full_back_arch_PROE_20200813_09v7os14_1_1.arc
    db_back_PROE_20200813_04v7orsc_1_1.dbf  full_back_arch_PROE_20200813_07v7os01_1_1.arc  full_back_log_20200813.log

    2)在解压出来的文件的日志中抓取文件编号对应的数据文件(数据量较小可以忽略这步,主要为了数据量较大时多路恢复提高速度或者需要更改数据文件路径使用,这里我数据量不大所以没有使用多路恢复,只是展示一下怎样查找编号和文件的对应关系)

    [oracle@orcldb 20200813]$ more full_back_log_20200813.log 
    ...
    Starting backup at 13-AUG-20
    channel c1: starting compressed full datafile backup set
    channel c1: specifying datafile(s) in backup set
    input datafile file number=00002 name=/u01/app/oracle/oradata/proe/sysaux01.dbf
    input datafile file number=00005 name=/u01/app/oracle/oradata/proe/example01.dbf
    input datafile file number=00006 name=/u01/app/oracle/oradata/proe/test_1.dbf
    channel c1: starting piece 1 at 13-AUG-20
    channel c2: starting compressed full datafile backup set
    channel c2: specifying datafile(s) in backup set
    input datafile file number=00001 name=/u01/app/oracle/oradata/proe/system01.dbf
    input datafile file number=00007 name=/u01/app/oracle/oradata/proe/tbs_tran01.dbf
    input datafile file number=00003 name=/u01/app/oracle/oradata/proe/undotbs01.dbf
    input datafile file number=00004 name=/u01/app/oracle/oradata/proe/users01.dbf
    ...
    number 对应数据文件

    3)前面说了在这个恢复目标库原本存在一个数据库,在空间足够的情况下我又新建了一个实例用来这次数据恢复。所以需要把环境变量进行修改。

    [oracle@orcldb ~]$ vim .bash_profile 
    [oracle@orcldb ~]$ source .bash_profile 
    [oracle@orcldb ~]$ echo $ORACLE_SID
    proe
    
    

    开始恢复

    4)使用RMAN启动伪实例来恢复参数文件(参数文件通常是.dbf最后一个,而且比较小。)

    RMAN> startup nomount;
    
    
    startup failed: ORA-01078: failure in processing system parameters
    LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/db_home1/dbs/initproe.ora'
    
    
    starting Oracle instance without parameter file for retrieval of spfile
    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
    
    
    RMAN> restore spfile from '/home/oracle/backup/files/20200813/db_back_PROE_20200813_06v7os00_1_1.dbf';
    
    
    Starting restore at 2020-08-13 14:28:37
    using target database control file instead of recovery catalog
    allocated channel: ORA_DISK_1
    channel ORA_DISK_1: SID=429 device type=DISK
    
    
    channel ORA_DISK_1: restoring spfile from AUTOBACKUP /home/oracle/backup/files/20200813/db_back_PROE_20200813_06v7os00_1_1.dbf
    channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete
    Finished restore at 2020-08-13 14:28:38

    5)恢复完成后关闭数据库重新启动到nomount状态,创建pfile

    oracle@orcldb 20200813]$ sqlplus  / as sysdba
    
    
    SQL*Plus: Release 11.2.0.4.0 Production on Thu Aug 13 14:28:56 2020
    
    
    Copyright (c) 1982, 2013, Oracle.  All rights reserved.
    
    
    
    
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    
    
    SYS@proebk>create pfile from spfile;
    
    
    File created.
    
    
    #查看pfile
    [oracle@orcldb dbs]$ pwd                
    /u01/app/oracle/product/11.2.0/db_home1/dbs
    [oracle@orcldb dbs]$ vim initproe.ora 

    6)根据pfile创建相应的目录

    [oracle@orcldb ~]$ mkdir -pv /u01/app/oracle/admin/proe/adump
    mkdir: created directory '/u01/app/oracle/admin/proe'
    mkdir: created directory '/u01/app/oracle/admin/proe/adump'
    
    
    [oracle@orcldb ~]$ mkdir -pv /u01/app/oracle/oradata/proe/
    mkdir: created directory '/u01/app/oracle/oradata/proe/'
    
    

    7)恢复控制文件

    RMAN> restore controlfile from '/home/oracle/backup/files/20200813/con_back_PROE_20200813_0_02v7orsa_1_1';
    
    
    Starting restore at 2020-08-13 16:58:10
    using channel ORA_DISK_1
    
    
    channel ORA_DISK_1: restoring control file
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
    output file name=/u01/app/oracle/oradata/proe/control01.ctl
    output file name=/u01/app/oracle/fast_recovery_area/proe/control02.ctl
    Finished restore at 2020-08-13 16:58:11
    
    

    8)恢复完成后将数据库启动到mount状态

    SYS@proe>alter database mount;
    
    
    Database altered.

    9)全库恢复

    RMAN> restore database;
    
    
    Starting restore at 2020-08-13 17:20:22
    using channel ORA_DISK_1
    ......
    
    
    RMAN> recover database;
    
    
    Starting recover at 2020-08-13 17:21:10
    using channel ORA_DISK_1
    datafile 7 not processed because file is read-only
    
    
    starting media recovery
    ....
    archived log thread=1 sequence=57
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of recover command at 08/13/2020 17:21:13
    RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 57 and starting SCN of 2090017
    
    

    10)不完全恢复

    MAN> recover database until sequence 57;
    
    
    Starting recover at 2020-08-13 17:21:36
    using channel ORA_DISK_1
    datafile 7 not processed because file is read-only
    
    
    starting media recovery
    media recovery complete, elapsed time: 00:00:00
    
    
    Finished recover at 2020-08-13 17:21:36

    11)用resetlogs方式打开

    RMAN> alter database open resetlogs;
    
    
    database opened
    
    
    SYS@proe>select status from v$instance;
    
    
    STATUS
    ------------------------
    OPEN

    恢复完成





  • 相关阅读:
    1. Dubbo原理解析-Dubbo内核实现之SPI简单介绍 (转)
    经典算法问题的java实现 (二)
    经典算法问题的java实现 (一)
    Bitmap的秘密
    Java Networking: UDP DatagramSocket (翻译)
    Java字节码浅析(二)
    Sql server 浅谈用户定义表类型
    Jquery 动态生成表单 并将表单数据 批量通过Ajax插入到数据库
    ASP.NET获取上传图片的大小
    ASP.Net大文件上传组件详解
  • 原文地址:https://www.cnblogs.com/plutozzl/p/13497908.html
Copyright © 2020-2023  润新知