NOARCHIVELOG模式下丢失了数据文件
    数据库处于NOARCHIVELOG模式时,如果丢失任何数据文件,执行以下步骤
        1.如果实例尚未关闭,请关闭实例
        2.从备份还原整个数据库,包括所有数据文件和控制文件
        3.打开数据库
        4.让用户重新输入自上次备份以来所做的所有更改
 
ARCHIVELOG模式下丢失了非关键性数据文件(SYSTEM,UNDO除外)
        仅仅恢复当前数据文件不用整库恢复,不需要停机
        1.数据文件离线
        2.restore数据文件,介质恢复
        3.recover事务
        4.数据文件联机
 
ARCHIVELOG模式下丢失了关键性数据文件(SYSTEM,UNDO...)
        数据库关键性数据文件丢失,需要停机恢复
        1.实例可能会也可能不会自动关闭。如果未自动关闭,请使用SHUTDOWN ABORT关闭实例
        2.装载数据库,MOUNT
        3.还原并恢复缺失的数据文件,restore datafile/database 
        4.recover datafile/database
        5.打开数据库
 
 
 
归档模式下恢复非关键表空间

set linesize 300
set pagesize 600
col file_name format a50
col tablespace_name format a20
select tablespace_name,file_name from dba_data_files; 创建一个非关键表空间进行测试 create tablespace redo_data datafile '/u01/app/oracle/oradata/xiocpt0/redo_data01.dbf' size 32M autoextend on next 32M maxsize 1024M; SQL> create tablespace redo_data datafile '/u01/app/oracle/oradata/xiocpt0/redo_data01.dbf' size 32M autoextend on next 32M maxsize 1024M; Tablespace created. SQL> set linesize 300
set pagesize 600
col file_name format a50
col tablespace_name format a20
select tablespace_name,file_name from dba_data_files; TABLESPACE_NAME FILE_NAME
-------------------- --------------------------------------------------
USERS /u01/app/oracle/oradata/xiocpt0/users01.dbf
UNDOTBS1 /u01/app/oracle/oradata/xiocpt0/undotbs01.dbf
SYSAUX /u01/app/oracle/oradata/xiocpt0/sysaux01.dbf
SYSTEM /u01/app/oracle/oradata/xiocpt0/system01.dbf
REDO_DATA /u01/app/oracle/oradata/xiocpt0/redo_data01.dbf BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG; 对数据进行一次完全备份 RMAN> shutdown immediate
RMAN> startup mount
RMAN> run
{
allocate channel c1 device type disk format '/u01/backup/backup01_%U' ;
backup as compressed backupset database;
backup current controlfile;
alter database open;
} RMAN> list backup; List of Backup Sets
=================== BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
7 Full 321.23M DISK 00:00:38 22-MAY-18
BP Key: 7 Status: AVAILABLE Compressed: YES Tag: TAG20180522T151208
Piece Name: /u01/backup/backup01_08t3hoq8_1_1
List of Datafiles in backup set 7
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 1058982 22-MAY-18 /u01/app/oracle/oradata/xiocpt0/system01.dbf
2 Full 1058982 22-MAY-18 /u01/app/oracle/oradata/xiocpt0/sysaux01.dbf
3 Full 1058982 22-MAY-18 /u01/app/oracle/oradata/xiocpt0/undotbs01.dbf
4 Full 1058982 22-MAY-18 /u01/app/oracle/oradata/xiocpt0/users01.dbf
5 Full 1058982 22-MAY-18 /u01/app/oracle/oradata/xiocpt0/redo_data01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
8 Full 1.05M DISK 00:00:03 22-MAY-18
BP Key: 8 Status: AVAILABLE Compressed: YES Tag: TAG20180522T151208
Piece Name: /u01/backup/backup01_09t3horl_1_1
SPFILE Included: Modification time: 22-MAY-18
SPFILE db_unique_name: XIOCPT0
Control File Included: Ckp SCN: 1058982 Ckp time: 22-MAY-18 BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
9 Full 9.64M DISK 00:00:01 22-MAY-18
BP Key: 9 Status: AVAILABLE Compressed: NO Tag: TAG20180522T151257
Piece Name: /u01/backup/backup01_0at3horp_1_1
Control File Included: Ckp SCN: 1058982 Ckp time: 22-MAY-18 创建表并指定表空间 SQL> create table REDO_DATA(
2 id number,
3 name varchar2(20)
4 )
5 tablespace REDO_DATA; Table created. SQL> declare
v_count number; begin
for i in 1..1000 loop
insert into redo_data values(i,'name0'||i);
end loop;
end;
/ 2 3 4 5 6 7 8 9 PL/SQL procedure successfully completed. SQL> commit; Commit complete. SQL> select count(*) from REDO_DATA; COUNT(*)
----------
1000 恢复非关键表空间 sql 'alter tablespace redo_data offline';---离线需恢复的表空间 restore tablespace redo_data;---还原表空间
recover tablespace redo_data;---恢复表空间,期间的事务进行应用 sql 'alter tablespace redo_data online';---恢复完成,将表空间在线 删除数据文件
SQL> !rm -rf /u01/app/oracle/oradata/xiocpt0/redo_data01.dbf SQL> select count(*) from REDO_DATA; COUNT(*)
----------
1000 SQL> commit; Commit complete. SQL> declare
v_count number; begin
for i in 1..1000 loop
insert into redo_data values(i,'name0'||i);
end loop;
end;
/ 2 3 4 5 6 7 8 9 PL/SQL procedure successfully completed. SQL> commit; Commit complete. SQL> select count(*) from REDO_DATA; COUNT(*)
----------
2000 SQL> !ls -l /u01/app/oracle/oradata/xiocpt0/redo_data01.dbf
ls: cannot access /u01/app/oracle/oradata/xiocpt0/redo_data01.dbf: No such file or directory SQL> select table_name ,tablespace_name from dba_tables where table_name='REDO_DATA'; TABLE_NAME TABLESPACE_NAME
------------------------------ --------------------
REDO_DATA REDO_DATA SQL> alter system switch logfile; System altered. SQL> alter system checkpoint; System altered. SQL> select count(*) from REDO_DATA; COUNT(*)
----------
2000 SQL> declare
v_count number; begin
for i in 1..1000 loop
insert into redo_data values(i,'name0'||i);
end loop;
end;
/ 2 3 4 5 6 7 8 9 PL/SQL procedure successfully completed. SQL> declare
v_count number; begin
for i in 1..1000 loop
insert into redo_data values(i,'name0'||i);
end loop;
end;
/ 2 3 4 5 6 7 8 9 PL/SQL procedure successfully completed. SQL> declare
v_count number; begin
for i in 1..1000 loop
insert into redo_data values(i,'name0'||i);
end loop;
end;
/ 2 3 4 5 6 7 8 9 PL/SQL procedure successfully completed. SQL> commit; Commit complete. SQL> !ls -l /u01/app/oracle/oradata/xiocpt0/redo_data01.dbf
ls: cannot access /u01/app/oracle/oradata/xiocpt0/redo_data01.dbf: No such file or directory SQL> select count(*) from REDO_DATA;
select count(*) from REDO_DATA
*
ERROR at line 1:
ORA-00376: file 5 cannot be read at this time
ORA-01110: data file 5: '/u01/app/oracle/oradata/xiocpt0/redo_data01.dbf' 开始执行还原/恢复操作 RMAN> sql 'alter tablespace redo_data offline'; sql statement: alter tablespace redo_data offline RMAN>
restore tablespace redo_data;
RMAN> Starting restore at 22-MAY-18
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/xiocpt0/redo_data01.dbf
channel ORA_DISK_1: reading from backup piece /u01/backup/backup01_08t3hoq8_1_1
channel ORA_DISK_1: piece handle=/u01/backup/backup01_08t3hoq8_1_1 tag=TAG20180522T151208
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 22-MAY-18 RMAN> recover tablespace redo_data; Starting recover at 22-MAY-18
using channel ORA_DISK_1 starting media recovery archived log for thread 1 with sequence 74 is already on disk as file /u01/archive/arch_976375926_1_74.arc
archived log for thread 1 with sequence 75 is already on disk as file /u01/archive/arch_976375926_1_75.arc
archived log for thread 1 with sequence 76 is already on disk as file /u01/archive/arch_976375926_1_76.arc
archived log for thread 1 with sequence 77 is already on disk as file /u01/archive/arch_976375926_1_77.arc
archived log for thread 1 with sequence 78 is already on disk as file /u01/archive/arch_976375926_1_78.arc
archived log for thread 1 with sequence 79 is already on disk as file /u01/archive/arch_976375926_1_79.arc
archived log for thread 1 with sequence 80 is already on disk as file /u01/archive/arch_976375926_1_80.arc
archived log for thread 1 with sequence 81 is already on disk as file /u01/archive/arch_976375926_1_81.arc
archived log for thread 1 with sequence 82 is already on disk as file /u01/archive/arch_976375926_1_82.arc
archived log for thread 1 with sequence 83 is already on disk as file /u01/archive/arch_976375926_1_83.arc
archived log for thread 1 with sequence 84 is already on disk as file /u01/archive/arch_976375926_1_84.arc
archived log for thread 1 with sequence 85 is already on disk as file /u01/archive/arch_976375926_1_85.arc
archived log file name=/u01/archive/arch_976375926_1_74.arc thread=1 sequence=74
archived log file name=/u01/archive/arch_976375926_1_75.arc thread=1 sequence=75
archived log file name=/u01/archive/arch_976375926_1_76.arc thread=1 sequence=76
archived log file name=/u01/archive/arch_976375926_1_77.arc thread=1 sequence=77
archived log file name=/u01/archive/arch_976375926_1_78.arc thread=1 sequence=78
archived log file name=/u01/archive/arch_976375926_1_79.arc thread=1 sequence=79
archived log file name=/u01/archive/arch_976375926_1_80.arc thread=1 sequence=80
media recovery complete, elapsed time: 00:00:00
Finished recover at 22-MAY-18 RMAN> sql 'alter tablespace redo_data online'; sql statement: alter tablespace redo_data online SQL> select count(*) from REDO_DATA; COUNT(*)
----------
5000
 
 
归档模式下恢复关键表空间
    
    数据库关键性数据文件丢失,需要停机恢复
        1.实例可能会也可能不会自动关闭。如果未自动关闭,请使用SHUTDOWN ABORT关闭实例
        2.装载数据库,MOUNT
        3.还原并恢复缺失的数据文件,restore datafile/database 
        4.recover datafile/database
        5.打开数据库
 
