- 最后登录
- 2018-9-14
- 在线时间
- 47 小时
- 威望
- 205
- 金钱
- 2327
- 注册时间
- 2011-10-13
- 阅读权限
- 150
- 帖子
- 90
- 精华
- 0
- 积分
- 205
- UID
- 26
|
3#
发表于 2017-7-25 14:32:13
本帖最后由 biotwang 于 2017-7-25 15:12 编辑
恢复思路:
1. DROP TABLESPACE INCLUDING CONTENTS主要是会对数据字典中的表空间相关信息做彻底删除,这其中表空间的段信息(表,索引等)都会被清理。即便表空间文件还在,你仍然需要对数据字典信息恢复才行,即便手工重建控制文件将此表空间重新恢复,但是数据字典上的段信息还是没办法恢复的。由于少了表空间下的段信息,表空间重新指定文件或强制online都成了空想。
2. 在没有备份且非归档的情况,你只能直接对数据文件进行数据救援了,不过由于没有表名和列名信息,这需要自己对数据进行辨别恢复,如果表很多,工作量将是巨大的。这里可以使用PRM Databridge抽取表数据到新数据库中,这样更方便比对。
3. 如果可以直接从字典表中恢复出之前清理掉的表空间及段记录信息,那会对数据辨别和表恢复工作具有重大帮助,因为可以通过object_id进行表结构数据的一一对应修正恢复。如果无法找到的话,那么退而求其次,只能找下是否存在过去的表空间下对象的建立脚本和文档记录并对表数据进行人工辨别了。
使用Flashback Query来查询obj$,tab$,col$字典表, 例如:
select * from obj$ as of timestamp to_timestamp('2017-07-25 14:07:11', 'YYYY-MM-DD HH24:MI:SS'); |
|