为啥要写这个呢,因为之前遇到个场景。操作系统为Solaris的,oracle11.2.0.4。

一个运维把一张关键表drop了。然后发现recyclebin是off的,然后。。然后好像只能从备份里面找了,没有逻辑备份,只有备份到虚拟磁带机的RMAN备份。好吧,问题也不大找个测试机基于时间点恢复,再expdp导入。可是没有Solaris的机器,整个数据库4T,跨平台恢复呢。。也要好长时间。于是想到了表空间恢复,但是出故障后,并没有及时把表空间offline,导致其他的表继续写,然后就尴尬了。后来找的专家用工具修复的。

------------------------------------------------------------------------------------------------------------------------

想了想有个很low思路可行(请不要嘲笑本咸鱼),但可能局限性比较大。

1.先将除了A表(被drop的表)其他的表备份出来(expdp)或者移动到其他表空间。

2.用表空间恢复到指定时间点,找到了A表。

3.再将其他的表再导入表空间。

-------------------------------------------------------------------------------------------------------------------------

记录下表空间恢复步骤(其实我也是抄别人的哈哈哈)。

1.故障表空间offline,实例时open的

2.建立辅助实例恢复

全自动(自动建立辅助实例)

rman target /

RMAN> RECOVER TABLESPACE test01 UNTIL SCN=1002453  auxiliary destination '/home/oracle';

手动(需要建立辅助实例)

rman target  /  auxiliary sys/oracle@jssdup

run
{
set newname for tablespace test01 to '/home/oracle/data/%b';
set newname for datafile '/u01/app/oracle/oradata/orcl/system01.dbf' to '/home/oracle/data/system01.dbf';
set newname for datafile '/u01/app/oracle/oradata/orcl/sysaux01.dbf' to '/home/oracle/data/sysaux01.dbf';
set newname for datafile '/u01/app/oracle/oradata/orcl/undotbs01.dbf' to '/home/oracle/data/undotbs01.dbf';
set newname for datafile '/u01/app/oracle/oradata/orcl/users01.dbf' to '/home/oracle/data/users01.dbf';
allocate auxiliary channel c1 device type disk;
recover tablespace test01 until scn 1002453;
}

3.然后就OK了。

-----------------------------------------------------------------------------------------------------------------

表空间时点恢复TSPITR原理及步骤

1.自包含检查,也就是检查是否存在依赖性。执行DBMS_TTS.TRANSPORT_SET_CHECK后,查看视图TRANSPORT_SET_VIOLATIONS,如果有记录被返回,则需要先解决依赖。

2.检查是否连接到一个用户管理的辅助实例,否则RMAN将创建一个辅助实例,启动并连接到辅助实例。

3.在目标数据库中将要被恢复的表空间置于脱机状态。

4.对辅助实例使用恢复目标时间之前的控制文件备份来还原控制文件。

5.从恢复集和辅助集中将数据文件还原到辅助实例。还原的数据文件可以存储在你指定的目录中或者是文件的原始目录中(对于恢复集文件)或者在辅助目录中(对于辅助集文件,如果你使用了有auxliary destination参数的recover tablespace命令)。

6.在辅助实例中将数据文件还原和恢复到指定的目标时间点。

7.使用resetlogs选项将辅助实例打开

8.将辅助实例上恢复集表空间置为只读模式

9.使用DataPump从辅助实例导出恢复集表空间产生一个传输表空间dump文件

10.关闭辅助实例

11.从目标实例删除恢复集表空间(即需要进行时点还原的表空间)

12.DataPump程序将使用传输表空间方式将dump文件导入到目标数据库

13.将导入到目标数据库的表空间置为读/写并立即离线

14.删除所有辅助集数据文件

原文:https://blog.csdn.net/leshami/article/details/70670220

-------------------------------------------------------------------------------------------------------------

其实我一直只想做到第8步,然后从辅助实例中expdp导出表A,但是好像一直没办法停下。。。有大佬有办法请告诉我,谢谢!

