- 浏览: 217918 次
- 性别:
- 来自: 魔都
文章分类
最新评论
-
tsinglongwu:
顶,解决了获取Date单元格的内容问题,原来要转换成DateC ...
【转】JXL获取Excel单元格的日期(DateCell.getDate)与实际填写日期相差8小时的解决方法 -
alexyao8:
威武,今天刚遇到这个问题
【转】JXL获取Excel单元格的日期(DateCell.getDate)与实际填写日期相差8小时的解决方法 -
freeren:
...
利用JAVA Bean 反射得到set,get方法 -
pandengzhegt:
我也敬礼!
《Java Annotation 高级应用》 -
yingzhor:
好文! 敬礼!
《Java Annotation 高级应用》
项目开发中,前台人员不小心删除了配置表数据,我用此方法把删除的数据恢复过,具体步骤如下
--首先启动行移动
alter table table_name enable row movement;
-- 进行时间点恢复(此处只是基于时间点进行恢复的,另外scn恢复以后介绍)
flashback table table_name to timestamp to_timestamp('2010-03-27 9:00:00','yyyy-mm-dd hh24:mi:ss');
-- 查看恢复方法
select * from table_name
-- 下面是一些相关资料
flashback:即回闪,是从oracle9i就开始提出的一种操作恢复的功能,在oracle10g中进行了增强和修改,通过回闪,用户可以完成许多不可能恢复的工作,目前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 特性可以限制用户在某一个事务级别上检查数据库的修改操作,适用于诊断问题、分析性能、审计事务。
一:oracle falshback table
oracle flashback table即回闪表
可以进行的操作:操作1>flashback table tablename to befor drop;
对于误drop的table此可以使用本操作,还原drop的table!
此操作需要用户有以下的权限:
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,timestamp_to_scn()将scn转换到stmestamp;scn_to_timestamp()将timestamp转换到scn。
二:flashback drop
利用flashback drop oracle10g可以对DDL操作进行恢复,oracla提供类似回收站的recyclebin来收集被删除的对象,其实对象在删除的时候oracle把对象写到一个数据字典表中,当用户不需要该对象的时候,可以利用purge命令来从回收站进行清除。
三:oracle falshback version query--闪回版本查询
oracle10g falshback 能将所有做了提交的行进行记录,就类似于审计的功能,通过falshback可以查询什么时候执行了什么操作,非常方便,包括闪回版本的查询和审计等。
四:oracle falshback transaction query回闪事务查询
五:oracle falshback Database:闪回数据库
oracle10g提供数据库级别的闪回,可以使整个数据库的数据恢复到某一个时间点或者SCN上!由于牵扯到数据库的批量操作,这个方面的知识暂时无法研究了!
--首先启动行移动
alter table table_name enable row movement;
-- 进行时间点恢复(此处只是基于时间点进行恢复的,另外scn恢复以后介绍)
flashback table table_name to timestamp to_timestamp('2010-03-27 9:00:00','yyyy-mm-dd hh24:mi:ss');
-- 查看恢复方法
select * from table_name
-- 下面是一些相关资料
flashback:即回闪,是从oracle9i就开始提出的一种操作恢复的功能,在oracle10g中进行了增强和修改,通过回闪,用户可以完成许多不可能恢复的工作,目前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 特性可以限制用户在某一个事务级别上检查数据库的修改操作,适用于诊断问题、分析性能、审计事务。
一:oracle falshback table
oracle flashback table即回闪表
可以进行的操作:操作1>flashback table tablename to befor drop;
对于误drop的table此可以使用本操作,还原drop的table!
此操作需要用户有以下的权限:
A:falshback any table的系统权限或者是某一个表的flashback权限。
B:有table的select、insert、delect、alter权限。
C:有table的row Movement权限
SQL> set serveroutput on SQL> set time on 11:24:37 SQL> set feadback off; 11:24:59 SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- B TABLE STEST TABLE TA TABLE GROUPINGTEST TABLE COLTABLE TABLE ROWTABLE TABLE COLTABLE1 TABLE ROWTABLE1 TABLE A1 TABLE A TABLE ---------------------- 可以看到本用户下有table A,现在drop它; ----------------------- 11:25:01 SQL> drop table a; 11:26:18 SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- B TABLE STEST TABLE TA TABLE GROUPINGTEST TABLE COLTABLE TABLE ROWTABLE TABLE COLTABLE1 TABLE ROWTABLE1 TABLE BIN$dFFlS6jJQLShRwRQ+kLJMg==$0 TABLE A1 TABLE ---------------------- table已经删除,可以看到table并不是真正意义上的删除掉了,而是多了一个"BIN$dFFlS6jJQLShRwRQ+kLJMg==$0"的表,这个表是原来的A表,这是oracle的recyclebin,一个类似垃圾回收站的机制。当用户删除表以后把表放到recyclebin中,而不是删除掉! ---------------------- 现在使用命令恢复表A 11:26:29 SQL> flashback table a to before drop; 11:30:45 SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- B TABLE STEST TABLE TA TABLE GROUPINGTEST TABLE COLTABLE TABLE ROWTABLE TABLE COLTABLE1 TABLE ROWTABLE1 TABLE A1 TABLE A TABLE 可以看到表A已经恢复! 可以进行的操作:操作2>flashback table tablename to scn/timestamp(a timestamp); 此操作可以利用scn(在后面介绍)或者timestamp将table恢复到某一个时间点! -----给table row movement权限 11:41:49 SQL> alter table a enable row movement; ----插入一条记录 11:44:16 SQL> insert into a values('www',11); 11:45:15 SQL> commit; ----得到该记录的scn:1576479 11:45:20 SQL> select a.*,ora_rowscn from a; NAME AGE ORA_ROWSCN ---------- ---------- ---------- 500 65 1576479 600 65 1576479 111 10 1576479 222 100 1576479 333 30 1576479 444 40 1576479 555 50 1576479 www 11 1576479 888 34 1573035 ---删除一条记录 11:45:55 SQL> delete from a where name ='www'; 11:46:19 SQL> commit; ---利用scn命令恢复删掉的纪录! 11:46:20 SQL> flashback table a to scn 1576479; 11:46:49 SQL> select * from a; NAME AGE ---------- ---------- 500 65 600 65 111 10 222 100 333 30 444 40 555 50 www 11 888 34 ---利用timestamp命令恢复删掉的纪录! 11:46:54 SQL> flashback table a to timestamp to_timestamp('2007-04-27 11:45:20','yyyy-mm-dd hh24:mi:ss'); 11:56:28 SQL> select * from a; NAME AGE ---------- ---------- 500 65 600 65 111 10 222 100 333 30 444 40 555 50 888 34
附:--关于scn的介绍:
SCN:system change numbers,oracle10g的每一个表都有ora_rowscn列!但是desc是看不到改列的。
可以通过select ora_rowscn from table 得到每一条结果集当前的SCN,timestamp_to_scn()将scn转换到stmestamp;scn_to_timestamp()将timestamp转换到scn。
二:flashback drop
利用flashback drop oracle10g可以对DDL操作进行恢复,oracla提供类似回收站的recyclebin来收集被删除的对象,其实对象在删除的时候oracle把对象写到一个数据字典表中,当用户不需要该对象的时候,可以利用purge命令来从回收站进行清除。
--察看用户下所有表 SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- B TABLE STEST TABLE TA TABLE GROUPINGTEST TABLE COLTABLE TABLE ROWTABLE TABLE COLTABLE1 TABLE ROWTABLE1 TABLE SYS_TEMP_FBT TABLE A1 TABLE A TABLE Executed in 0.078 seconds --drop 表A1 SQL> drop table a1; Executed in 0.047 seconds --再察看此时用户所拥有的所有表; SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- B TABLE STEST TABLE TA TABLE GROUPINGTEST TABLE COLTABLE TABLE ROWTABLE TABLE COLTABLE1 TABLE ROWTABLE1 TABLE SYS_TEMP_FBT TABLE A TABLE BIN$fPHKLxsBTBq6+bjBLPEJaw==$0 TABLE Executed in 0.078 seconds --如上可以看到A1表drop的同时,当前用户下又产生了一个以BIN开头的新表BIN$fPHKLxsBTBq6+bjBLPEJaw==$0,这就是原来的A1表 SQL> set timing off SQL> set time on 14:25:40 SQL> select t.object_name,t.original_name from recyclebin t; OBJECT_NAME ORIGINAL_NAME ------------------------------ -------------------------------- BIN$fPHKLxsBTBq6+bjBLPEJaw==$0 A1 ---采用flashback table命令恢复刚才删除的表A1 14:29:45 SQL> flashback table a1 to before drop; 14:29:49 SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- B TABLE STEST TABLE TA TABLE GROUPINGTEST TABLE COLTABLE TABLE ROWTABLE TABLE COLTABLE1 TABLE ROWTABLE1 TABLE SYS_TEMP_FBT TABLE A1 TABLE A TABLE --当用户确实不需要该对象时候,可以采用pruge来彻底删除改对象 14:29:55 SQL> drop table a1; 14:31:13 SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- B TABLE STEST TABLE TA TABLE GROUPINGTEST TABLE COLTABLE TABLE ROWTABLE TABLE COLTABLE1 TABLE ROWTABLE1 TABLE SYS_TEMP_FBT TABLE A TABLE BIN$N+i42FTvSSemvMrH6frCQg==$0 TABLE 14:31:32 SQL> purge table "BIN$N+i42FTvSSemvMrH6frCQg==$0"; 14:31:49 SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- B TABLE STEST TABLE TA TABLE GROUPINGTEST TABLE COLTABLE TABLE ROWTABLE TABLE COLTABLE1 TABLE ROWTABLE1 TABLE SYS_TEMP_FBT TABLE A TABLE --用purge命令收站想清空回收站里的别的表 14:31:56 SQL> purge recyclebin; 14:34:02 SQL> select object_name from recyclebin; OBJECT_NAME ------------------------------
三:oracle falshback version query--闪回版本查询
oracle10g falshback 能将所有做了提交的行进行记录,就类似于审计的功能,通过falshback可以查询什么时候执行了什么操作,非常方便,包括闪回版本的查询和审计等。
1〉闪回版本的查询 14:41:22 SQL> insert into a values('zhao',24); 14:42:01 SQL> commit; --查询当前版本 14:34:45 SQL> select a.*,ora_rowscn from a; NAME AGE ORA_ROWSCN ---------- ---------- ---------- 500 65 1577059 600 65 1577059 111 10 1577059 222 100 1577059 333 30 1577059 444 40 1577059 555 50 1577059 888 34 1573035 14:41:22 SQL> insert into a values('zhao',24); 14:42:01 SQL> commit; 14:42:03 SQL> select a.*,ora_rowscn from a; NAME AGE ORA_ROWSCN ---------- ---------- ---------- 500 65 1577059 600 65 1577059 111 10 1577059 222 100 1577059 333 30 1577059 444 40 1577059 555 50 1577059 888 34 1573035 zhao 24 1585133 --A:利用scn查询以前版本的记录 14:42:18 SQL> select * from a as of scn 1577059; NAME AGE ---------- ---------- 500 65 600 65 111 10 222 100 333 30 444 40 555 50 888 34 --B:利用timestamp查询以前版本的记录 14:42:51 SQL> select * from a as of timestamp scn_to_timestamp(1577059); NAME AGE ---------- ---------- 500 65 600 65 111 10 222 100 333 30 444 40 555 50 www 11 888 34 2〉审计的功能: 14:50:06 SQL> select a.*,versions_operation,versions_xid,versions_starttime from a 2 versions between timestamp minvalue and maxvalue; NAME AGE VERSIONS_OPERATION VERSIONS_XID VERSIONS_STARTTIME ---------- ---------- ------------------ ---------------- -------------------- 600 65 111 10 222 100 333 30 444 40 555 50 888 34 zhao 24 I 0500110006030000 27-4月 -07 02.42.00 下午 --可以看出 在27-4月 -07 02.42.00 下午插入(I)了一条记录 14:50:53 SQL> a order byversions_starttime; 14:51:23 SQL> run; NAME AGE VERSIONS_OPERATION VERSIONS_XID VERSIONS_STARTTIME ---------- ---------- ------------------ ---------------- ---------------------- 500 65 600 65 111 10 222 100 333 30 444 40 555 50 888 34 zhao 24 I 0500110006030000 27-4月 -07 02.42.00 下午
四:oracle falshback transaction query回闪事务查询
oracle10回闪事务功能提供对过去某段时间内所完成的事务的查询和撤销! 14:59:56 SQL> select undo_sql,table_name from flashback_transaction_query x where x.table_owner=upper('zxt') and x.xid ='0500110006030000'; UNDO_SQL TABLE_NAME -------------------------------------------------------------------------------- -------------- delete from "ZXT"."A" where ROWID = 'AAANOsAAGAAAAMWAAA'; A --其中UNDO_SQL 就是当时对表A的DML操作;
五:oracle falshback Database:闪回数据库
oracle10g提供数据库级别的闪回,可以使整个数据库的数据恢复到某一个时间点或者SCN上!由于牵扯到数据库的批量操作,这个方面的知识暂时无法研究了!
发表评论
-
SQL 表数据旋转90度(二维转换)
2012-07-27 16:14 1849/**//* 将表数据旋转90度(2007-11-19于海南 ... -
ORA-12505 错误的解决方案
2012-06-19 16:46 3211引用错误信息 : ORA-12505, TNS:listene ... -
更新sequence值的动态sql语句
2011-12-27 16:08 2059一. --导出之前把该语句执行一遍,复制执行结果,然后在导入后 ... -
Hibernate 支持wm_concat等函数
2011-11-14 16:31 1539背景:由于项目需要,我们在查询主信息时,可能需要通过某些明细信 ... -
Oracle计算时间差函数
2011-11-09 16:48 2403两个Date类型字段:START_ ... -
ORACLE 自动备份脚本
2011-09-13 12:02 1428方法一: 1. AP服务器上建立c:\backup文件夹(文件 ... -
SQL 对指定字段的几个值进行排序
2011-09-06 15:27 1027--就这一句话,大家应该看得懂,嘿嘿 order by (c ... -
ORA-01652: 无法通过128扩展temp
2011-08-15 10:39 1600通常来说如果出现该错误是由于临时表空间空间不足所致,只要给表空 ... -
Database Link【详解】
2011-02-21 18:55 1405--创建 CREATE public database ... -
ORACLE 闪回 恢复 偶然丢失的数据
2011-01-26 15:42 21861、Oracle 9i的闪回查询功 ... -
批量移动表和索引的表空间
2011-01-26 15:38 1260--1.修改表的空间 alter table table_ ... -
ORACLE误删数据的恢复
2011-01-16 10:48 896有很多原因导致了数据记录的误删,怎样恢复误删的记录呢?先来看看 ... -
oracle10g recyclebin 详解
2010-12-23 11:27 718oracle10g 提供了类似操作系统中的回收站功能。当dro ... -
【转】Oracle10g Flashback Query数据闪回
2010-12-23 11:22 1886Oracle10g通过Flashback Version Qu ... -
oracle 查看锁 与 解锁
2010-11-10 12:12 1107--------------解锁 alter syste ...
相关推荐
本书是专门为oracle开发人员而提供的编程指南 通过学习本书 读者不仅可以掌握编写sql语句和pl/sql块的基础知识 而且还可以掌握sql高级特征 正则表达式 flashback查询 merge语句 sql:1999连接 和pl/sql高级特征 ...
通过学习《精通Oracle 10g SQL和PL/SQL》,读者不仅可以掌握SQL和PL/SQL的基础知识,而且还可以掌握SQL高级特征(正则表达式、Flashback查询、MERGE语句、SQL:1999连接)和PL/SQL高级特征(记录类型、集合类型、对象...
第10章 数据库管理,包括导出数据库模式的DDL脚本,管理Oracle数据库实例的方法、数据恢复与Flashback以及更改数据库字符集等具体方法。第11章 数据库的安全管理。包括加密Oracle子程序,存储应用程序用户名和口令,...
通过学习本书,读者不仅可以掌握oracle常用工具oracle universal installer、net comfiguration assistant、sql developer、sql*plus的作用及使用方法,而且可以掌握sql语句和pl/sql的各种基础知识和高级特征(记录...
br>精通Oracle 10g PL/SQL编程 <br> 【作 者】王海亮 林立新 于三禄 郑建茹 【丛 书 名】 万水Oracle技术丛书 <br>http://images.china-pub.com/ebook20001-25000/21975/shupi.jpg<br><br>PL/SQL是...
英文原版图书,Oracle官方出版,学习Oracle Rman备份和恢复的最佳学习资料,与大家一起分享 Master Oracle Recovery MasterProtect your databases from hardware, software, and operator failures using the ...
第1章 在windows 平台上安装oracle database 11g 第2章 配置网络服务名 第3章 使用sql database 第4章 使用sql*plus 第二部分 sql 第5章 sql和pl/sql综述 第6章 简单查询 第7章 sql单行函数 第8章 ...
[三思笔记]全面学习oracle的flashback特性.pdf [三思笔记]全面学习Scheduler.pdf [三思笔记]全面学习分区表及分区索引.pdf [三思笔记]全面学习和应用ORACLE+ASM特性.pdf [三思笔记]日期时间及数字的格式化参数大全....
通过学习本书,读者不仅可以掌握Oracle常用工具Oracle Universal Installer、Net Comfiguration Assistant、SQL Developer、SQL*Plus的作用及使用方法,而且可以掌握SQL语句和PL/SQL的各种基础知识和高级特征(记录...
第1章 在windows 平台上安装oracle database 11g 第2章 配置网络服务名 第3章 使用sql database 第4章 使用sql*plus 第二部分 sql 第5章 sql和pl/sql综述 第6章 简单查询 第7章 sql单行函数 第8章 ...
第10章 数据库管理,包括导出数据库模式的DDL脚本,管理Oracle数据库实例的方法、数据恢复与Flashback以及更改数据库字符集等具体方法。第11章 数据库的安全管理。包括加密Oracle子程序,存储应用程序用户名和口令,...
通过学习本书,读者不仅可以掌握oracle常用工具oracle universal installer、net comfiguration assistant、sql developer、sql*plus的作用及使用方法,而且可以掌握sql语句和pl/sql的各种基础知识和高级特征(记录...
个人在itpub中将:Linux5版本安装Oracle11gR2、全面学习分区表及分区索引、一步一步学rman、全面学习oracle的flashback特性、手把手教你用VMware在linux下安装oracle10g RAC,这6个部分搜集整合,分享给大家!
9.5.7 Oracle 10g/11g Latch机制的变化 467 第10章 性能诊断与SQL优化 471 10.1 使用AUTOTRACE功能辅助SQL优化 471 10.1.1 AUTOTRACE功能的启用 471 10.1.2 Oracle 10g AUTOTRACE功能的增强 473 10.1.3 ...
8.5 Oracle 10g的UNDO_RETENTION管理增强 8.6 UNDO_RETENTION的内部实现 8.7 Oracle 10g In Memory Undo新特性 8.8 Oracle 11g UNDO表空间备份增强 8.9 回滚机制的深入研究 8.10 Oracle...
8.5 Oracle 10g的UNDO_RETENTION管理增强 8.6 UNDO_RETENTION的内部实现 8.7 Oracle 10g In Memory Undo新特性 8.8 Oracle 11g UNDO表空间备份增强 8.9 回滚机制的深入研究 8.10 Oracle...
8.5 Oracle 10g的UNDO_RETENTION管理增强 8.6 UNDO_RETENTION的内部实现 8.7 Oracle 10g In Memory Undo新特性 8.8 Oracle 11g UNDO表空间备份增强 8.9 回滚机制的深入研究 8.10 Oracle...
Oracle 10g的增强有对高可用性的增强、新的 Flashback 能力、支持回滚更新操作;对安全性的增强,便于管理大量的用户; BI 方面的增强 , 包括改进的 SQL 能力、分析功能、 OLAP 、数据挖掘的能力等;对非关系型数据...