- 浏览: 362619 次
- 性别:
最新评论
-
天使建站:
这里这篇文章更详细 还有完整的实例演示: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 901DML(data manipulation languag ... -
DDL与DML问题
2017-01-22 22:30 793因为DML需要提交 而truncate是自动提交的 你要分清哪 ... -
oracle锁表,kill
2015-08-26 18:41 917select sess.SID, sess.SE ... -
ROW_NUMBER() OVER函数的基本用法
2014-09-23 00:27 1167简单的说row_number()从1开始,为每一条分组记录返回 ... -
在oracle中一个汉字,一个字母,一个数字分别占多少个字符
2014-01-08 22:01 2269都是一个字符,如果是字节数的话,就要看你的数据库使用的是什么字 ... -
oracle hint有什么缺点?
2013-11-03 22:37 721有意思的问题。hint本质上就是修改默认优化器计算执行计划的一 ... -
Oracle Hint的用法
2013-11-03 22:36 8621. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优 ... -
谈GROUP BY 中的ROLLUP函数
2013-09-05 22:55 2210rollup(a,b)的特点是,先安(a,b)一起汇总统计,然 ... -
group by后加rollup子句的用法
2013-09-05 22:54 1158group by后带rollup子句的用法(真是丑死人了,接触 ... -
ORACLE CASE WHEN 及 SELECT CASE WHEN的用法
2013-09-05 22:47 1985CASE 语句 CASE selector WHEN v ... -
oracle 日期比较
2013-05-30 17:42 3006案例1 select To_Date('19-01-01', ... -
Oracle--------Decode()
2012-09-23 20:52 1921DECODE函数的作用:它可以将输入数值与函数中的参数列 ... -
oracle存储过程语法
2012-09-08 15:14 31881.基本结构 CREATE OR REPLACE PROCE ... -
Oracle的递归
2012-09-03 22:39 3269Oracle的递归查询 收集的几条在oracle中通过con ... -
oracle常用函数
2012-09-03 22:27 22531. ASCII 返回与指定的字符对应的十进制数; SQL ... -
Oracle经验技巧收集集锦
2012-09-03 22:14 24391.删除表空间 DROP TABLESPACE TableS ... -
Oracle分页sql语句
2012-09-01 21:37 2742Oracle的分页查询语句基本上可以按照本文给出的格式来进行 ... -
oracle 函数,包,存储过程简单实例
2012-09-01 21:34 2024/* 存储过程 参数类型: in 表示入参 out 表示出 ... -
oracle case ,loop,while ,for简单实例
2012-09-01 21:27 3691select * from employees emp w ... -
ORACLE创建表空间
2012-09-01 21:24 1040ORACLE中,表空间是数据管理的基本方法,所有用户的对象要 ...
相关推荐
ORACLE flashback database测试,主要进行ORACLE flashbackup 闪回整个数据库的实现。
oracle数据库FLASHBACK系列功能介绍
全面总结和解释了oracle flashback技术的使用,优势以及限制
基本信息 出版社: 清华大学出版社; 第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 10g High Availability-Flashback技術介紹
Oracle_Flashback_技术_总结.pdf
必须设定undo保留时间足够大以能够重构需要闪回的数据 ALTER SYSTEM SET UNDO_RETENTION=; seconds值是undo数据保持的秒数。 Flashback view是由undo retention interval来限制的。
oracle 表恢复 闪回 flashback
FLASHBACK DATABASE flashback data1base闪回到过去的某一时刻 闪回点之后的所有工作都将丢失 必须使用resetlogs创建新的场景并打开数据库(一旦resetlogs之后,将不能再闪回至resetlogs之前的时间点) .......
Oracle Flashback 技术总结
主要详细讲解了oracle10g以来对于闪回机制的类型及相关的使用方法和场景的介绍,很有用,尤其对于无意中对表数据删除了的恢复较有价值
Oracle Database 10g: High Availablity with RAC Flashback & Data Guard This text concentrates on explaining 10g technologies and practices to database administrators, covering general availability, ...
NULL 博文链接:https://shihuan830619.iteye.com/blog/1485908
oracle 10g flashback(数据恢复)/oracle 10g flashback(数据恢复)/oracle 10g flashback(数据恢复)/oracle 10g flashback(数据恢复)
ORACLE FLASHBACK综述.pdf
Oracle 10G flashback闪回功能、方法介绍
如何安装、运行、管理、监控、联网和调整Oracle——包括企业管理器(EM)以及Oracle自我调整和管理能力——以及如何使用Oracle安全、审计和依从性(本版中新增的——章内容)。多用户并发、数据仓库、分布式数据库、...
Oracle Flashback技术总结.比较先进一些,这些内容很丰富的~