Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

1

好友

29

主题
1#
发表于 2012-12-27 15:26:08 | 查看: 3681| 回复: 2
本帖最后由 张沛 于 2012-12-27 15:27 编辑

刚刚做了一个实验,想看看oracle的闪回表能不能对于表上字段的闪回,发现入股我删除表的一列,那么回收站是没有信息的。。。

WXY@moon>select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
PL/SQL Release 10.2.0.4.0 - Production
CORE    10.2.0.4.0      Production
TNS for Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 – Production

SYS@moon>show parameter recycle

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
buffer_pool_recycle                  string
db_recycle_cache_size                big integer 0
recyclebin                           string      on

WXY@moon>select * from recyclebin;

no rows selected

以上算是初始化信息之后创建表和插入语句不写了,只看结果
WXY@moon>select * from test;

         X          Y          Z
---------- ---------- ----------
         1          1          1
         2          2          2
         3          3          3
删除z列后
WXY@moon>select * from test;

         X          Y
---------- ----------
         1          1
         2          2
         3          3
此时回收依然没有信息
WXY@moon>select * from recyclebin;

no rows selected

那么如果在没有备份的情况下,对表的一列删除了不知道还有没有恢复机制?
(虚拟机的实验,没变code模式粘出来,抱歉抱歉)
2#
发表于 2012-12-27 15:46:51
请先搞清楚 flashback table的原理看过文档在提问! 

http://docs.oracle.com/cd/B19306 ... statements_9012.htm

  1. conn maclean/oracle


  2. SQL> select * from v$version;

  3. BANNER
  4. --------------------------------------------------------------------------------
  5. Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
  6. PL/SQL Release 11.2.0.3.0 - Production
  7. CORE    11.2.0.3.0      Production
  8. TNS for 64-bit Windows: Version 11.2.0.3.0 - Production
  9. NLSRTL Version 11.2.0.3.0 - Production


  10. CREATE FLASHBACK ARCHIVE DEFAULT fda
  11.    TABLESPACE users
  12.    QUOTA 1024 M
  13.    RETENTION 100 DAY;
  14.    
  15.    
  16.   SQL> create table orz (t1 int,t2 int ) flashback archive fda;

  17. Table created.


  18. SQL> create table orz (t1 int,t2 int ) flashback archive fda;

  19. Table created.

  20. SQL> insert into orz values(1,2);

  21. 1 row created.

  22. SQL> commit;

  23. Commit complete.

  24. SQL> select current_scn from v$database;

  25. CURRENT_SCN
  26. -----------
  27. 10261799


  28. SQL>
  29. SQL> alter table orz drop column t2;

  30. Table altered.

  31. SQL> select * from orz;

  32.         T1
  33. ----------
  34.          1


  35. SQL> select * from orz as of scn 10261799;

  36.         T1         T2
  37. ---------- ----------
  38.          1          2

  39.                  
  40.                  
  41.                  
  42.                  


复制代码
11.2后的flashback archive闪回归档才能针对alter table 类的DDL闪回!!!!!!!!!!!!

回复 只看该作者 道具 举报

3#
发表于 2012-12-27 15:59:24
Liu Maclean(刘相兵 发表于 2012-12-27 15:46
请先搞清楚 flashback table的原理看过文档在提问! 

http://docs.oracle.com/cd/B19306_01/server.102/b ...

感谢刘大悉心教诲,受教受教,下次先把原理搞懂了再做

回复 只看该作者 道具 举报

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

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-26 01:54 , Processed in 0.046685 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569