SQL> set linesize 300
set pagesize 600
col file_name format a50
col tablespace_name format a20
select tablespace_name,file_name from dba_data_files;SQL> SQL> SQL> SQL> TABLESPACE_NAME FILE_NAME
-------------------- --------------------------------------------------
USERS /u01/app/oracle/oradata/xiocpt0/users01.dbf
UNDOTBS1 /u01/app/oracle/oradata/xiocpt0/undotbs01.dbf
SYSAUX /u01/app/oracle/oradata/xiocpt0/sysaux01.dbf
SYSTEM /u01/app/oracle/oradata/xiocpt0/system01.dbf
REDO_DATA /u01/app/oracle/oradata/xiocpt0/redo_data01.dbf SQL>
SQL> !rm -rf /u01/app/oracle/oradata/xiocpt0/system01.dbf startup mount ---将数据库启动到mount
restore tablespace system;---指定关键表空间进行还原
recover tablespace system;---恢复表空间
sql 'alter database open';---将数据库打开 [oracle@t-xi-oracle01 ~]$ rman target / Recovery Manager: Release 11.2.0.4.0 - Production on Tue May 22 15:30:33 2018 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database (not started) RMAN> startup mount Oracle instance started
database mounted Total System Global Area 409194496 bytes Fixed Size 2253744 bytes
Variable Size 322964560 bytes
Database Buffers 79691776 bytes
Redo Buffers 4284416 bytes RMAN> restore tablespace system; Starting restore at 22-MAY-18
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=18 device type=DISK channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/xiocpt0/system01.dbf
channel ORA_DISK_1: reading from backup piece /u01/backup/backup01_08t3hoq8_1_1
channel ORA_DISK_1: piece handle=/u01/backup/backup01_08t3hoq8_1_1 tag=TAG20180522T151208
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:45
Finished restore at 22-MAY-18 RMAN> recover tablespace system; Starting recover at 22-MAY-18
using channel ORA_DISK_1 starting media recovery archived log for thread 1 with sequence 74 is already on disk as file /u01/archive/arch_976375926_1_74.arc
archived log for thread 1 with sequence 75 is already on disk as file /u01/archive/arch_976375926_1_75.arc
archived log for thread 1 with sequence 76 is already on disk as file /u01/archive/arch_976375926_1_76.arc
archived log for thread 1 with sequence 77 is already on disk as file /u01/archive/arch_976375926_1_77.arc
archived log for thread 1 with sequence 78 is already on disk as file /u01/archive/arch_976375926_1_78.arc
archived log for thread 1 with sequence 79 is already on disk as file /u01/archive/arch_976375926_1_79.arc
archived log for thread 1 with sequence 80 is already on disk as file /u01/archive/arch_976375926_1_80.arc
archived log for thread 1 with sequence 81 is already on disk as file /u01/archive/arch_976375926_1_81.arc
archived log for thread 1 with sequence 82 is already on disk as file /u01/archive/arch_976375926_1_82.arc
archived log for thread 1 with sequence 83 is already on disk as file /u01/archive/arch_976375926_1_83.arc
archived log for thread 1 with sequence 84 is already on disk as file /u01/archive/arch_976375926_1_84.arc
archived log for thread 1 with sequence 85 is already on disk as file /u01/archive/arch_976375926_1_85.arc
archived log for thread 1 with sequence 86 is already on disk as file /u01/archive/arch_976375926_1_86.arc
archived log file name=/u01/archive/arch_976375926_1_74.arc thread=1 sequence=74
archived log file name=/u01/archive/arch_976375926_1_75.arc thread=1 sequence=75
archived log file name=/u01/archive/arch_976375926_1_76.arc thread=1 sequence=76
archived log file name=/u01/archive/arch_976375926_1_77.arc thread=1 sequence=77
archived log file name=/u01/archive/arch_976375926_1_78.arc thread=1 sequence=78
archived log file name=/u01/archive/arch_976375926_1_79.arc thread=1 sequence=79
archived log file name=/u01/archive/arch_976375926_1_80.arc thread=1 sequence=80
archived log file name=/u01/archive/arch_976375926_1_81.arc thread=1 sequence=81
media recovery complete, elapsed time: 00:00:00
Finished recover at 22-MAY-18 RMAN> sql 'alter database open'; sql statement: alter database open
 
 
 
 
 
 

