误删Orcle9i的数据表,没有备份数据,怎样恢复?

解决方案 »

  1.   

    SQL> select * from tb
      2  order by name asc, time desc;        ID NAME                                     TIME
    ---------- ---------------------------------------- ----------------------------------------
             1 a                                        21:00
             4 a                                        19:00
             2 a                                        05:00
             5 b                                        18:00
             3 b                                        03:00SQL> desc tb;
     名称                                                              是否为空? 类型
     ----------------------------------------------------------------- -------- -------------------------------------------- ID                                                                         NUMBER(18)
     NAME                                                                       VARCHAR2(20)
     TIME                                                                       VARCHAR2(20)SQL> drop table tb;表已删除。SQL> show recyclebin;
    ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
    ---------------- ------------------------------ ------------ -------------------
    TB               BIN$BgcAVDN/QnOcbjXt5ST/Rw==$0 TABLE        2011-07-27:11:47:13
    SQL> flashback table tb to before drop;闪回完成。SQL> desc tb;
     名称                                                              是否为空? 类型
     ----------------------------------------------------------------- -------- -------------------------------------------- ID                                                                         NUMBER(18)
     NAME                                                                       VARCHAR2(20)
     TIME                                                                       VARCHAR2(20)SQL> select * from tb;        ID NAME                                     TIME
    ---------- ---------------------------------------- ----------------------------------------
             1 a                                        21:00
             2 a                                        05:00
             3 b                                        03:00
             4 a                                        19:00
             5 b                                        18:00
      

  2.   


    -- 呵呵,不过表闪回恢复功能好像只有Oracle 10G有哦!......
      

  3.   

    试试这个:
    第一步:找到删除数据的操作时间从( v$sql 或者 v$sqlarea 视图里面查询 )
    select r.FIRST_LOAD_TIME,r.SQL_TEXT,r.optimizer_mode,r.module,r.action,r.LAST_ACTIVE_TIME 
    from v$sqlarea r 
    order by r.FIRST_LOAD_TIME desc ;
    第二步:
    create table t_table_recove
    as
    select * from t_table 
    as of timestamp to_timestamp('2010-06-02 11:36:53','yyyy-mm-dd hh24:mi:ss');to_timestamp('2010-06-02 11:36:53.000000','yyyy-mm-dd hh24:mi:ss.ff')再将恢复后的数据放到原来表就可以了.
      

  4.   

    楼上的那个t_table  指的是那个表?
      

  5.   

    oracle 应当有归档日记,通过归档日记应该可以恢复误操作吧