查看: 17274|回复: 46

表空间恢复

[复制链接]
论坛徽章:
0
跳转到指定楼层
1#
发表于 2006-1-19 17:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
误删除一个表空间后,能否用删除表空间以后的控制文件来恢复到删除之前的状态?nocatalog模式。
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
2#
发表于 2006-1-19 18:22 | 只看该作者
不行。

使用道具 举报

回复
论坛徽章:
0
3#
 楼主| 发表于 2006-1-20 11:08 | 只看该作者
为何不行?那删除表而不是表空间呢?

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
17
会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442010新春纪念徽章
日期:2010-03-01 11:20:05
4#
发表于 2006-1-20 11:25 | 只看该作者
进行不完全恢复。

使用道具 举报

回复
论坛徽章:
0
5#
 楼主| 发表于 2006-1-20 13:38 | 只看该作者
是进行不完全恢复,我的问题是恢复的时候是否可以当前的已经删除了表空间的控制文件!

使用道具 举报

回复
论坛徽章:
0
6#
发表于 2006-1-20 13:56 | 只看该作者
如果你的归档还在,而且这个表空间是在启用归档后建立的,有恢复的可能

使用道具 举报

回复
论坛徽章:
0
7#
 楼主| 发表于 2006-1-20 14:08 | 只看该作者
当然是在归档模式下,而且有删除表空间前的备份,要不然就不用讨论了。

使用道具 举报

回复
论坛徽章:
0
8#
 楼主| 发表于 2006-1-20 14:09 | 只看该作者
当然是在归档模式下,而且有删除表空间前的RMAN备份,要不然就不用讨论了。

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2005-11-28 16:52:07会员2006贡献徽章
日期:2006-04-17 13:46:34参与2007年甲骨文全球大会(中国上海)纪念
日期:2007-08-06 15:19:01
9#
发表于 2006-1-20 15:05 | 只看该作者
思路:
当前控制文件里面已经不存在被删除的表空间的任何信息,如果直接进行不完全恢复,
由于CF中没有记录,不管你有没有备份这个表空间,ORACLE的恢复进程都不会叼你这个TBS

我开始认同tlczwyj的说法,利用日志信息前滚到创建表空间的一刻,这样会在CF中产生对应的文件信息(可能名称是乱码),
然后create as一次,产生文件,然后应用后续的日志,直到删除TBS的前一刻,但测试后发现在cf中始终产生不了对应的文件信息

SQL> create tablespace mytestspace datafile 'D:\ORACLE_BASE\datafiles\mytestspace.dbf' size 20M;

Tablespace created.

SQL> CREATE TABLE MYTEST (ROW_ID INT) TABLESPACE mytestspace;

Table created.

SQL> INSERT INTO MYTEST VALUES(1);

1 row created.

SQL> COMMIT;

Commit complete.

SQL> SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
2006-01-20 14:15:01 --建立时间

2006-01-20 14:16:14 --恢复时间点


SQL> SHUTDOWN;
Database closed.
Database dismounted.
ORACLE instance shut down.

--备份所有数据文件
SQL> STARTUP;
ORACLE instance started.

Total System Global Area  529604068 bytes
Fixed Size                   454116 bytes
Variable Size             520093696 bytes
Database Buffers            8388608 bytes
Redo Buffers                 667648 bytes
Database mounted.
Database opened.

--创建新表空间
SQL> create tablespace mytestspace datafile 'D:\ORACLE_BASE\datafiles\mytestspac
e.dbf' size 20M;

Tablespace created.

SQL> ALTER SYSTEM CHECKPOINT;

System altered.

--记录创建TBS的完成时间
SQL> SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;

TO_CHAR(SYSDATE,'YYYY-MM-DDHH
---------------------------------------------------------------------------
2006-01-20 14:15:01

--产生数据
SQL> CREATE TABLE MYTEST (ROW_ID INT) TABLESPACE mytestspace;

Table created.

SQL> INSERT INTO MYTEST VALUES(1);

1 row created.

SQL> commit;

Commit complete.

SQL> ALTER SYSTEM CHECKPOINT;

System altered.


--最终要恢复的时间点
SQL> SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;

TO_CHAR(SYSDATE,'YYYY-MM-DDHH
---------------------------------------------------------------------------
2006-01-20 14:16:14


--删除表空间
SQL> DROP TABLESPACE MYTESTSPACE INCLUDING CONTENTS AND DATAFILES;

Tablespace dropped.

SQL> shutdown abort;
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
--将备份文件COPY回来

C:\Documents and Settings\luochun.BSCY>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on Fri Jan 20 14:17:44 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> connect / as sysdba
Connected to an idle instance.
SQL> startup mount
ORACLE instance started.

Total System Global Area  529604068 bytes
Fixed Size                   454116 bytes
Variable Size             520093696 bytes
Database Buffers            8388608 bytes
Redo Buffers                 667648 bytes
Database mounted.
SQL> recover database until time '2006-01-20 14:15:01';
Media recovery complete.
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------

D:\ORACLE_BASE\DATAFILES\SYSTEM01.DBF
D:\ORACLE_BASE\DATAFILES\UNDOTBS.DBF
D:\ORACLE_BASE\DATAFILES\MYSPACE.DBF
D:\ORACLE_BASE\DATAFILES\MYAUTO.DBF


SQL> recover database until time '2006-01-20 14:15:01';
Media recovery complete.
SQL>  select name from v$datafile;

NAME
--------------------------------------------------------------------------------

D:\ORACLE_BASE\DATAFILES\SYSTEM01.DBF
D:\ORACLE_BASE\DATAFILES\UNDOTBS.DBF
D:\ORACLE_BASE\DATAFILES\MYSPACE.DBF
D:\ORACLE_BASE\DATAFILES\MYAUTO.DBF

SQL>
这样后续部分就没法进行了,大家有什么意见,欢迎拍砖!!!!!

使用道具 举报

回复
论坛徽章:
42
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:022011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:56管理团队成员
日期:2011-05-07 01:45:08ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23
10#
发表于 2006-1-20 15:40 | 只看该作者
用以前备份的文件重建控制文件, 这时原来的文件应当回来了

然后应当可以恢复的.

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表