(Les16 执行数据库恢复)-表空间恢复的更多相关文章

  1. RMAN数据库恢复之恢复表空间和数据文件

    执行表空间或数据文件恢复时,数据库既可以是MOUNT状态,也可以是OPEN状态.1.恢复表空间在执行恢复之前,如果被操作的表空间未处理OFFLINE状态,必须首先通过ALTER TABLESPACE… ...

  2. [20170623]利用传输表空间恢复数据库2.txt

    [20170623]利用传输表空间恢复数据库2.txt --//继续上午的测试,测试truncate,是否可行,理论讲应该没有问题.我主要的目的测试是否要切换日志.--//参考链接 : http:// ...

  3. Oracle 表空间恢复

    为啥要写这个呢,因为之前遇到个场景.操作系统为Solaris的,oracle11.2.0.4. 一个运维把一张关键表drop了.然后发现recyclebin是off的,然后..然后好像只能从备份里面找 ...

  4. [20170627]使用TSPITR恢复表空间.txt

    [20170627]使用TSPITR恢复表空间.txt --//RMAN提供了一种实现所谓TSPITR(Tablespace Point-In-Time Recovery)的技术,通过简单的一个语句, ...

  5. [20170623]利用传输表空间恢复部分数据.txt

    [20170623]利用传输表空间恢复部分数据.txt --//昨天我测试使用传输表空间+dblink,上午补充测试发现表空间设置只读才能执行impdp导入原数据,这个也很好理解.--//这样的操作模 ...

  6. 如何用Dummy实例执行数据库的还原和恢复

    今天实验了一下,如何在所有文件,包括数据文件,在线日志文件,控制文件都丢失的情况下,利用RMAN备份恢复和还原数据库.该实验的重点是用到了Dummy实例. 具体步骤如下: 备份数据库 [oracle@ ...

  7. Oracle 删除用户和表空间////Oracle创建删除用户、角色、表空间、导入导出、...命令总结/////Oracle数据库创建表空间及为用户指定表空间

    Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下 对于单个user和tablespace 来说, 可以使用如下命令来完成. 步骤一:  删除user drop ...

  8. ORACLE RMAN备份及还原 RMAN能够进行增量备份:数据库,表空间,数据文件

    ORACLE RMAN备份及还原   RMAN能够进行增量备份:数据库.表空间.数据文件 仅仅有使用过的block能够被备份成backup set 表空间与数据文件相应关系:dba_data_file ...

  9. orale数据库.实例.表空间.用户.表

    近期因为工作原因接触到Oracle数据库.了解到Oracle和mysql的结构上还是有很大的区别的. Oracle数据库---实例---表空间---用户---表 我们将从这5个方面来了解Oracle ...

随机推荐

  1. git基础命令。

    创建一个新的本地仓库    git init 克隆远程服务器    git clone URL 打开一个文件夹   cd 添加文件   git add . 本地提交更改   git commit -m ...

  2. Java 开源博客 Solo 1.5.0 发布 - 新皮肤

    Solo 1.5.0 正式发布了!这个版本主要是加入了 一款新皮肤 next,感谢一直以来关注和支持我们的朋友! 只需一个命令即可启动(不需要安装数据库.部署容器):也可以通过 war 方式部署容器, ...

  3. PID控制算法

    PID控制算法 四轴如何起飞的原理 四轴飞行器的螺旋桨与空气发生相对运动,产生了向上的升力,当升力大于四轴的重力时四轴就可以起飞了. 四轴飞行器飞行过程中如何保持水平: 我们先假设一种理想状况:四个电 ...

  4. MUI框架-14-使用自定义icon图标、引入阿里巴巴矢量图标

    MUI框架-14-使用自定义icon图标.引入阿里巴巴矢量图标 首先介绍介绍一下,前端必备的非常强大的 阿里巴巴矢量图标库:地址是:http://www.iconfont.cn/ 这里有丰富,精美,且 ...

  5. Springmvc和Mybatis中常用的注解

    使用注解来构造IoC容器 用注解来向Spring容器注册Bean.需要在applicationContext.xml中注册<context:component-scan base-package ...

  6. LoadRunner简单培训相关笔记

    学校花了20万买了LoadRunner,因此作为幸运的一届,赶上了这场培训.以下为笔记以及培训后制作的简易思维导图. Loadrunner思维导图源码(Xmind): http://pan.baidu ...

  7. iOS设计模式 - 装饰

    iOS设计模式 - 装饰 原理图 说明 1. cocoa框架本身实现了装饰模式(category的方式实现了装饰模式) 2. 装饰模式指的是动态的给一个对象添加一些额外的职责,相对于继承子类来说,装饰 ...

  8. 在Windows10中破解一些软件

    在Windows10中破解一些软件 一.前言   以前的windows是很好破解的,这里说的windows包含了windows的一些产品,比如说office,visio等等,可是自从到了新版的wind ...

  9. JMeter中文版用户手册

    1.1 简介 使用JMeter通常会有以下步骤: 1.1.1 创建测试计划 首先,运行JMeter图形化界面. 然后在文件菜单中选择Templates…->Recording,通过浏览器录制We ...

  10. 使用普通用户set autotrace on报错SP2-0618: Cannot find the Session Identifier

    普通用户使用 autotrace,出现如下报错: SQL> set autotrace on SP2-0618: Cannot find the Session Identifier.  Che ...