说一说ORACLE FLASHBACK TABLE的一个有趣问题

我们知道,ORACLE 10G新增了FLASHBACK特性,其中FLASHBACK TABLE用来对误删的表进行修复。但是今天却发现了FLASHBACK TABLE的一个有趣问题,请看下面慢慢道来:下面我用一个例子来说明我的遇到的有趣的问题,欢迎大家探讨。

  1. SQL> CONNECT SYSDBA/***** AS SYSDBA   
  2.  
  3. 已连接。  
  4.  
  5. SQL> CREATE TABLE TEST (T VARCHAR2(10) ) ;   
  6.  
  7. 表已创建。  
  8.  
  9. SQL> DROP TABLE TEST;   
  10.  
  11. 表已删除。  
  12.  
  13. SQL> FLASHBACK TABLE TEST TO BEFORE DROP;    
  14.  
  15. FLASHBACK TABLE TEST TO BEFORE DROP    
  16.  
  17. *   
  18.  
  19. 第 1 行出现错误:  
  20.  
  21. ORA-38305: 对象不在回收站中 

出现ORA-38305错误,起初我以为是回收站机制参数OFF引起的,Oracle10g起,引入了回收站的机制,将drop掉的数据表保存在回收站中。当发现误删除的时候,可以通过回收站回收数据表。回收站机制类似于我们在Windows系统上的回收站。在Windows中,当我们选择删除一个文件时,本质上并没有将文件从硬盘上删除,只是将文件以一种形式改名,这样就能从回收站中看到。于是我查看了RECYCLEBIN参数。

 

奇怪的是回收站参数是开启的,SQL> SHOW RECYCLEBIN; 也看不到删除的表。这到底是咋回事呢?折腾了很久。后来修改了创建表的表空间,竟然一切都OK

  1. SQL> CREATE TABLE TEST(T VARCHAR2(10)) TABLESPACE USERS;  
  2.  
  3. 表已创建。  
  4.  
  5. SQL> DROP TABLE TEST;  
  6.  
  7. 表已删除。  
  8.  
  9. SQL> SHOW RECYCLEBIN;  
  10.  
  11. ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME  
  12.  
  13. ---------------- ------------------------------ ------------ -------------------  
  14.  
  15. TEST             BIN$gVtRcd2NTqihW6yM4vs0Hw==$0 TABLE        2011-07-24:12:40:42  
  16.  
  17. SQL> FLASHBACK TABLE TEST TO BEFORE DROP;  
  18.  
  19. 闪回完成。  
  20.  
  21. SQL> SELECT * FROM TEST;  
  22.  
  23. 未选定行 

如果不指定创建表的表空间,那么它会使用默认的表空间SYSTEM,你可以通过SELECT TABLESPACE_NAME FROM USER_TABLES WHERE TABLE_NAME=’TEST’查看。后来我有多次重复了这个实验,结果都是如此,看来在表空间SYSTEM下是无法使用FLASHBACK TABLE特性的,很有趣的,后来查了下资料才知道: You cannot ‘flashback table to before drop’ a table which has been created in the SYSTEM tablespace. The table is sent to the recyclebin only if it existed in some other tablespace other than SYSTEM tablespace and that tablespace must be locally managed.看来ORACLE限制了在表空间SYSTEM下使用回收站机制,不知道ORACLE为什么有这限制。

关于Oracle数据库的FLASHBACK TABLE的知识就介绍到这里,希望能对您有所帮助。

【编辑推荐】

  1. 一些很实用的Oracle数据库优化策略总结篇
  2. Oracle数据库使用存储过程创建自动增长列
  3. Oracle、MySQL和PostgreSQL的比较与选择
  4. 一个利用Oracle表的主外键关系实现级联删除的实例
  5. Oracle数据库Guid作主键时执行速度超慢的原因在哪里

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/251389.html<

(0)
运维的头像运维
上一篇2025-04-28 23:04
下一篇 2025-04-28 23:05

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注