ITPUB??ì3
2010数据库技术大会
ITPUB论坛 » Oracle数据库管理 » 表空间恢复


您有 2 条公共消息
  • 来自: 公共消息 标题: 3-5月ITPUB数据库 ... 内容: ITPUB与3月和5月分别安排了Oracle 11g DBA和Oracle性能优化培训,以及 ...
  • 来自: 公共消息 标题: ITPUB邮箱已经恢复 内容: ITPUB邮箱用户请注意,邮箱现在已经恢复 web访问地址 http://emai ...

    标题: 表空间恢复
    离线 jianhuadong
    老会员



    精华贴数 0
    个人空间 0
    技术积分 1054 (2135)
    社区积分 0 (155797)
    注册日期 2004-8-23
    论坛徽章:0
          
          

    发表于 2006-1-19 17:45 
    表空间恢复

    误删除一个表空间后,能否用删除表空间以后的控制文件来恢复到删除之前的状态?nocatalog模式。


    只看该作者    顶部
    离线 flyonnet
    老会员


    精华贴数 0
    个人空间 0
    技术积分 856 (2687)
    社区积分 35 (7131)
    注册日期 2001-12-11
    论坛徽章:1
    授权会员     
          

    发表于 2006-1-19 18:22 
    不行。


    只看该作者    顶部
    离线 jianhuadong
    老会员



    精华贴数 0
    个人空间 0
    技术积分 1054 (2135)
    社区积分 0 (155797)
    注册日期 2004-8-23
    论坛徽章:0
          
          

    发表于 2006-1-20 11:08 
    为何不行?那删除表而不是表空间呢?


    只看该作者    顶部
    离线 rwq_
    笨笨


    精华贴数 0
    个人空间 0
    技术积分 6604 (254)
    社区积分 2245 (709)
    注册日期 2001-10-9
    论坛徽章:17
    会员2007贡献徽章2010新春纪念徽章ITPUB新首页上线纪念徽章   
          

    发表于 2006-1-20 11:25 
    进行不完全恢复。


    __________________
    山外有山,天外有天做事,先做人我的简单的BLOG
    只看该作者    顶部
    离线 jianhuadong
    老会员



    精华贴数 0
    个人空间 0
    技术积分 1054 (2135)
    社区积分 0 (155797)
    注册日期 2004-8-23
    论坛徽章:0
          
          

    发表于 2006-1-20 13:38 
    是进行不完全恢复,我的问题是恢复的时候是否可以当前的已经删除了表空间的控制文件!


    只看该作者    顶部
    离线 tlczwyj
    初级会员



    精华贴数 0
    个人空间 0
    技术积分 10 (101164)
    社区积分 0 (132402)
    注册日期 2004-6-14
    论坛徽章:0
          
          

    发表于 2006-1-20 13:56 
    如果你的归档还在,而且这个表空间是在启用归档后建立的,有恢复的可能


    __________________
    ########################不积跬眇,无以至千里。
    只看该作者    顶部
    离线 jianhuadong
    老会员



    精华贴数 0
    个人空间 0
    技术积分 1054 (2135)
    社区积分 0 (155797)
    注册日期 2004-8-23
    论坛徽章:0
          
          

    发表于 2006-1-20 14:08 
    当然是在归档模式下,而且有删除表空间前的备份,要不然就不用讨论了。


    只看该作者    顶部
    离线 jianhuadong
    老会员



    精华贴数 0
    个人空间 0
    技术积分 1054 (2135)
    社区积分 0 (155797)
    注册日期 2004-8-23
    论坛徽章:0
          
          

    发表于 2006-1-20 14:09 
    当然是在归档模式下,而且有删除表空间前的RMAN备份,要不然就不用讨论了。


    只看该作者    顶部
    离线 chj733
    八神


    精华贴数 0
    个人空间 0
    技术积分 1862 (1100)
    社区积分 101 (4259)
    注册日期 2004-12-8
    论坛徽章:3
    参与2007年甲骨文全球大会(中国上海)纪念会员2006贡献徽章授权会员   
          

    发表于 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>
    这样后续部分就没法进行了,大家有什么意见,欢迎拍砖!!!!!


    __________________
    只看该作者    顶部
    离线 d.c.b.a
    人生积极一点好


    精华贴数 7
    个人空间 0
    技术积分 15229 (90)
    社区积分 1376 (1000)
    注册日期 2004-2-19
    论坛徽章:23
    现任管理团队成员Heart of PUBITPUB北京九华山庄2008年会纪念徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章会员2007贡献徽章
    2010新春纪念徽章2010年世界杯参赛球队:德国2009日食纪念2009新春纪念徽章ITPUB新首页上线纪念徽章 

    发表于 2006-1-20 15:40 
    用以前备份的文件重建控制文件, 这时原来的文件应当回来了

    然后应当可以恢复的.


    __________________

    非常规Oracle数据恢复!  报表制作, 数据迁移, 系统监控等.

    拥有固定式AUL许可证, 恢复Oracle数据只需要靠自已.

    个人主页: AnySQL | dbatools
    联系方法: MSN: anysql©live.com, Skype: anysql, QQ: 37223884, 工具交流(QQ群): 103980462
    只看该作者    顶部
    相关内容


    CopyRight 1999-2006 itpub.net All Right Reserved.
    北京皓辰网域网络信息技术有限公司. 版权所有
    E-mail:Webmaster@itpub.net
    网站律师 隐私政策 知识产权声明
    京ICP证:060528号 联系我们