- 浏览: 367317 次
- 性别:
最新评论
-
天使建站:
这里这篇文章更详细 还有完整的实例演示:js跳出循环:brea ...
js跳出循环的方法区别(break,continue,return) -
jahentao:
我觉得Jcreator和eclipse中的列出属性和方法,很多 ...
反射原理 -
T240178168:
相互交流下吧
ie9以下都有这个问题(ajax) -
blackproof:
试了一下,的确第一种写法oracle优化了,效率比第二种快多了 ...
Oracle分页sql语句 -
杨白白:
进程与线程
oracle10g的回闪包括以下特性;
1〉oracle falshback Database. 特性允许oracle通过Flashback database语句,将数据库会滚到前一个时间点或者scn上,而不需要作时间点的恢复工作!
2〉oracle falshback table. 特性允许oracle通过flashback table语句,将表会滚到前一个时间点或者scn上。
3〉oracle falshback drop. 特性允许oracle把恢复drop掉的table或者索引。
4〉oracle falshback version query. 特性可以得到特定的表在某一个时间段内的任何修改记录!
5〉oracle falshback transaction query 特性可以限制用户在某一个事务级别上检查数据库的修改操作,适用于诊断问题、分析性能、审计事务。
1: flashback table tablename to befor drop;
此操作需要用户有以下的权限:
A:falshback any table的系统权限或者是某一个表的flashback权限。
B:有table的select、insert、delect、alter权限。
C:有table的row Movement权限
附:--关于scn的介绍:
SCN:system change numbers,oracle10g的每一个表都有ora_rowscn列!但是desc是看不到改列的。
可以通过select ora_rowscn from table 得到每一条结果集当前的SCN,scn_to_timestamp()将scn转换到timestamp;timestamp_to_scn()将timestamp转换到scn。
2:flashback table a to timestamp to_timestamp('2010-01-27 11:45:20','yyyy-mm-dd hh24:mi:ss');
执行闪回操作时可能会提示错误:
ORA-08189: cannot flashback the table because row movement is not enabled
解决方式:SQL> alter table a enable row movement;
Table altered.
这个命令的作用是,允许Oracle修改分配给行的rowid。在Oracle 中,插入一行时就会为它分配一个rowid,而且这一行永远拥有这个rowid。闪回表处理会对EMP 完成DELETE,并且重新插入行,这样就会为这些行分配一个新的rowid。要支持闪回就必须允许Oracle 执行这个操作
3:flashback table a to scn 1576479;
4:oracle falshback version query--闪回版本查询
select * from a as of scn 1577059;select * from a as of timestamp scn_to_timestamp(1577059);
5:oracle falshback Database:闪回数据库在10g 中Flashback又得到了相当大的增强,利用Recycle Bin(回收站)和Flash Recovery Area(闪回区)的特性实现快速恢复删除表(Flashback Table)或做数据库时间点恢复(Flashback Database)的功能。
要使用flashback 的特性,必须启用自动撤销管理表空间,不仅是flashback query,也包括flashback table 和flashback database,而对于后两项还会有些其它的附加条件,比如flashback table 需要启用了recycle bin(回收站),flashback database 还要求必须启用了flashback area(闪回区)。
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 10800
undo_tablespace string UNDOTBS1
在一种情况下,undo 表空间能够确保undo 中的数据在undo_retention 指定时间过期前一定有效,就是为undo 表空间指定Retention Guarantee,指定之后,oracle 对于undo 表空间中未过期的undo 数据不会
覆盖,例如:
SQL> Alter tablespace undotbs1 retention guarantee;
如果想禁止undo 表空间retention guarantee,如例:
SQL> Alter tablespace undotbs1 retention noguarantee;
如果说flashback query 可用来恢复指定时间点的记录,flashback table 可用来恢复被删除或指定时间点的表,而flashback database,则直接提供一个数据库级别的恢复,可将数据库恢复到指定的时间点,相对于前两者,其粒度是最大的。
1、必备条件
A. 数据库启用了flashback database。
B. 数据库必须打开了flash recovery area,如果数据库是RAC,flash recovery area 必须位于共享存储中。
C. 数据库必须处于archivelog 模式。
2、操作示例
Flashback database 即可以在rman 中执行,也可以在sql*plus 中执行,其命令格式都是一样的,在这个示例中,我们所有操作都是在sql*plus 中执行。
A. 检查是否启动了flash recovery area:
SQL> show parameter db_recovery_file
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /orahome/flash_recovery_area
db_recovery_file_dest_size big integer 2G
B. 检查是否启用了归档
SQL> archive log list;
C. 检查是否启用了flashback database 和force_logging
SQL> select flashback_on,force_logging from v$database;
FLASHBACK_ON FOR
------------------ ---
NO NO
如果未启用则先启用:
SQL> alter system set db_flashback_retention_target=1440 scope=both; (单位是分钟,1440表示一天)
SQL> shutdown immediate;
SQL> startup mount exclusive;
SQL> alter database flashback on;
SQL> alter database force logging;
SQL> select flashback_on,force_logging from v$database;
FLASHBACK_ON FOR
------------------ ---
YES YES
SQL> alter database open;
D. 查询当前的scn
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
248739
E. 模拟误删除操作
SQL> 做一些DML/DDL操作
F. 重新启动到mount 状态,然后执行恢复
SQL> conn /as sysdba
SQL> shutdown immediate
SQL> startup mount
SQL> flashback database to scn 248739;
提示:此处flashback database to timestamp 也是一样的,不过你需要估计好恢复到的时间点。
注意此处,在你执行完flashback database 命令之后,oracle 提供了两种方式让你修复数据库:
第一种直接 alter database open resetlogs 打开数据库,当然,指定scn 或者timestamp 时间点之后产生的数据统统丢失。
另一种方式是先执行 alter database open read only 命令以read-only 模式打开数据库,然后立刻通过逻辑导出的方式将误操作涉及表的数据导出,再执行recover database 命令以重新应用数据库产生的redo,将数据库修复到flashback database 操作前的状态,然后再通过逻辑导入的方式,将之前误操作的表重新导入,这样的话对现有数据的影响最小,不会有数据丢失。
G. 打开数据库
SQL> alter database open resetlogs;
H. 验证数据
SQL> 查询误操作的数据是否回到了从前
1〉oracle falshback Database. 特性允许oracle通过Flashback database语句,将数据库会滚到前一个时间点或者scn上,而不需要作时间点的恢复工作!
2〉oracle falshback table. 特性允许oracle通过flashback table语句,将表会滚到前一个时间点或者scn上。
3〉oracle falshback drop. 特性允许oracle把恢复drop掉的table或者索引。
4〉oracle falshback version query. 特性可以得到特定的表在某一个时间段内的任何修改记录!
5〉oracle falshback transaction query 特性可以限制用户在某一个事务级别上检查数据库的修改操作,适用于诊断问题、分析性能、审计事务。
1: flashback table tablename to befor drop;
此操作需要用户有以下的权限:
A:falshback any table的系统权限或者是某一个表的flashback权限。
B:有table的select、insert、delect、alter权限。
C:有table的row Movement权限
附:--关于scn的介绍:
SCN:system change numbers,oracle10g的每一个表都有ora_rowscn列!但是desc是看不到改列的。
可以通过select ora_rowscn from table 得到每一条结果集当前的SCN,scn_to_timestamp()将scn转换到timestamp;timestamp_to_scn()将timestamp转换到scn。
2:flashback table a to timestamp to_timestamp('2010-01-27 11:45:20','yyyy-mm-dd hh24:mi:ss');
执行闪回操作时可能会提示错误:
ORA-08189: cannot flashback the table because row movement is not enabled
解决方式:SQL> alter table a enable row movement;
Table altered.
这个命令的作用是,允许Oracle修改分配给行的rowid。在Oracle 中,插入一行时就会为它分配一个rowid,而且这一行永远拥有这个rowid。闪回表处理会对EMP 完成DELETE,并且重新插入行,这样就会为这些行分配一个新的rowid。要支持闪回就必须允许Oracle 执行这个操作
3:flashback table a to scn 1576479;
4:oracle falshback version query--闪回版本查询
select * from a as of scn 1577059;select * from a as of timestamp scn_to_timestamp(1577059);
5:oracle falshback Database:闪回数据库在10g 中Flashback又得到了相当大的增强,利用Recycle Bin(回收站)和Flash Recovery Area(闪回区)的特性实现快速恢复删除表(Flashback Table)或做数据库时间点恢复(Flashback Database)的功能。
要使用flashback 的特性,必须启用自动撤销管理表空间,不仅是flashback query,也包括flashback table 和flashback database,而对于后两项还会有些其它的附加条件,比如flashback table 需要启用了recycle bin(回收站),flashback database 还要求必须启用了flashback area(闪回区)。
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 10800
undo_tablespace string UNDOTBS1
在一种情况下,undo 表空间能够确保undo 中的数据在undo_retention 指定时间过期前一定有效,就是为undo 表空间指定Retention Guarantee,指定之后,oracle 对于undo 表空间中未过期的undo 数据不会
覆盖,例如:
SQL> Alter tablespace undotbs1 retention guarantee;
如果想禁止undo 表空间retention guarantee,如例:
SQL> Alter tablespace undotbs1 retention noguarantee;
如果说flashback query 可用来恢复指定时间点的记录,flashback table 可用来恢复被删除或指定时间点的表,而flashback database,则直接提供一个数据库级别的恢复,可将数据库恢复到指定的时间点,相对于前两者,其粒度是最大的。
1、必备条件
A. 数据库启用了flashback database。
B. 数据库必须打开了flash recovery area,如果数据库是RAC,flash recovery area 必须位于共享存储中。
C. 数据库必须处于archivelog 模式。
2、操作示例
Flashback database 即可以在rman 中执行,也可以在sql*plus 中执行,其命令格式都是一样的,在这个示例中,我们所有操作都是在sql*plus 中执行。
A. 检查是否启动了flash recovery area:
SQL> show parameter db_recovery_file
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /orahome/flash_recovery_area
db_recovery_file_dest_size big integer 2G
B. 检查是否启用了归档
SQL> archive log list;
C. 检查是否启用了flashback database 和force_logging
SQL> select flashback_on,force_logging from v$database;
FLASHBACK_ON FOR
------------------ ---
NO NO
如果未启用则先启用:
SQL> alter system set db_flashback_retention_target=1440 scope=both; (单位是分钟,1440表示一天)
SQL> shutdown immediate;
SQL> startup mount exclusive;
SQL> alter database flashback on;
SQL> alter database force logging;
SQL> select flashback_on,force_logging from v$database;
FLASHBACK_ON FOR
------------------ ---
YES YES
SQL> alter database open;
D. 查询当前的scn
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
248739
E. 模拟误删除操作
SQL> 做一些DML/DDL操作
F. 重新启动到mount 状态,然后执行恢复
SQL> conn /as sysdba
SQL> shutdown immediate
SQL> startup mount
SQL> flashback database to scn 248739;
提示:此处flashback database to timestamp 也是一样的,不过你需要估计好恢复到的时间点。
注意此处,在你执行完flashback database 命令之后,oracle 提供了两种方式让你修复数据库:
第一种直接 alter database open resetlogs 打开数据库,当然,指定scn 或者timestamp 时间点之后产生的数据统统丢失。
另一种方式是先执行 alter database open read only 命令以read-only 模式打开数据库,然后立刻通过逻辑导出的方式将误操作涉及表的数据导出,再执行recover database 命令以重新应用数据库产生的redo,将数据库修复到flashback database 操作前的状态,然后再通过逻辑导入的方式,将之前误操作的表重新导入,这样的话对现有数据的影响最小,不会有数据丢失。
G. 打开数据库
SQL> alter database open resetlogs;
H. 验证数据
SQL> 查询误操作的数据是否回到了从前
- oracle_10g_flashback_数据恢复_.rar (349 KB)
- 下载次数: 3
发表评论
-
DML、DDL、DCL区别
2017-01-22 22:32 1178DML(data manipulation languag ... -
DDL与DML问题
2017-01-22 22:30 855因为DML需要提交 而truncate是自动提交的 你要分清哪 ... -
oracle锁表,kill
2015-08-26 18:41 949select sess.SID, sess.SE ... -
ROW_NUMBER() OVER函数的基本用法
2014-09-23 00:27 1202简单的说row_number()从1开始,为每一条分组记录返回 ... -
在oracle中一个汉字,一个字母,一个数字分别占多少个字符
2014-01-08 22:01 2322都是一个字符,如果是字节数的话,就要看你的数据库使用的是什么字 ... -
oracle hint有什么缺点?
2013-11-03 22:37 772有意思的问题。hint本质上就是修改默认优化器计算执行计划的一 ... -
Oracle Hint的用法
2013-11-03 22:36 8961. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优 ... -
谈GROUP BY 中的ROLLUP函数
2013-09-05 22:55 2270rollup(a,b)的特点是,先安(a,b)一起汇总统计,然 ... -
group by后加rollup子句的用法
2013-09-05 22:54 1218group by后带rollup子句的用法(真是丑死人了,接触 ... -
ORACLE CASE WHEN 及 SELECT CASE WHEN的用法
2013-09-05 22:47 2013CASE 语句 CASE selector WHEN v ... -
oracle 日期比较
2013-05-30 17:42 3056案例1 select To_Date('19-01-01', ... -
Oracle--------Decode()
2012-09-23 20:52 1954DECODE函数的作用:它可以将输入数值与函数中的参数列 ... -
oracle存储过程语法
2012-09-08 15:14 32201.基本结构 CREATE OR REPLACE PROCE ... -
Oracle的递归
2012-09-03 22:39 3310Oracle的递归查询 收集的几条在oracle中通过con ... -
oracle常用函数
2012-09-03 22:27 22861. ASCII 返回与指定的字符对应的十进制数; SQL ... -
Oracle经验技巧收集集锦
2012-09-03 22:14 24731.删除表空间 DROP TABLESPACE TableS ... -
Oracle分页sql语句
2012-09-01 21:37 2801Oracle的分页查询语句基本上可以按照本文给出的格式来进行 ... -
oracle 函数,包,存储过程简单实例
2012-09-01 21:34 2057/* 存储过程 参数类型: in 表示入参 out 表示出 ... -
oracle case ,loop,while ,for简单实例
2012-09-01 21:27 3727select * from employees emp w ... -
ORACLE创建表空间
2012-09-01 21:24 1068ORACLE中,表空间是数据管理的基本方法,所有用户的对象要 ...
相关推荐
《数据库系统原理与应用——Oracle版》是刘淳教授针对计算机专业学生和Oracle数据库爱好者编写的教材,旨在深入浅出地讲解数据库系统的基础理论和实际应用。本教程以Oracle数据库管理系统为实例,提供了丰富的教学...
除了闪回删除,Oracle 10g还提供了其他数据闪回功能,如“闪回查询”(Flashback Query)。这项功能允许用户查看数据库的先前状态,即使数据已经被提交。通过使用闪回查询,DBA可以在短时间内找到并恢复已被删除的...
基本信息 出版社: 清华大学出版社; 第1版 (2009年1月1日) 平装: 594页 语种: 简体中文 开本: 16 ... 使用最新的Oracle Database 11g工具——Oracle Total Recall和Oracle Flashback Data Archive等。
基本信息 出版社: 清华大学出版社; 第1版 (2009年1月1日) 平装: 594页 语种: 简体中文 开本: 16 ... 使用最新的Oracle Database 11g工具——Oracle Total Recall和Oracle Flashback Data Archive等。
Oracle Database 10g 引入了一项非常强大的特性——Flashback,该特性使得数据库管理员(DBA)能够轻松地恢复误删除的数据表。在之前的版本中,如果误删了表,DBA需要通过繁琐的过程来恢复数据,比如使用表空间的时间...
除了数据库级别的回闪外,Oracle 10g还支持表级别的回闪——**Oracle Flashback Table**。通过此功能,可以将单个表恢复到过去某个特定时间点的状态。这对于因误删除或更新数据而导致的问题非常有用。 ```sql -- 将...
如何安装、运行、管理、监控、联网和调整Oracle——包括企业管理器(EM)以及Oracle自我调整和管理能力——以及如何使用Oracle安全、审计和依从性(本版中新增的——章内容)。多用户并发、数据仓库、分布式数据库、...
#### 一、Oracle Database 11g:数据库管理——课堂练习II - **版本信息**:本教材为Oracle Database 11g的官方教材,版本号为2.0,发布于2011年3月。此教材仅供个人自我学习使用,严禁分享文件。 - **版权声明**...
在本套Oracle 11g的视频教程中,我们将深入探讨Oracle数据库的闪回技术,这是一个强大的工具,用于恢复和管理数据库中的数据。闪回技术是Oracle数据库的一个关键特性,它允许用户“时光倒流”,回溯到数据库的某个...
- **原理**:当使用`DROP`命令删除表后,Oracle并没有立即清除表占用的空间,而是将其放入了一个特殊的区域——回收站中,直到这些空间被新的数据覆盖。 - **查询回收站**:可以通过查询`USER_TABLES`视图或`USER_...
他介绍了RAC(Real Application Clusters)、Data Guard、Flashback Technology等技术,这些都是确保Oracle数据库持续稳定运行的关键。 最后,书中的每个故事都以实际案例为背景,展示了金牌DBA如何在面对复杂问题...
### Oracle数据库进阶-高可用性、性能优化和备份恢复 #### 一、Oracle数据库高可用性 在当今的企业环境中,数据库系统的高可用性(High Availability, HA)至关重要。Oracle数据库提供了一系列强大的高可用性解决...
当遇到这类情况时,Oracle提供了一种强大的数据恢复机制——回闪(Flashback)功能。通过回闪功能,用户可以在特定的时间点恢复已删除的数据。本文将详细介绍如何利用Oracle的回闪功能来恢复误删的数据。 ### 回闪...
《Java与Oracle数据库开发指南——国外经典教材》是一本深入探讨如何使用Java语言与Oracle数据库进行交互的权威著作。本书全面覆盖了Java编程与Oracle数据库管理的基础知识,旨在帮助开发者熟练掌握两者之间的协同...
《PacktPub.Oracle.Data.Guard.11gR2.Administration.Beginners.Guide》是一本关于Oracle数据库灾难恢复与高可用解决方案——Oracle Data Guard的初学者指南书籍。本书详细介绍了Oracle Data Guard 11g R2的配置与...
在Oracle 10g及后续版本中,为了提供更高效的数据管理能力,引入了一个非常实用的功能——**回收站**(Recycle Bin)。这一特性使得数据库管理员能够在不慎删除表等数据库对象后,能够轻松地从回收站中恢复这些对象,...
在表空间方面,Oracle 10g 添加了一个新的系统表空间——SYSAUX。这个表空间是为了减轻SYSTEM表空间的负担而设计的,将一些原本独立的数据库组件转移到SYSAUX,从而改善性能并减少碎片。如果SYSAUX表空间不可用,...
首先,让我们深入了解一下"Less04_Instance_TB.ppt"——数据库实例这一部分。数据库实例是Oracle数据库的核心组成部分,它由共享内存结构(如系统全局区SGA和程序全局区PGA)和后台进程组成。实例启动时,会加载数据...
当涉及到数据恢复时,Oracle提供了两种强大的工具——RMAN(Recovery Manager)和闪回技术,它们各自在不同的场景下发挥着至关重要的作用。本文将深入探讨这两种技术的核心概念、工作原理以及在实际操作中的应用。 ...