举一举个例子不举什么意思,使之实现闪回删除的表

您所在的位置: &
使用闪回删除来恢复被删除的表
使用闪回删除来恢复被删除的表
清华大学出版社
《Oracle Database 11gDBA手册》将介绍Oracle 11g最新的特性以及如何将这些特性结合到Oracle数据库管理中。第14章将会学习能够显著增强数据库应用程序可用性的各种功能特性的实现细节。本节说的是使用闪回删除来恢复被删除的表。
第14章其他各种高可用性特性
在本章中,将会学习能够显著增强数据库应用程序可用性的各种功能特性的实现细节。其中一些特性,如LogMiner选项,是对以前Oracle版本中可用的特性的增强。其他特性,如回收站和flashback database命令,是在Oracle Database 10g新引入并在Oracle Database 11g中得到增强。第7章全面涵盖了只依赖于撤销表空间的其他闪回选项,例如闪回表(Flashback Table)和闪回查询(Flashback Query)。在本章中,将会学习如何使用如下特性来增强数据库的可用性:
●&Flashback Drop(闪回删除)
●&Flashback Database(闪回数据库)
●&LogMiner
●&联机对象重组织选项
闪回删除(Flashback Drop)依赖于Oracle Database 10g中引入的一种结构--回收站,回收站的行为非常类似于基于Windows计算机中的回收站:如果表空间中有足够的空间,则被删除的对象会恢复到它们最初的模式,所有索引和约束原封不动。闪回数据库(Flashback Database)依赖于闪回恢复区中存储的数据,闪回恢复区也是Oracle Database 10g中新引入的一种存储区域。从Oracle9i开始可用的LogMiner依赖归档重做日志文件来持续查看对表、索引和其他数据库结构(DDL操作)所做的变更。
14.1& 使用闪回删除来恢复被删除的表
当删除一个表(及其相关的索引、约束和嵌套表)时,Oracle并不会立即释放该表的磁盘空间供表空间中的其他对象使用。相反,对象仍维护在回收站(recycle bin)中,直到对象被其所有者清除,或者有新的对象需要已删除对象所占用的空间。
在此例中,考虑AUTHOR表,它定义如下:
SQL& describe AUTHORName&&&&&&&&&&&&&& &Null?&&& &&Type---------------- &-------- &----------------------------AUTHORNAME&&&&&&& &NOT NULL &VARCHAR2(50)COMMENTS&&&&&&&&&&&&&&&&&&& &&&VARCHAR2(100)
现在,假设意外地删除了该表。当一个用户对存在于多个环境中的一个表拥有权限,他打算在开发环境中删除一个表,但在命令执行时却实际指向了产品数据库的时候,就会出现这种情况。
SQL& drop table AUTHORTable dropped.
如何才能恢复该表呢?自从Oracle Database 10g以来,删除的表并没有完全消失。它的块仍旧保持在其表空间中,并且仍旧占用空间限额。可以通过查询RECYCLEBIN数据字典视图来查看删除的对象。需要注意的是,在不同的版本之间OBJECT_NAME列的格式可能有所不同:
SQL& select object_name, original_name, operation, type, user,2& can_undrop, sOBJECT_NAME&&&&&&&&&&&&&&&&&&& &&&ORIGINAL_NAME&&&&&&& &&OPERATION----------------------------- &-------------------- &---------TYPE&&&&&&&&&&&&&&&&&&&& && &&USER&&&&&&&&&& &CAN_UNDROP&&&&& &&SPACE------------------------ &--------------- ---------- --------BIN$OyXS+NT+J47gQKjAXwJcSA==$0 AUTH_NAME_IDX&&&&&&& DROPINDEX&&&&&&&&&&&&&&&&&&&& &&&HR&&&&&&&&&&&& &NO&&&&&&&&&&&&&&& &&&&384BIN$OyXS+NT/J47gQKjAXwJcSA==$0 AUTHORS&&&&&&&&&&&&& DROPTABLE&&&&&&&&&&&&&&&&&&&& &&&HR&&&&&&&&&&&& &YES&&&&&&&&&&&&& &&&1152SQL&
RECYCLEBIN是用于USER_RECYCLEBIN数据字典视图的公共同义词,为当前的用户显示了回收站表项。数据库管理员可以通过DBA_RECYCLEBIN数据字典视图来查看所有删除的对象。
从上面的清单中可以看到,一个用户已经删除了AUTHOR表及其相关的主键索引。尽管删除了它们,它们仍可用于闪回。索引不能独自恢复(它的CAN_UNDROP列的值是'NO',同时AUTHOR表的CAN_UNDROP值为'YES')。
可以使用flashback table to before drop命令从回收站中恢复该表:
SQL& flashback table AUTHORFlashback complete.
此时,已经恢复了该表以及它的行、索引和统计信息。
如果删除AUTHOR表,重新创建该表,然后再次删除它,那么会出现什么情况呢?回收站将会包含这两个表。回收站中的每个表项将会通过它的SCN和删除时间戳来标识。
flashback table to before drop命令不会恢复引用的约束。
为了从回收站中清除旧的记录项,可以使用purge命令。可以清除所有删除的对象、数据库中所有已删除的对象(如果您是数据库管理员)、特定的表空间中的所有对象或者特定的表空间中针对某个特定用户的所有对象。当闪回表时,可以使用flashback table命令的rename to子句对该表重命名。
在Oracle Database 10g和11g中,默认情况下,回收站是启用的。可以使用初始化参数RECYCLEBIN打开和关闭回收站,也可以在会话级别打开和关闭回收站,如下例所示:
alter session set recyclebin =
临时禁用回收站功能并不影响回收站中的当前对象。即使在回收站被禁用时,仍然可以恢复回收站中的当前对象。只有回收站被禁用时删除的对象不能恢复。
【责任编辑: TEL:(010)】&&&&&&
关于&&&&&&的更多文章
MongoDB的转变也正是10gen的转变,Dwight Merriman在一份声明中
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
马克o桑布恩不仅带来了弗雷德的近况,更将追求卓越的
快乐的员工就一定能干吗?为什么满意度和绩效不一定相
思想决定行为,行为决定习惯,习惯决定性格,性格决定
本书重点介绍了主流ARM应用系统的开发与实践。全书基于目前较为通用、流行的ARM处理器,介绍了其原理、硬件结构、硬件电路设计与
51CTO旗下网站您所在的位置: &
在Oracle 10gR2中设定指定的恢复点实现轻松闪回
在Oracle 10gR2中设定指定的恢复点实现轻松闪回
Bob Watkins
本文介绍如何在Oracle 10gR2中设定指定的恢复点实现轻松闪回。
Oracle 9i引入的闪回查询功能显示前一个时间点的查询结果。但是,表本身并没有改变。Oracle 10g增强了闪回功能,可以永久闪回一个表格。现在Oracle 10g第二版通过增加指定的恢复点,使这一过程更加方便。
通常,你为FLASHBACK TABLE语句提供一个时间标签或系统改变号(SCN),表明你希望闪回多远。(闪回次数仅限于系统存储撤销的次数。)问题在于,时间标签只是一个近似值,而了解准确的SCN需要查明一个特别的事务。在开始更新前,你可应用DBMS_FLASHBACK中的GET_SYSTEM_CHANGE_NUMBER进程来显示当前的SCN,但你必须记住它。
应用恢复点不必知道准确的SCN。恢复点建立后,它即恢复当前SCN。因此,使用恢复点名称等同于使用对应的SCN。
CREATE RESTORE POINT(创建恢复点)命令的语法很简单:
CREATE RESTORE POINT restore_point_
FLASHBACK ANY TABLE或SELECT ANY DICTIONARY权限需要建立一个正常(无保证)的恢复点。一旦恢复点不再需要,对应的DROP RESTORE POINT命令就将它删除。
列表A显示向OE模式提供的正确许可,建立一个恢复点,然后在一个错过正确WHERE子句的错误UPDATE后建立一个FLASHBACK TABLE。
SQL> CONNECT / AS SYSDBAConnected.SQL> GRANT SELECT ANY DICTIONARY TO
Grant succeeded.
SQL> CONNECT OE/OEConnected.
SQL> -- Tables must have row movement enabled to flash backSQL> ALTER TABLE warehouses 2 ENABLE ROW MOVEMENT;
Table altered.
SQL> CREATE RESTORE POINT my_
Restore point created.
SQL> COLUMN name FORMAT a25SQL> COLUMN time FORMAT a32SQL>
SQL> SELECT name, scn, time, guarantee_flashback_database 2 FROMv$restore_
NAME SCN TIME GUA ------------------------- ---------- ------------------------------ MY_UPDATE -AUG-06 03.32.29. PM NO
SQL> UPDATE warehouses 2 SET warehouse_name = 'Bellevue, WA';
9 rows updated.
SQL> COMMIT;
Commit complete.
SQL> SELECT warehouse_id, warehouse_name 2 FROM
WAREHOUSE_ID WAREHOUSE_NAME ------------ ----------------------------------- 1 Bellevue, WA 2 Bellevue, WA 3 Bellevue, WA 4 Bellevue, WA 5 Bellevue, WA 6 Bellevue, WA 7 Bellevue, WA 8 Bellevue,WA 9 Bellevue, WA 9 rows selected.SQL> CONNECT / AS SYSDBA Connected.SQL> GRANT SELECT ANY DICTIONARY TO
Grant succeeded.
SQL> CONNECT OE/OEConnected.
SQL> -- Tables must have row movement enabled to flash backSQL> ALTER TABLE warehouses 2 ENABLE ROW MOVEMENT;
Table altered.
SQL> CREATE RESTORE POINT my_
Restore point created.
SQL> COLUMN name FORMAT a25SQL> COLUMN time FORMAT a32SQL>
SQL> SELECT name, scn, time, guarantee_flashback_database 2 FROMv$restore_
NAME SCN TIME GUA ------------------------- ---------- ------------------------------- MY_UPDATE -AUG-06 03.32.29. PM NO
SQL> UPDATE warehouses 2 SET warehouse_name = 'Bellevue, WA';
9 rows updated.
SQL> COMMIT;
Commit complete.
SQL> SELECT warehouse_id, warehouse_name 2 FROM
WAREHOUSE_ID WAREHOUSE_NAME ------------ -----------------------------------1 Bellevue, WA 2 Bellevue, WA 3 Bellevue, WA 4 Bellevue, WA 5 Bellevue, WA 6 Bellevue, WA 7 Bellevue,WA 8 Bellevue, WA 9 Bellevue, WA 9 rows selected.
SQL> FLASHBACK TABLE warehouses 2 TO RESTORE POINT my_
Flashback complete.
SQL> SELECT warehouse_id, warehouse_name 2 FROM
WAREHOUSE_ID WAREHOUSE_NAME ------------ ----------------------------------- 1 Southlake, Texas 2 San Francisco 3 New Jersey 4 Seattle, Washington 5 Toronto 6 Sydney 7 Mexico City 8 Beijing 9 Bombay
9 rows selected.
SQL> FLASHBACK TABLE warehouses 2 TO RESTORE POINT my_
Flashback complete.
SQL> SELECT warehouse_id, warehouse_name 2 FROM
WAREHOUSE_ID WAREHOUSE_NAME ------------ ----------------------------------- 1 Southlake, Texas 2 San Francisco 3 New Jersey 4 Seattle, Washington 5 Toronto 6 Sydney 7 Mexico City 8 Beijing 9 Bombay
9 rows selected.
恢复点存储在控制文件中,所以即使数据库关闭(安装好,但未开),它们仍然有效。这意味着你还可在FLASHBACK DATABASE命令中使用它们。
作者:Bob Watkins(OCP、MCDBA、MCSE、MCT)是一位有25年经验的计算机专业人士,从事过技术培训师、顾问与数据库管理员等职。
(责任编辑:铭铭
TEL:(010)-)
关于&&的更多文章
Java EE(以前叫做Java 2平台,企业版)是一个为支持企业级应用
网友评论TOP5
数据库产品
数据库综合
数据库新闻
维基百科将切换到另外一款开源数据库MariaDB
作为甲骨文公司的基石,Oracle数据库一直占据着数据库
MySQL众多的管理工具,是广大DBA管理好数据库的利器。
本专题将带领大家走入MongoDB的世界,MongoDB是一个基
本书分为4个部分共24章,以插件开发为中心,围绕插件开发主要介绍SWT/JFace的应用、插件扩展点的实现,以及GEF、EMF和RCP的相关
51CTO旗下网站kettle工具对oracle数据库使用-中国学网-中国IT综合门户网站
> 信息中心 >
kettle工具对oracle数据库使用
来源:互联网 发表时间: 16:26:25 责任编辑:鲁晓倩字体:
为了帮助网友解决“kettle工具对oracle数据库使用”相关的问题,中国学网通过互联网对“kettle工具对oracle数据库使用”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:kettle工具对oracle数据库使用闪回查询方式进行增量抽取,如何设计,有例子吗,求大神指教,具体解决方案如下:解决方案1:增量抽取用kettle的话建议使用时间戳或最大主键进行区分增量数据解决方案2:时间戳方式不可以,因为原数据库是视图数据,只有只读权限,再说时间戳方式没有办法检测出已删除的数据,还想再请教一下您说的最大主键进行区分是什么意思,现在视图数据的主键不是自增长,而且数据是百万条、千万条,您那边还有没有其他的建议,求指教,谢谢解决方案3:主键不是自增长而且没有时间戳的话,那么视图数据会不会更新呢在不会更新的情况下,增量数据也就是新增的主键数据,对比目标库主键进行抽取就可以了如果在视图数据会更新的情况下,只能全量去比对了,可以研究一下merge rows(diff)控件
1个回答1个回答1个回答1个回答2个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号}

我要回帖

更多关于 对举的例子 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信