Oracle 表空间恢复的更多相关文章

  1. ORACLE表空间offline谈起,表空间备份恢复

    从ORACLE表空间offline谈起,表空间备份恢复将表空间置为offline,可能的原因包括维护.备份恢复等目的:表空间处于offline状态,那么Oracle不会允许任何对该表空间中对象的SQL ...

  2. ORACLE表空间管理维护

    1:表空间概念 在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段.区.块等逻辑结构.从物理结构上看是放在数据文件中.一个表空间可由多个数据文件组成. 如下图所示, ...

  3. Oracle 表空间联机(online)与脱机(offline)

    数据库管理员可以在数据库处于开启(open)状态时令除 SYSTEM 表空间(tablespace)之外的任何表空间联机(online)(可访问)或脱机(offline)(不可访问).SYSTEM 表 ...

  4. Oracle表空间管理

    oracle表空间相关常用命令小结: 1.ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE;              //修改表空间数据文件类型 2.ALT ...

  5. 【转】Oracle 表空间与数据文件

    --============================== --Oracle 表空间与数据文件 --============================== /* 一.概念 表空间:是一个或 ...

  6. oracle 表空间管理

    1.创建表空间 03:01:55 sys@ORADB11G> create tablespace TSPITR datafile '/u01/app/oracle/oradata/TSPITR0 ...

  7. 【基础】Oracle 表空间和数据文件

    多个表空间的优势:1.能够将数据字典与用户数据分离出来,避免由于字典对象和用户对象保存在同一个数据文件中而产生的I/O冲突2.能够将回退数据与用户数据分离出来,避免由于硬盘损坏而导致永久性的数据丢失3 ...

  8. interview:about Oracle表空间

    Oracle表空间 SQL Server数据库与Oracle数据库之间最大的区别要属表空间设计.Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献.可 ...

  9. ORACLE表空间

    在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段.区.块等逻辑结构.从物理结构上看是放在数据文件中.一个表空间可由多个数据文件组成. 如下图所示,一个数据库由对应 ...

随机推荐

  1. 墨水屏 E-Paper module【转】

    转自:https://blog.csdn.net/smallmount123/article/details/77489196 https://www.digikey.com/product-deta ...

  2. 【原创】大叔问题定位分享(13)HBase Region频繁下线

    问题现象:hive执行sql报错 select count(*) from test_hive_table; 报错 Error: java.io.IOException: org.apache.had ...

  3. pycharm导入自己写的模块时,模块下方出现红色波浪线的解决方案

    文章链接:https://blog.csdn.net/weixin_38383877/article/details/81121851 这种情况其实可以不用管,是可以正常运行的: 但是,如果看着不舒服 ...

  4. 小程序生成海报图片(或者原有的)并下载,&&相册授权&&按钮拉起二次授权

    这是自己做小程序生成推广海报,并保存到本地相册的方法,向后台发起请求,返回一个海报图片,下载保存到相册, 如果只是单纯的下载图片代码43行-63行就足够了 如果想直接保存到相册,则不要做downFil ...

  5. ILMerge参考文档

    ILMerge Michael BarnettResearch in Software Engineering (RiSE)Microsoft ResearchCopyright © Microsof ...

  6. Redis 可视化工具:Web Redis Manager

    以前用的:RedisDesktopManager (0.9.3以后需要订阅) https://github.com/uglide/RedisDesktopManager/releases 现在需要订阅 ...

  7. docker部署项目 <三>

    使用docker运行一个控制台项目,新建一个控制台测试项目 一.安装mono,直接在网易镜像中心找下载路径 docker pull hub.c..com/library/mono:latest 二.安 ...

  8. RPC原理及实现

    一.什么是RPC RPC 的全称是 Remote Procedure Call 是一种进程间通信方式.它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个 ...

  9. InputString 转换成 BufferedImage 和 byte[]

    获取网络的一张图片,但是某种需要,要把获取的这段流输入换为BufferedImage流,有的地方还需要转换为byte[]. 获得图片地址,获得了一个图片输入流,例如: Url img = new UR ...

  10. 【JavaScrpt】JS之数组去重

    var arr = [] var peoples = [ {id:1,name:'wang'}, {id:2,name:'zhang'}, {id:2,name:'zhang'}, ] for(let ...